- add scikit-learn interface, see here
- add quiet mode (-q)
- pre-built binaries and DLL for Windows x64 on CPUs are avaliable
The mission of ThunderSVM is to help users easily and efficiently apply SVMs to solve problems. ThunderSVM exploits GPUs and multi-core CPUs to achieve high efficiency. Key features of ThunderSVM are as follows.
- Support all functionalities of LibSVM such as one-class SVMs, SVC, SVR and probabilistic SVMs.
- Use same command line options as LibSVM.
- Support Python, R and Matlab interfaces.
- Supported Operating Systems: Linux, Windows and MacOS.
Why accelerate SVMs: A survey conducted by Kaggle in 2017 shows that 26% of the data mining and machine learning practitioners are users of SVMs.
Documentations | Installation | API Reference (doxygen)
- cmake 2.8 or above
- gcc 4.8 or above for Linux and MacOS
- Visual C++ for Windows
If you want to use GPUs, you also need to install CUDA.
- CUDA 7.5 or above
git clone https://github.com/zeyiwen/thundersvm.git
Build on Linux (build instructions for MacOS and Windows)
cd thundersvm
mkdir build && cd build && cmake .. && make -j
# in thundersvm root directory
git submodule init eigen && git submodule update
mkdir build && cd build && cmake -DUSE_CUDA=OFF -DUSE_EIGEN=ON .. && make -j
If make -j
doesn't work, please simply use make
. The number of CPU cores to use can be specified by the -o
option (e.g., -o 10
), and refer to Parameters for more information.
./bin/thundersvm-train -c 100 -g 0.5 ../dataset/test_dataset.txt
./bin/thundersvm-predict ../dataset/test_dataset.txt test_dataset.txt.model test_dataset.predict
You will see Accuracy = 0.98
after successful running.
If you use ThunderSVM in your paper, please cite our work (preprint now available).
@article{wenthundersvm18,
author = {Wen, Zeyi and Shi, Jiashuai and Li, Qinbin and He, Bingsheng and Chen, Jian},
title = {{ThunderSVM}: A Fast {SVM} Library on {GPUs} and {CPUs}},
journal = {Journal of Machine Learning Research},
volume={19},
pages={1--5},
year = {2018}
}
- Zeyi Wen, Jiashuai Shi, Bingsheng He, Yawen Chen, and Jian Chen. Efficient Multi-Class Probabilistic SVMs on GPUs. IEEE Transactions on Knowledge and Data Engineering (TKDE), 2018.
- Zeyi Wen, Bingsheng He, Kotagiri Ramamohanarao, Shengliang Lu, and Jiashuai Shi. Efficient Gradient Boosted Decision Tree Training on GPUs. The 32nd IEEE International Parallel and Distributed Processing Symposium (IPDPS), pages 234-243, 2018.
- We acknowledge NVIDIA for their hardware donations.
- This project is hosted by NUS, collaborating with Prof. Jian Chen (South China University of Technology). Initial work of this project was done when Zeyi Wen worked at The University of Melbourne.
- This work is partially supported by a MoE AcRF Tier 1 grant (T1 251RES1610) in Singapore.
- We also thank the authors of LibSVM and OHD-SVM which inspire our algorithmic design.