Neural Networks on GPUs : Restricted Boltzmann Machines

Despite the popularity and success of neural networks in research, the number of resulting commercial or industrial applications have been limited. A primary cause of this lack of adoption is due to the fact that neural networks are usually implemented as software running on general-purpose processors. In this paper, we investigate how GPUs can be used to take advantage of the inherent parallelism in neural networks to provide a better implementation in terms of performance. We will focus on the Restricted Boltzmann machine, a popular type of neural network. The algorithm is tested on a NVIDIA GTX280 GPU, resulting in a computational speed of 672 million connections-per-second and a speed-up of 66-fold over an optimized C++ program running on a 2.83GHz Intel processor.