Revolutionizing machine learning algorithms using GPUs
Ritvik Sharma, M Vinutha, Minal Moharir · 2016
Machine learning is a very powerful domain in the field of computer science. However, a lot of time is consumed in execution and learning from the humongous datasets. In the last decade General Purpose Graphics Processing Units (GPGPU) have revolutionized the computing industry by their capability to process data in parallel and hence speedup the entire process. This paper aims to showcase a generic model which can be used as a reference to convert implementations of serial machine learning algorithms to parallel implementations. Because of varying types of machine learning algorithms, the model was developed with a broad mindset to support most of them. After development, for the purpose of testing the correctness of the model, a few machine learning algorithms of different kinds are experimented with. They were processed step-by-step in accordance with the model and their original serial implementations in C and the resultant parallel implementations in CUDA were compared w.r.t. the computation time. Also, the serial implementations and parallel implementations were mapped to check if they gave the exact same results i.e. whether perfectly correct parallelism was obtained. The results obtained showed that the model when used for parallelization, gave absolutely correct parallel implementations, without any losses due to parallelization. The model gave highly efficient outcomes for non-neural network based supervised and unsupervised learning algorithms with a speedup of 146× achieved in K-NN algorithm and 75× achieved in K-Means algorithm. The model also gave a correct parallel implementation for Backpropagation algorithm, however here the parallel implementation could not execute faster than the serial implementation.