https://github.com/ShigekiKarita/grain2
Autograd and GPGPU library for dynamic neural networks in D
https://github.com/ShigekiKarita/grain2
Last synced: 5 months ago
JSON representation
Autograd and GPGPU library for dynamic neural networks in D
- Host: GitHub
- URL: https://github.com/ShigekiKarita/grain2
- Owner: ShigekiKarita
- Created: 2019-07-05T11:30:24.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-14T17:15:05.000Z (about 5 years ago)
- Last Synced: 2024-08-04T01:05:58.142Z (9 months ago)
- Language: D
- Homepage: http://karita.xyz/grain2/grain.html
- Size: 1.05 MB
- Stars: 7
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-d - grain2 - Autograd and GPGPU library for dynamic neural networks in D (Machine Learning / XML)
README
# grain2
[](https://circleci.com/gh/ShigekiKarita/grain2)
[](https://ci.appveyor.com/project/ShigekiKarita/grain2)
[](https://codecov.io/gh/ShigekiKarita/grain2)
Autograd and GPGPU library for dynamic neural networks in D.
This project is a successor of [grain](https://github.com/ShigekiKarita/grain).## features
- @nogc support
- heterogeneous device (CPU/CUDA/OpenCL) support
- multiple CUDA device support
- see also [document]([](https://circleci.com/gh/ShigekiKarita/grain2))## requirements
- [dpp](https://github.com/atilaneves/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` and `dub test grain2:cuda`
- generate ddoc `make doc`## roadmap
- [x] heterogeneous multi-dimentional structure (grain.tensor.Tensor)
- [x] reference count-based memory management
- [x] 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](https://github.com/atilaneves/dpp) (commit 821a5d4) and regenerate them by `$ cd dpp; make -j cuda (or opencl)`