thundersvm

ThunderSVM: A Fast SVM Library on GPUs and CPUs

https://github.com/xtra-computing/thundersvm

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    6 of 34 committers (17.6%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.6%) to scientific vocabulary

Keywords

c-plus-plus classification cuda gpu libsvm one-class-learning regression

Keywords from Contributors

transformer cryptocurrency cryptography jax audio deepseek gemma glm model-hub pretrained-models
Last synced: 6 months ago · JSON representation

Repository

ThunderSVM: A Fast SVM Library on GPUs and CPUs

Basic Info
  • Host: GitHub
  • Owner: Xtra-Computing
  • License: apache-2.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 4.76 MB
Statistics
  • Stars: 1,610
  • Watchers: 56
  • Forks: 221
  • Open Issues: 87
  • Releases: 5
Topics
c-plus-plus classification cuda gpu libsvm one-class-learning regression
Created about 11 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

Build Status Build status GitHub license Documentation Status GitHub issues PyPI version Downloads

What's new

  • We have recently released ThunderGBM, a fast GBDT and Random Forest library on GPUs.
  • add scikit-learn interface, see here ## Overview 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, Matlab and Ruby 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.

Documentation | Installation | API Reference (doxygen)

Contents

Prerequisites

  • 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.

Quick Install

Download the Python wheel file (For Python3 or above).

Install the Python wheel file. bash pip install thundersvm-cu90-0.2.0-py3-none-linux_x86_64.whl

Example

python from thundersvm import SVC clf = SVC() clf.fit(x, y)

Download

bash git clone https://github.com/Xtra-Computing/thundersvm.git

Build on Linux (build instructions for MacOS and Windows)

ThunderSVM on GPUs

bash cd thundersvm mkdir build && cd build && cmake .. && make -j

If you run into issues that can be traced back to your version of gcc, use cmake with a version flag to force gcc 6. That would look like this:

bash cmake -DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6 ..

ThunderSVM on CPUs

```bash

in thundersvm root directory

git submodule init eigen && git submodule update mkdir build && cd build && cmake -DUSE_CUDA=OFF .. && make -j Ifmake -jdoesn't work, please simply usemake. The number of CPU cores to use can be specified by the-ooption (e.g.,-o 10```), and refer to Parameters for more information.

Quick Start

bash ./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.

How to cite ThunderSVM

If you use ThunderSVM in your paper, please cite our work (full version). @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={797--801}, year = {2018} }

Other publications

  • 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.
  • Borui Xu, Zeyi Wen, Lifeng Yan, Zhan Zhao, Zekun Yin, Weiguo Liu, Bingsheng He. Leveraging Data Density and Sparsity for Efficient SVM Training on GPUs. The 23rd IEEE International Conference on Data Mining (ICDM), 2023.

Related websites

Acknowledgement

  • 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.

Selected projects that use ThunderSVM

[1] Scene Graphs for Interpretable Video Anomaly Classification (published in NeurIPS18)

[2] 3D semantic segmentation for high-resolution aerial survey derived point clouds using deep learning. (published in ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems, 2018).

[3] Performance Comparison of Machine Learning Models for DDoS Attacks Detection. (published in IEEE International Computer Science and Engineering Conference (ICSEC), 2018).

[4] Kernel machines that adapt to GPUs for effective large batch training. (in arXiv preprint arXiv:1806.06144, 2018).

[5] Sampling Bias in Deep Active Classification: An Empirical Study. (in arXiv preprint arXiv:1909.09389, 2019).

[6] Machine Learning-Based Fast Banknote Serial Number Recognition Using Knowledge Distillation and Bayesian Optimization. (published in Sensors 19.19:4218, 2019).

[7] Classification for Device-free Localization based on Deep Neural Networks. (in Diss. The University of Aizu, 2019).

[8] An accurate and robust approach of device-free localization with convolutional autoencoder. (published in IEEE Internet of Things Journal 6.3:5825-5840, 2019).

[9] Accounting for part pose estimation uncertainties during trajectory generation for part pick-up using mobile manipulators. (published in IEEE International Conference on Robotics and Automation (ICRA), 2019).

[10] Genetic improvement of GPU code. (published in IEEE/ACM International Workshop on Genetic Improvement (GI), 2019). The source code of ThunderSVM is used as a benchmark.

[11] Dynamic Multi-Resolution Data Storage. (published in IEEE/ACM International Symposium on Microarchitecture, 2019). The source code of ThunderSVM is used as a benchmark.

[12] Hyperparameter Estimation in SVM with GPU Acceleration for Prediction of Protein-Protein Interactions. (published in IEEE International Conference on Big Data, 2019).

[13] Texture Selection for Automatic Music Genre Classification. (published in Applied Soft Computing, 2020).

[14] Evolving Switch Architecture toward Accommodating In-Network Intelligence. (published in IEEE Communications Magazine 58.1: 33-39, 2020).

[15] Block-Sparse Coding Based Machine Learning Approach for Dependable Device-Free Localization in IoT Environment. (published in IEEE Internet of Things Journal, 2020).

[16] An adaptive trust boundary protection for IIoT networks using deep-learning feature extraction based semi-supervised model. (published in IEEE Transactions on Industrial Informatics, 2020).

