Awesome
grain2
Autograd and GPGPU library for dynamic neural networks in D. This project is a successor of grain.
features
- @nogc support
- heterogeneous device (CPU/CUDA/OpenCL) support
- multiple CUDA device support
- see also document
requirements
- dpp master
- CPU backend
- BLAS library (e.g., OpenBLAS, MKL)
- CUDA backend
- CUDA header/library v10-
- CUDNN header/library v7-
- OpenCL backend
- OpenCL header/library v1.2
development
- test
dub test grain2:core
anddub test grain2:cuda
- generate ddoc
make doc
roadmap
- heterogeneous multi-dimentional structure (grain.tensor.Tensor)
- reference count-based memory management
- multiple CUDA devices support
- core autograd (forward/backward chain)
- dataset API (MNIST, PTB, etc)
- more memory manegement policy (garbage collection, memory pool)
- JIT compilation of computational graph
- OpenCL/HIP support
trouble shooting
- Q. My local CUDA/OpenCL libraries are different from files under
grain2/dpp/build
- A. Install dpp (commit 821a5d4) and regenerate them by
$ cd dpp; make -j cuda (or opencl)
- A. Install dpp (commit 821a5d4) and regenerate them by