Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sid911/scions_old
A small, fast and easy to use Machine Learning framework for edge
https://github.com/sid911/scions_old
cpp cuda library machine-learning
Last synced: about 2 months ago
JSON representation
A small, fast and easy to use Machine Learning framework for edge
- Host: GitHub
- URL: https://github.com/sid911/scions_old
- Owner: Sid911
- Created: 2023-07-10T16:49:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-14T08:42:47.000Z (about 1 year ago)
- Last Synced: 2024-03-01T10:52:00.757Z (11 months ago)
- Topics: cpp, cuda, library, machine-learning
- Language: C++
- Homepage:
- Size: 1.43 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
## Scions : A cpp ML library because why not
### 🚧 WIP : Scions is in build phase, not indented to be used (rather it can't be used because basic requirements haven't met)
Scions aims to be a refreshingly fast and optimised way of writing which is very simple to understand and extend. While
being designed to build and deploy ML models in edge friendly way where the focus is on local execution.### Why another ml library in cpp ?
So there are two part answers for this, 1st being "*why another ML library?*" the answer is
- I wanted to learn more about how the theoretical and implementation level machine learning works. The best way of doing it is to
make a ML library itself because you get to actually read and implement the details rather than just relying on other frameworks
to make the **Magic Happen**. Also, I would get to learn how to build actual low level library for executing parallel and
and performant ops in different accelerator environments.
- There are certain limitation in different runtimes provided by big frameworks like **Tensorflow**, **Pytorch** and
*(Although to a less extent)* **Onnx Runtime** which are hard to overcome in a normal setting which I am trying to achieve.Next par is *"why a library in cpp""*
- that is rather good question because while it is true that most of the current ml work is being done in python but
there is a massive incentive to use low level language if much of optimisation can be done. Most python libraries are implemented
in low level languages like cpp because its simply not possible to do it in other language efficiently for different reasons.
- Scions uses compile time properties of C++ to build a static _(in future dynamic)_ graph which can be optimised to much
farther extent than anything. Which will enable it to do more with how each EP executes the graph.
### Who is this library for ?
To be honest at this point I don't know other than me but hopefully overtime it gets enough features that most usecases can
be possible.- This library is not intented to be used as actual general purpose ML library, as it is developed to meet my use case.
- For people who do try the devil's path it will be very hard to overcome the missing **supporting** libraries like for
**visualisation** and **data processing** that is very easily available in python.
- Pure Speed and portability### Intended Architecture of Scions
This is the current plan, Onnx Runtime is the biggest inspiration while building this.![ScionsArchitecturev1.png](docs/images/ScionsArchitecturev1.png)