Software-Level Accuracy Using Stochastic Computing With
  Charge-Trap-Flash Based Weight Matrix
  The in-memory computing paradigm with emerging memory devices has been
recently shown to be a promising way to accelerate deep learning. Resistive
processing unit (RPU) has been proposed to enable the vector-vector outer
product in a crossbar array using a stochastic train of identical pulses to
enable one-shot weight update, promising intense speed-up in matrix
multiplication operations, which form the bulk of training neural networks.
However, the performance of the system suffers if the device does not satisfy
the condition of linear conductance change over around 1,000 conductance
levels. This is a challenge for nanoscale memories. Recently, Charge Trap Flash
(CTF) memory was shown to have a large number of levels before saturation, but
variable non-linearity. In this paper, we explore the trade-off between the
range of conductance change and linearity. We show, through simulations, that
at an optimum choice of the range, our system performs nearly as well as the
models trained using exact floating point operations, with less than 1%
reduction in the performance. Our system reaches an accuracy of 97.9% on MNIST
dataset, 89.1% and 70.5% accuracy on CIFAR-10 and CIFAR-100 datasets (using
pre-extracted features). We also show its use in reinforcement learning, where
it is used for value function approximation in Q-Learning, and learns to
complete an episode the mountain car control problem in around 146 steps.
Benchmarked to state-of-the-art, the CTF based RPU shows best in class
performance to enable software equivalent performance.
