Num.cr v1.0.0 has been released, completing a massive overhaul of the entire interface of the library, to enable device agnostic numerical computing to be used in Crystal, leveraging both CPU and GPU devices.
Some major highlights:
Tensor(T)have been merged to
Tensor(T, S), with
OpenCLbacked storage becoming a first class citizen. All creation methods support both storage backends, and the implementation paves the way for zero-copy interop with numerous other libraries (Apache Arrow is the next prime target).
Num::Gradfeature full GPU support, with almost all layers and gates supporting
Num::Einsumallows for optimized contractions of
Tensors, providing functionality identical to
Some less flashy highlights:
- Vastly improved test coverage and stability, as well as a revamped API documentation, which can be found here.
OpenCLmemory management has been implemented, with JIT compiled kernels backed by memory-safe caching.
Numpyinter-op is supported via reading and writing to
As always I am constantly looking for additional contributors to improve documentation, examples, performance, and continue to expand the API. I am especially interested in anyone with CUDA experience (and a CUDA enabled graphics card, which is currently blocking my ability to write the storage backend).
If you have a chance to experiment with the library, bug tickets + feedback in the Gitter channel are always appreciated.