SVM with OpenCL: High performance implementation of support vector machines on heterogeneous systems
Support Vector Machines (SVM) are effective classification engines used in a large number of applications that stand to benefit from acceleration. OpenCL is a software platform specification for parallel programming that supports heterogeneous computing on a wide range of devices including GPUs, FPGAs, and multicore CPUs. In this paper, we present an accelerated implementation of SVM using a heterogeneous computing system programmed using OpenCL. The popular LIBSVM, an open source implementation of SVM, is used as the basis for our system, which allows the presented work to be integrated seamlessly into existing environments. The proposed framework is evaluated in terms of speed and accuracy for training and classification. Testing was based on two GPUs, the NVIDIA GTX 480 and Tesla K20, and compared to the serial implementation based on the Intel i5 Quad Core, 3 GHz, CPU. We find that SVM training is accelerated by a factor ranging from 9 to 22, and SVM classification is accelerated by a factor of up to 12.