Arraymancer
一個快速、符合人體工學且可移植的 Nim 張量庫,專注於深度學習,支援 CPU、GPU 及嵌入式裝置,後端採用 OpenMP、Cuda 和 OpenCL
Arraymancer 是什麼?
一個快速、符合人體工學且可移植的 Nim 張量庫,專注於深度學習,支援 CPU、GPU 及嵌入式裝置,後端採用 OpenMP、Cuda 和 OpenCL
Arraymancer 概覽
這是什麼
Arraymancer 是一個以 Nim 語言撰寫的張量(N 維陣列)函式庫。它專注於提供一個快速且符合人體工學的 ndarray 函式庫,支援 CPU、Cuda 與 OpenCL 後端,旨在支援科學計算生態系。此專案受 Numpy 與 PyTorch 啟發。
主要功能
- 支援張量建立、切片、重塑、串接與廣播運算。
- 包含機器學習演算法,如最小平方法求解器、主成分分析、分類器、回歸器、聚類與交叉驗證。
- 提供深度學習能力,包含自動微分、層(Linear、ReLU 等)與最佳化器(SGD)。
- 後端:CPU(搭配 OpenMP)、Cuda 與 OpenCL。
- 整合 BLAS 與 LAPACK 函式庫;可透過編譯旗標自訂 BLAS 選擇。
- 編譯旗標包含 release 模式、danger 模式、AVX512、Cuda 與 CuDNN。
- 在雙核心 MacBook 上約 5 秒編譯完成。
使用情境
- 使用 N 維陣列進行數值計算。
- 機器學習任務(分類、回歸、聚類、降維)。
- 深度學習模型訓練與推論(例如全連接網路、卷積網路、遞迴神經網路)。
快速開始
請參閱儲存庫的 README 以取得安裝說明與編譯旗標。
授權與價格
採用 Apache-2.0 授權。開放原始碼。
內容整理自該專案公開的 README 與儲存庫資訊。