Arraymancer

A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends

What is Arraymancer?

A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends

Overview of Arraymancer

What it is

Arraymancer is a tensor (N-dimensional array) library written in Nim. It focuses on providing a fast and ergonomic ndarray library for CPU, Cuda, and OpenCL backends, intended to support a scientific computing ecosystem. The project is inspired by Numpy and PyTorch.

Key features

  • Supports tensor creation, slicing, reshaping, concatenation, and broadcasting operations.
  • Includes machine learning algorithms such as least squares solvers, PCA, classifiers, regressors, clustering, and cross-validation.
  • Provides deep learning capabilities with autograd, layers (Linear, ReLU, etc.), and optimizers (SGD).
  • Backends: CPU (with OpenMP), Cuda, and OpenCL.
  • Integrates with BLAS and LAPACK libraries; supports custom BLAS selection via compilation flags.
  • Compilation flags for release mode, danger mode, AVX512, Cuda, and CuDNN.
  • Compiles in about 5 seconds on a dual-core MacBook.

Use cases

  • Numerical computing with N-dimensional arrays.
  • Machine learning tasks (classification, regression, clustering, dimensionality reduction).
  • Deep learning model training and inference (e.g., fully-connected networks, convolutional networks, recurrent neural networks).

Getting started

See the repository README for installation instructions and compilation flags.

License and pricing

Licensed under Apache-2.0. Open source.

Based on the project's public README and repository metadata.

Add this badge to your README

Featured on YunoDB Badge styles & help

Maintain this project? Show that it is featured on YunoDB.

Markdown[![Featured on YunoDB](https://yunodb.com/badge/mratsimarraymancer.svg)](https://yunodb.com/tools/mratsimarraymancer?utm_source=github&utm_medium=badge)
HTML<a href="https://yunodb.com/tools/mratsimarraymancer?utm_source=github&utm_medium=badge"><img src="https://yunodb.com/badge/mratsimarraymancer.svg" alt="Featured on YunoDB" height="20"></a>