Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sbstndb/neural_k
A simple Neural Network library using Kokkos enabling CUDA or OpenMP backend
https://github.com/sbstndb/neural_k
ai cuda kokkos library neural-network openmp
Last synced: 10 days ago
JSON representation
A simple Neural Network library using Kokkos enabling CUDA or OpenMP backend
- Host: GitHub
- URL: https://github.com/sbstndb/neural_k
- Owner: sbstndb
- Created: 2024-08-15T13:07:57.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-09-12T21:01:38.000Z (5 months ago)
- Last Synced: 2024-12-10T22:41:20.738Z (2 months ago)
- Topics: ai, cuda, kokkos, library, neural-network, openmp
- Language: C++
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Introduction
Here is a simple Neural Network project.
The aim of this project is to have a first look at the Kokkos library and AI science.From the [Kokkos](https://github.com/kokkos) github repo :
> The Kokkos C++ Performance Portability Ecosystem is a production level solution for writing modern C++ applications in a hardware agnostic way.
Thanks to Kokkos, you can compile this code for multiple backends like OpenMP, CUDA, HIP.**Disclaimer:** Please note that this project is a work in progress and may contain errors or programming oversights due to its experimental nature. Your understanding and feedback are appreciated as we continue to develop and refine this code.
# Compilation
Compile the code with the following commands :
```
git submodule update --init --recursive
mkdir build && cd build && cmake ..
make -j
```# Usage
*You can currently launch the executable named `nk` with the following command :
```
./nk
```
This will run the executable with the default parameters.# Prerequisites
The code use Kokkos as a performance portability library. Then, you must have it to compile the project.
I suggest you to install it and read the documentation for further understanding.It is possible to easily install `Kokkos` through the HPC [`spack`](https://github.com/spack) package manager. I suggest you to create a new environment :
```
spack env create kokkos
spack env activate kokkos
spack install kokkos // here you can specify your backend like OpenMP, pthread, CUDA, HIP, ... please read the doc
spack load kokkos
```# Todo
### To-Do List- [x] Provide the MVP (Minimal Viable Product)
- [ ] Support flexible network architectures
- [ ] Enable GPU-accelerated Execution (CUDA/HIP)
- [ ] Design user-friendly API
- [ ] Add tests
- [ ] Add documentation
- [ ] Implement batch training strategies