Repolode
mratsim

mratsim/Arraymancer

Una biblioteca rápida y ergonómica de tensores N-dimensionales en Nim, con backends para CPU, CUDA y OpenCL, orientada al cálculo numérico y al deep learning.

Alternativa open source a:NumPyPyTorch

Estrellas
1,415
Forks
102
Issues abiertos
166
Último commit
hace 18 días

¿Qué es?

Arraymancer es una biblioteca de ndarrays (tensores) escrita en Nim e inspirada en NumPy y PyTorch. Ofrece arreglos N-dimensionales con operaciones de slicing, broadcasting y reshape, además de primitivas de álgebra lineal como multiplicación de matrices, mínimos cuadrados, descomposición en autovalores, PCA y k-means.

Además del núcleo de arreglos, incluye un DSL de redes neuronales basado en autograd para definir, entrenar y ejecutar modelos, con capas como Linear, Conv2D, MaxPool2D y GRU. Los tensores pueden ejecutarse en la CPU mediante rutinas paralelizadas con OpenMP y respaldadas por BLAS/LAPACK, o en dispositivos CUDA (con cuDNN opcional) y OpenCL, aunque los tensores en GPU admiten menos operaciones que los de CPU.

La biblioteca compila rápido y genera binarios autónomos que dependen principalmente de una biblioteca BLAS; el README indica que esto la hace adecuada para dispositivos embebidos y Raspberry Pi. El proyecto está marcado como experimental y su interfaz de deep learning aún está en proceso de finalización.

Funciones clave

  • 01Tensores N-dimensionales de hasta 6 dimensiones, con slicing al estilo de NumPy y broadcasting explícito mediante +.
  • 02Operaciones para combinar y cambiar la forma, como concat, reshape, split, permute y transpose.
  • 03Lectura y escritura de archivos CSV, NumPy (.npy) y HDF5.
  • 04Rutinas de álgebra lineal que incluyen mínimos cuadrados, descomposición en autovalores y matrices de covarianza.
  • 05DSL de redes neuronales basado en autograd, con capas Linear, Conv2D, de pooling y GRU.
  • 06Backends de tensores para CPU, CUDA y OpenCL; CUDA y OpenCL ofrecen menos operaciones.

Casos de uso

  • Proyectos de cálculo numérico en Nim que necesitan arreglos multidimensionales rápidos.
  • Prototipado de redes neuronales pequeñas en Nim con autograd y una sintaxis concisa para definir modelos.
  • Despliegue de modelos en dispositivos con recursos limitados, donde una pila grande de Python no resulta práctica.
  • Tareas de machine learning clásico, como PCA, k-means y ajuste por mínimos cuadrados, en código Nim.

Inicio rápido

  1. 1

    Instalar Nim con choosenim

  2. 2

    Instalar Arraymancer con nimble

    nimble install arraymancer

Antes de usarlo

  • El proyecto está marcado como experimental y su interfaz de aprendizaje profundo se considera inestable y sigue cambiando.
  • Arraymancer requiere que haya una biblioteca BLAS y otra LAPACK instaladas en el sistema.
  • Los backends de CUDA y OpenCL tienen menos funciones que los tensores de CPU.

Temas

Preguntas frecuentes

¿Qué es Arraymancer?
Una biblioteca rápida y ergonómica de tensores N-dimensionales en Nim, con backends para CPU, CUDA y OpenCL, orientada al cálculo numérico y al deep learning. Arraymancer es una biblioteca de ndarrays (tensores) escrita en Nim e inspirada en NumPy y PyTorch. Ofrece arreglos N-dimensionales con operaciones de slicing, broadcasting y reshape, además de primitivas de álgebra lineal como multiplicación de matrices, mínimos cuadrados, descomposición en autovalores, PCA y k-means.
¿Arraymancer es gratuito? ¿Qué licencia tiene?
Arraymancer es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿Arraymancer sigue mantenido?
Mantenimiento activo. El último commit de Arraymancer fue el 6 oct 2026.
¿Para qué puedo usar Arraymancer?
Proyectos de cálculo numérico en Nim que necesitan arreglos multidimensionales rápidos. Prototipado de redes neuronales pequeñas en Nim con autograd y una sintaxis concisa para definir modelos. Despliegue de modelos en dispositivos con recursos limitados, donde una pila grande de Python no resulta práctica. Tareas de machine learning clásico, como PCA, k-means y ajuste por mínimos cuadrados, en código Nim.
¿Cómo se instala Arraymancer?
Instalar Nim con choosenim Instalar Arraymancer con nimble: nimble install arraymancer
¿Dónde consigo Arraymancer?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/mratsim/Arraymancer

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados