SCRIMP: A General Stochastic Computing Architecture using ReRAM in-Memory Processing
Saransh Gupta1,a, Mohsen Imani1,b, Joonseop Sim1,c, Andrew Huang1,d, Fan Wu1,e, M. Hassan Najafie and Tajana Rosing1,f
1University of California San Diego, La Jolla, CA 92093, USA
asgupta@ucsd.edu
bmoimani@ucsd.edu
cj7sim@ucsd.edu
danh162@ucsd.edu
ef2wu@ucsd.edu
ftajana@ucsd.edu
2University of Louisiana, Lafayette, LA 70504, USA
najafi@louisiana.edu
ABSTRACT
Stochastic computing (SC) reduces the complexity of computation by representing numbers with long independent bit-streams. However, increasing performance in SC comes with increase in area and loss in accuracy. Processing in memory (PIM) with non-volatile memories (NVMs) computes data inplace, while having high memory density and supporting bitparallel operations with low energy. In this paper, we propose SCRIMP for stochastic computing acceleration with resistive RAM (ReRAM) in-memory processing, which enables SC in memory. SCRIMP can be used for a wide range of applications. It supports all SC encodings and operations in memory. It maximizes the performance and energy efficiency of implementing SC by introducing novel in-memory parallel stochastic number generation and efficient implication-based logic in memory. To show the efficiency of our stochastic architecture, we implement image processing on the proposed hardware.