This is a simple neural network built using CUDA for matrix operations.
- Fully connected (MLP) network
- Convolutional network
- Optimisers
- Stochastic Gradient Descent (SGD)
- Gradient normalised clipping
- SGD with momentum
- Adam
- 2D matrix operations
- 3D matrix operations (to include batch)
The library has been designed to have as few dependencies as possible with the only dependencies for the core library:
- cuda (build and runtime)
- spdlog (build)
- MNIST (runtime)
- Compiler with C++20 support
- CMake 3.22 or newer
MNIST and spdlog are automatically fetched via CMake.
Build via CMake
cmake --preset release
cmake --build --preset release --target cuda-nn --parallel 8