Support vector machines (SVMs) are supervised learning methods that can be used for classification and regression. In this post, we will discuss how you can use the SVM package in RAPIDS cuML to perform fast support vector classification on a GPU. Some data scientists shy away from trying SVMs, as their runtime complexity grows quadratically in the number of samples and can become quite slow on a CPU. cuML SVM can provide a speedup of 500x relative to scikit-learn SVM and it is up to 50x faster than the multi-threaded ThunderSVM library on a CPU. With a GPU-accelerated version, large-scale SVMs become quite practical, and training on a million examples is possible within a few minutes.
We will start with a quick overview of SVM classification, followed by demonstrating how to use cuML SVM. Afterward, we present benchmarks to demonstrate its performance. Finally, we will explain how the training is implemented in cuML.