TY - JOUR
T1 - Evaluating automatically parallelized versions of the support vector machine
AU - Codreanu, V.
AU - Dröge, B.
AU - Williams, D.
AU - Yasar, B.
AU - Yang, P.
AU - Liu, B.
AU - Dong, F.
AU - Surinta, O.
AU - Schomaker, L.R.B.
AU - Roerdink, J.B.T.M.
AU - Wiering, M.A.
PY - 2016/5/1
Y1 - 2016/5/1
N2 - The support vector machine (SVM) is a supervised learning algorithm used for recognizing patterns in data. It is a very popular technique in machine learning and has been successfully used in applications such as image classification, protein classification, and handwriting recognition. However, the computational complexity of the kernelized version of the algorithm grows quadratically with the number of training examples. To tackle this high computational complexity, we have developed a directive-based approach that converts a gradient-ascent based training algorithm for the CPU to an efficient graphics processing unit (GPU) implementation. We compare our GPU-based SVM training algorithm to the standard LibSVM CPU implementation, a highly optimized GPU-LibSVM implementation, as well as to a directive-based OpenACC implementation. The results on different handwritten digit classification datasets demonstrate an important speed-up for the current approach when compared to the CPU and OpenACC versions. Furthermore, our solution is almost as fast and sometimes even faster than the highly optimized CUBLAS-based GPU-LibSVM implementation, without sacrificing the algorithm's accuracy.
AB - The support vector machine (SVM) is a supervised learning algorithm used for recognizing patterns in data. It is a very popular technique in machine learning and has been successfully used in applications such as image classification, protein classification, and handwriting recognition. However, the computational complexity of the kernelized version of the algorithm grows quadratically with the number of training examples. To tackle this high computational complexity, we have developed a directive-based approach that converts a gradient-ascent based training algorithm for the CPU to an efficient graphics processing unit (GPU) implementation. We compare our GPU-based SVM training algorithm to the standard LibSVM CPU implementation, a highly optimized GPU-LibSVM implementation, as well as to a directive-based OpenACC implementation. The results on different handwritten digit classification datasets demonstrate an important speed-up for the current approach when compared to the CPU and OpenACC versions. Furthermore, our solution is almost as fast and sometimes even faster than the highly optimized CUBLAS-based GPU-LibSVM implementation, without sacrificing the algorithm's accuracy.
KW - automatic parallelization
KW - GPU
KW - handwritten digit recognition
KW - machine learning
KW - support vector machine
UR - http://www.scopus.com/inward/record.url?scp=84910617842&partnerID=8YFLogxK
U2 - 10.1002/cpe.3413
DO - 10.1002/cpe.3413
M3 - Article
AN - SCOPUS:84910617842
SN - 1532-0626
VL - 28
SP - 2274
EP - 2294
JO - Concurrency and Computation : Practice & Experience
JF - Concurrency and Computation : Practice & Experience
IS - 7
ER -