Nim tensor library for scientific computing and deep learning
Top 29.9% on sourcepulse
Arraymancer is a Nim-based N-dimensional array (tensor) library designed for high-performance numerical computing and deep learning. It offers an ergonomic syntax inspired by NumPy and PyTorch, targeting researchers and developers who need a fast, portable solution for CPU, CUDA, and OpenCL backends.
How It Works
Arraymancer leverages Nim's fast compilation and metaprogramming capabilities to provide a high-level, Python-like API with C-level performance. It supports multiple backends (CPU with OpenMP, CUDA, OpenCL) and allows for custom BLAS/LAPACK library integration. The library includes automatic differentiation for deep learning tasks, enabling the definition and training of neural networks with a concise syntax.
Quick Start & Requirements
nimble install arraymancer
or nimble install arraymancer@#head
for the development version.examples
folder for the latest features).Highlighted Details
Conv2D
, MaxPool2D
, Linear
, and GRULayer
.Maintenance & Community
The project's last update mentioned in the README was July 2019 (v0.5.1). Further community engagement channels are not explicitly listed.
Licensing & Compatibility
The README does not explicitly state a license. Given the lack of a LICENSE file or explicit mention, users should exercise caution regarding commercial use and closed-source linking.
Limitations & Caveats
The deep learning features are noted as unstable and subject to interface changes. CUDA and OpenCL tensor implementations are less feature-complete than CPU tensors, with limitations on data types and operations like iteration or slicing mutations. The project's development activity appears to have slowed significantly since 2019.
5 months ago
1 day