Repolode
mratsim

mratsim/Arraymancer

Uma biblioteca rápida e ergonômica de tensores N-dimensional em Nim, com backends para CPU, CUDA e OpenCL, voltada à computação numérica e ao deep learning.

Alternativa open source a:NumPyPyTorch

Estrelas
1,415
Forks
102
Issues abertas
166
Último commit
há 19 dias

O que é?

Arraymancer é uma biblioteca de ndarrays (tensores) escrita em Nim, inspirada no NumPy e no PyTorch. Ela oferece arrays N-dimensionais com operações de fatiamento, broadcasting, remodelagem e álgebra linear, como multiplicação de matrizes, mínimos quadrados, decomposição em autovalores, PCA e k-means.

Além do núcleo de arrays, a biblioteca inclui uma DSL de redes neurais baseada em autograd para definir, treinar e executar modelos, com camadas como Linear, Conv2D, MaxPool2D e GRU. Os tensores podem ser executados na CPU, com rotinas paralelizadas por OpenMP e implementadas sobre BLAS/LAPACK, ou em dispositivos CUDA (com cuDNN opcional) e OpenCL, embora os tensores na GPU ofereçam menos operações que os tensores na CPU.

A biblioteca compila rapidamente e gera binários autocontidos que dependem principalmente de uma biblioteca BLAS; segundo o README, isso a torna adequada para dispositivos embarcados e Raspberry Pi. O projeto está marcado como experimental, e sua interface de deep learning ainda está sendo finalizada.

Recursos principais

  • 01Tensores N-dimensionais de até 6 dimensões, com fatiamento no estilo NumPy e broadcasting explícito usando +.
  • 02Operações de remodelagem e junção, como concat, reshape, split, permute e transpose.
  • 03Leitura e gravação de arquivos CSV, NumPy (.npy) e HDF5.
  • 04Rotinas de álgebra linear, incluindo mínimos quadrados, decomposição em autovalores e matrizes de covariância.
  • 05DSL de redes neurais baseada em autograd, com camadas Linear, Conv2D, de pooling e GRU.
  • 06Backends de tensores para CPU, CUDA e OpenCL; CUDA e OpenCL oferecem menos operações.

Casos de uso

  • Projetos de computação numérica em Nim que precisam de arrays multidimensionais rápidos.
  • Prototipagem de redes neurais pequenas em Nim, usando autograd e uma sintaxe concisa para definir modelos.
  • Implantação de modelos em dispositivos com recursos limitados, nos quais uma stack Python grande não é prática.
  • Tarefas clássicas de machine learning, como PCA, k-means e ajuste por mínimos quadrados em código Nim.

Início rápido

  1. 1

    Instalar Nim com choosenim

  2. 2

    Instalar Arraymancer com nimble

    nimble install arraymancer

Antes de usar

  • O projeto está marcado como experimental, e sua interface de aprendizado profundo é considerada instável e continua mudando.
  • O Arraymancer requer que uma biblioteca BLAS e uma LAPACK estejam instaladas no sistema.
  • Os backends de CUDA e OpenCL têm menos recursos do que os tensores de CPU.

Tópicos

Perguntas frequentes

O que é Arraymancer?
Uma biblioteca rápida e ergonômica de tensores N-dimensional em Nim, com backends para CPU, CUDA e OpenCL, voltada à computação numérica e ao deep learning. Arraymancer é uma biblioteca de ndarrays (tensores) escrita em Nim, inspirada no NumPy e no PyTorch. Ela oferece arrays N-dimensionais com operações de fatiamento, broadcasting, remodelagem e álgebra linear, como multiplicação de matrizes, mínimos quadrados, decomposição em autovalores, PCA e k-means.
Arraymancer é gratuito? Qual é a licença?
Arraymancer é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
Arraymancer ainda é mantido?
Manutenção ativa. O último commit de Arraymancer foi em 6 de out. de 2026.
Para que posso usar Arraymancer?
Projetos de computação numérica em Nim que precisam de arrays multidimensionais rápidos. Prototipagem de redes neurais pequenas em Nim, usando autograd e uma sintaxe concisa para definir modelos. Implantação de modelos em dispositivos com recursos limitados, nos quais uma stack Python grande não é prática. Tarefas clássicas de machine learning, como PCA, k-means e ajuste por mínimos quadrados em código Nim.
Como instalar Arraymancer?
Instalar Nim com choosenim Instalar Arraymancer com nimble: nimble install arraymancer
Onde consigo Arraymancer?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/mratsim/Arraymancer

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados