Repolode
mratsim

mratsim/Arraymancer

用 Nim 编写的高性能 N 维张量库,支持 CPU、CUDA 和 OpenCL,面向数值计算与深度学习。

可替代:NumPyPyTorch

Star
1,415
Fork
102
未关闭 Issue
166
最近提交
19天前

这是什么?

Arraymancer 是一个用 Nim 语言编写的 N 维张量(ndarray)库,设计上参考了 NumPy 和 PyTorch。它提供多维数组、切片、广播、变形、拼接以及矩阵乘法、最小二乘、特征分解、PCA、K-means 等线性代数与机器学习基础运算。

在数组之上,它还包含基于自动求导的神经网络 DSL,可用于定义、训练和运行模型,内置 Linear、Conv2D、MaxPool2D、GRU 等层。张量可运行在 CPU(通过 OpenMP 并行,底层依赖 BLAS/LAPACK),也可运行在 CUDA(可选 cuDNN)和 OpenCL 设备上,但 GPU 张量支持的操作少于 CPU 张量。

该库编译速度快,生成的可执行文件主要只依赖 BLAS 库,适合资源受限的设备。项目目前标注为实验性质,深度学习接口仍在完善中。

核心功能

  • 01支持最多 6 维的张量,提供类 NumPy 的切片语法和显式广播运算符 +.。
  • 02提供 concat、reshape、split、permute、transpose 等变形与拼接操作。
  • 03可读写 CSV、NumPy(.npy)和 HDF5 文件。
  • 04包含最小二乘求解、特征值分解、协方差矩阵等线性代数功能。
  • 05基于自动求导的神经网络 DSL,内置 Linear、Conv2D、池化和 GRU 层。
  • 06支持 CPU、CUDA 和 OpenCL 后端,但 GPU 后端的功能比 CPU 少。

适用场景

  • 需要高性能多维数组的 Nim 数值计算项目。
  • 在 Nim 中用自动求导和简洁的模型定义语法快速原型化小型神经网络。
  • 在无法部署大型 Python 环境的资源受限设备上运行模型。
  • 在 Nim 代码中完成 PCA、K-means、最小二乘拟合等经典机器学习任务。

快速上手

  1. 1

    使用 choosenim 安装 Nim

  2. 2

    使用 nimble 安装 Arraymancer

    nimble install arraymancer

使用前须知

  • 项目标注为实验性质,其深度学习接口被视为不稳定且仍在变化。
  • Arraymancer 需要系统中安装 BLAS 和 LAPACK 库。
  • CUDA 和 OpenCL 后端的功能不如 CPU 张量完整。

标签

常见问题

Arraymancer 是什么?
用 Nim 编写的高性能 N 维张量库,支持 CPU、CUDA 和 OpenCL,面向数值计算与深度学习。 Arraymancer 是一个用 Nim 语言编写的 N 维张量(ndarray)库,设计上参考了 NumPy 和 PyTorch。它提供多维数组、切片、广播、变形、拼接以及矩阵乘法、最小二乘、特征分解、PCA、K-means 等线性代数与机器学习基础运算。
Arraymancer 可以免费使用吗?用的什么许可证?
Arraymancer 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
Arraymancer 还在维护吗?
活跃维护中。Arraymancer 最近一次提交是在 2026年10月6日。
Arraymancer 适合用来做什么?
需要高性能多维数组的 Nim 数值计算项目。 在 Nim 中用自动求导和简洁的模型定义语法快速原型化小型神经网络。 在无法部署大型 Python 环境的资源受限设备上运行模型。 在 Nim 代码中完成 PCA、K-means、最小二乘拟合等经典机器学习任务。
Arraymancer 怎么安装和运行?
使用 choosenim 安装 Nim 使用 nimble 安装 Arraymancer: nimble install arraymancer
在哪里获取 Arraymancer?
源代码和安装说明在 GitHub 上:https://github.com/mratsim/Arraymancer

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目