|Developer(s)||Apache Software Foundation|
|Initial release||October 8, 2015|
3.3.0 / June 7, 2022
|Written in||C++, Python, Java|
|Operating system||Linux, macOS, Windows|
|License||Apache License 2.0|
Apache SINGA is an Apache top-level project for developing an open source machine learning library. It provides a flexible architecture for scalable distributed training, is extensible to run over a wide range of hardware, and has a focus on health-care applications.
The SINGA project was initiated by the DB System Group at National University of Singapore in 2014, in collaboration with the database group of Zhejiang University, in order to support complex analytics at scale, and make database systems more intelligent and autonomic. It focused on distributed deep learning by partitioning the model and data onto nodes in a cluster and parallelize the training. The prototype was accepted by Apache Incubator in March 2015, and graduated as a top-level project in October 2019. Seven versions have been released as shown in the following table. Since V1.0, SINGA is general to support traditional machine learning models such as logistic regression. Companies like NetEase, yzBigData and Shentilium are using SINGA for their applications, including healthcare and finance.
|Version||Original release date||Latest version||Release date|
|Current stable version: 3.3.0||2022-06-07||3.3.0||2022-06-07|
|Older version, yet still maintained: 3.2.0||2021-08-15||3.2.0||2021-08-15|
|Older version, yet still maintained: 3.1.0||2020-10-30||3.1.0||2020-10-30|
|Older version, yet still maintained: 3.0.0||2020-04-20||3.0.0||2020-04-20|
|Older version, yet still maintained: 2.0.0||2019-04-20||2.0.0||2019-04-20|
|Older version, yet still maintained: 1.2.0||2018-06-06||1.2.0||2018-06-06|
|Older version, yet still maintained: 1.1.0||2017-02-12||1.1.0||2017-02-12|
|Older version, yet still maintained: 1.0.0||2016-09-08||1.0.0||2016-09-08|
|Old version, no longer maintained: 0.3.0||2016-04-20||0.1.0||2016-04-20|
|Old version, no longer maintained: 0.2.0||2016-01-14||0.2.0||2016-01-14|
|Old version, no longer maintained: 0.1.0||2015-10-08||0.1.0||2015-10-08|
SINGA's software stack includes three major components, namely, core, IO and model. The following figure illustrates these components together with the hardware. The core component provides memory management and tensor operations; IO has classes for reading (and writing) data from (to) disk and network; The model component provides data structures and algorithms for machine learning models, e.g., layers for neural network models, optimizers/initializer/metric/loss for general machine learning models.
Rafiki is a sub module of SINGA for providing machine learning analytics service.