[17] Performance Prediction for Multi-Application Concurrency on GPUs. (published in IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), 2020).

[18] Tensorsvm: accelerating kernel machines with tensor engine. (published in ACM International Conference on Supercomputing (ICS), 2020).

[19] GEVO: GPU Code Optimization Using Evolutionary Computation. (published in ACM Transactions on Architecture and Code Optimization (TACO), 2020).

[20] CRISPRpred (SEQ): a sequence-based method for sgRNA on target activity prediction using traditional machine learning. (published in BMC bioinformatics, 2020).

[21] Prediction of gas concentration using gated recurrent neural networks. (published in IEEE International Conference on Artificial Intelligence Circuits and Systems (AICAS), 2020).

[22] Design powerful predictor for mRNA subcellular location prediction in Homo sapiens. (published in Briefings in Bioinformatics, 2021).

Owner

  • Name: Xtra Computing Group
  • Login: Xtra-Computing
  • Kind: organization
  • Email: xtra-computing@googlegroups.com
  • Location: National University of Singapore

GitHub Events

Total
  • Issues event: 3
  • Watch event: 42
  • Issue comment event: 4
  • Pull request event: 3
  • Fork event: 6
Last Year
  • Issues event: 3
  • Watch event: 42
  • Issue comment event: 4
  • Pull request event: 3
  • Fork event: 6

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 812
  • Total Committers: 34
  • Avg Commits per committer: 23.882
  • Development Distribution Score (DDS): 0.644
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Joyeewen w****i@g****m 289
Jiashuai Shi s****i@g****m 271
Li Qinbin g****n@g****m 138
Li Qinbin 2****n 22
Mario Emmenlauer m****o@e****e 13
yawenChen e****k@g****m 10
jiahuanluo l****1@g****m 8
Zeyi J****n 6
Zeyi Wen c****i@g****k 5
Andrew Kane a****w@c****m 5
BoruiXu x****8@1****m 4
wenzeyi@gmail.com z****i@s****) 4
Dmitry Vukolov d****o@g****m 3
Nathan Skene 3****e 3
bjohnson b****2@g****m 3
Roman Feldbauer s****i@f****g 3
Zeyi Wen z****n@Z****l 3
ranChen07 1****7 2
guillaumedsde g****e@d****m 2
李钦宾 l****n@r****g 2
Borui Xu b****u@m****n 2
李钦宾 l****n@r****g 2
Jacob Marks j****s@o****m 1
李钦宾 l****n@r****g 1
李钦宾 l****n@l****l 1
Julio j****o@g****m 1
Bram Vanroy B****y@U****e 1
Juliano H Foleiss j****s@u****r 1
Patrick Kudo 6****o 1
Richard Warfield w****d@g****m 1
and 4 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 100
  • Total pull requests: 25
  • Average time to close issues: 4 months
  • Average time to close pull requests: 6 days
  • Total issue authors: 84
  • Total pull request authors: 12
  • Average comments per issue: 2.21
  • Average comments per pull request: 1.72
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • AtlantixJJ (3)
  • Song-Yuqi (2)
  • CMobley7 (2)
  • antithing (2)
  • WeiChihChern (2)
  • asheetal (2)
  • ankane (2)
  • yuhangzhu4 (2)
  • jsun94 (2)
  • BramVanroy (2)
  • 1113571287 (2)
  • itsciccio (2)
  • beevabeeva (2)
  • emmenlau (2)
  • hubutui (2)
Pull Request Authors
  • emmenlau (9)
  • ankane (4)
  • mvdb-enspi (2)
  • DeltaGa (2)
  • PatrickKudo (1)
  • darikoneil (1)
  • guillaumedsde (1)
  • shijiashuai (1)
  • adrien1018 (1)
  • RichardWarfield (1)
  • Stan406 (1)
  • sbreuss (1)
Top Labels
Issue Labels
call for contribution (10) enhancement (7) bug (1) roadmap (1)
Pull Request Labels

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 694 last-month
  • Total docker downloads: 11
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 9
    (may contain duplicates)
  • Total versions: 12
  • Total maintainers: 4
pypi.org: thundersvm

A Fast SVM Library on GPUs and CPUs

  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 6
  • Downloads: 682 Last month
  • Docker Downloads: 11
Rankings
Stargazers count: 1.7%
Forks count: 3.6%
Docker downloads count: 4.0%
Dependent repos count: 6.0%
Average: 6.0%
Dependent packages count: 10.1%
Downloads: 10.7%
Maintainers (3)
Last synced: 6 months ago
proxy.golang.org: github.com/Xtra-Computing/thundersvm
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago
proxy.golang.org: github.com/xtra-computing/thundersvm
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago
pypi.org: thundersvm-cuda10

A Fast SVM Library on GPUs and CPUs

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 3
  • Downloads: 12 Last month
Rankings
Stargazers count: 1.7%
Forks count: 3.6%
Dependent repos count: 9.0%
Dependent packages count: 10.1%
Average: 14.4%
Downloads: 47.7%
Maintainers (1)
Last synced: 6 months ago