Repolode
mratsim

mratsim/Arraymancer

CPU、CUDA、OpenCLバックエンドを備え、数値計算や深層学習向けに設計された、Nim製の高速で使いやすいN次元テンソルライブラリ。

代替できる製品:NumPyPyTorch

スター
1,415
フォーク
102
未解決の Issue
166
最終コミット
19 日前

これは何?

Arraymancerは、NumPyやPyTorchに着想を得た、Nim製のndarray(テンソル)ライブラリです。スライス、ブロードキャスト、形状変更に対応したN次元配列に加え、行列積、最小二乗法、固有値分解、PCA、k-meansなどの線形代数の基本機能を提供します。

配列のコア機能に加えて、autogradベースのニューラルネットワークDSLを備えており、モデルの定義、学習、実行ができます。Linear、Conv2D、MaxPool2D、GRUなどのレイヤーが用意されています。テンソルは、BLAS/LAPACKを利用したOpenMP並列化ルーチンによりCPU上で実行できるほか、CUDA(cuDNNは任意)やOpenCLデバイスでも実行できます。ただし、GPUテンソルで利用できる演算はCPUテンソルより少なくなっています。

ライブラリはコンパイルが速く、主にBLASライブラリに依存する自己完結型のバイナリを生成します。READMEでは、組み込みデバイスやRaspberry Piに適していると説明されています。プロジェクトは実験的と位置づけられており、深層学習インターフェースもまだ最終調整中です。

主な機能

  • 01最大6次元のテンソルに対応し、NumPy風のスライスと、+演算子による明示的なブロードキャストを提供。
  • 02concat、reshape、split、permute、transposeなどの形状変更・結合操作。
  • 03CSV、NumPy(.npy)、HDF5ファイルの読み書き。
  • 04最小二乗法、固有値分解、共分散行列などの線形代数ルーチン。
  • 05Linear、Conv2D、プーリング、GRUレイヤーを備えたautogradベースのニューラルネットワークDSL。
  • 06CPU、CUDA、OpenCLのテンソルバックエンドに対応。ただし、CUDAとOpenCLで利用できる演算は少なめ。

ユースケース

  • 高速な多次元配列を必要とする、Nimでの数値計算プロジェクト。
  • autogradと簡潔なモデル定義構文を使った、Nimでの小規模なニューラルネットワークのプロトタイピング。
  • 大規模なPython環境の導入が現実的でない、リソース制約のあるデバイスへのモデルのデプロイ。
  • Nimコードで行う、PCA、k-means、最小二乗フィッティングなどの古典的な機械学習タスク。

クイックスタート

  1. 1

    choosenimでNimをインストールする

  2. 2

    nimbleでArraymancerをインストールする

    nimble install arraymancer

使う前に知っておきたいこと

  • このプロジェクトは実験的とされており、深層学習インターフェースは不安定で、現在も変更が続いています。
  • Arraymancerを使用するには、BLASとLAPACKのライブラリをシステムにインストールする必要があります。
  • CUDAおよびOpenCLのバックエンドは、CPUテンソルに比べて機能がまだ十分に揃っていません。

トピック

よくある質問

Arraymancer とは?
CPU、CUDA、OpenCLバックエンドを備え、数値計算や深層学習向けに設計された、Nim製の高速で使いやすいN次元テンソルライブラリ。 Arraymancerは、NumPyやPyTorchに着想を得た、Nim製のndarray(テンソル)ライブラリです。スライス、ブロードキャスト、形状変更に対応したN次元配列に加え、行列積、最小二乗法、固有値分解、PCA、k-meansなどの線形代数の基本機能を提供します。
Arraymancer は無料で使えますか?ライセンスは?
Arraymancer は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
Arraymancer は今もメンテナンスされていますか?
活発にメンテナンス中。Arraymancer の最終コミットは 2026年10月6日 です。
Arraymancer は何に使えますか?
高速な多次元配列を必要とする、Nimでの数値計算プロジェクト。 autogradと簡潔なモデル定義構文を使った、Nimでの小規模なニューラルネットワークのプロトタイピング。 大規模なPython環境の導入が現実的でない、リソース制約のあるデバイスへのモデルのデプロイ。 Nimコードで行う、PCA、k-means、最小二乗フィッティングなどの古典的な機械学習タスク。
Arraymancer のインストール方法は?
choosenimでNimをインストールする nimbleでArraymancerをインストールする: nimble install arraymancer
Arraymancer はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/mratsim/Arraymancer

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト