[論文レビュー] MiniTensor: A Lightweight, High-Performance Tensor Operations Library
MiniTensor は Rust エンジンと PyO3 バインディングを備えた PyTorch に似たオープンソースのテンソルライブラリで、少数ミリバイトのホイールで自動微分、NN モジュール、最適化を備えた CPU 指向のミニマルなフレームワークを提供します。正確性とパフォーマンスを重視し、数メガバイト級のホイールを特徴とします。
We present MiniTensor, an open source tensor operations library that focuses on minimalism, correctness, and performance. MiniTensor exposes a familiar PyTorch-like Python API while it executes performance critical code in a Rust engine. The core supports dense $n$ dimensional tensors, broadcasting, reductions, matrix multiplication, reverse mode automatic differentiation, a compact set of neural network layers, and standard optimizers. In this paper, we describe the design of MiniTensor's architecture, including its efficient memory management, dynamic computation graph for gradients, and integration with Python via PyO3. We also compare the install footprint with PyTorch and TensorFlow to demonstrate that MiniTensor achieves a package size of only a few megabytes, several orders of magnitude smaller than mainstream frameworks, while preserving the essentials needed for research and development on CPUs. The repository can be found at https://github.com/neuralsorcerer/minitensor
研究の動機と目的
- CPU の研究と教育のためのコンパクトで正確かつ高性能なテンソルライブラリを提供する。
- Rust 実行エンジンと Python バインディングを備えた PyTorch に着想を得た API を提供する。
- 重要な DL 機能を保ちつつビット数を最小化したバイナリサイズを示す。
提案手法
- 三層アーキテクチャ:Python API、PyO3 バインディング、Rust エンジン。
- 計算グラフと逆伝搬を用いた逆モード自動微分。
- 密テンソル、ブロードキャスト、リダクション、行列乗算を含むコアテンソル演算と標準的な NN レイヤ、損失関数、最適化アルゴリズムの実装。
- JIT コンパイル、LLVM ベクトル化、使用可能な場合のポータブル SIMD など高度なパフォーマンス技術。
- PyO3 バインディングによる NumPy とのゼロコピー互換性。
- 正確性と勾配を検証する単体テストと微分近似のエンドツーエンドの例題。
実験結果
リサーチクエスチョン
- RQ1ミニマルな CPU 指向のテンソルライブラリは、主流のフレームワークよりもはるかに小さいフットプリントで必須のディープラーニング機能を提供できるか。
- RQ2Rust ベースのエンジンと PyTorch 風 API は、CPU タスクの一般的な演算で大規模フレームワークのパフォーマンスにどれだけ近づけられるか。
- RQ3軽量フレームワークにおけるバイナリサイズ、監査の容易さ、研究用途の実用性の実践的なトレードオフは何か。
主な発見
| パッケージとプラットフォーム | ホイールファイル名(例) | サイズ |
|---|---|---|
| MiniTensor (Linux x86_64, cp312) | minitensor-0.1.1-...-.whl | 2.6 MB |
| PyTorch (Linux x86_64, cp313t) | torch-2.8.0-...-.whl | 887.9 MB |
| TensorFlow (Linux x86_64, cp312) | tensorflow-2.20.0-...-.whl | 620.7 MB |
- MiniTensor のホイールは数メガバイト(2.6 MB)で、PyTorch(887.9 MB)や TensorFlow(620.7 MB)に比べて小さい。
- 密テンソル、ブロードキャスト、リダクション、行列乗算、逆モード自動微分、ニューラルネットレイヤ、標準的な最適化アルゴリズムを提供する。
- パフォーマンスは LLVM ベースのベクトル化、事前コンパイル、オプションのポータブル SIMD を備えた Rust エンジンに依存。GPU サポートはロードマップに含まれる。
- PyO3 経由の Python 統合により、互換性のある NumPy 配列とのゼロコピー変換を実現し、PyTorch ラインナップの使い勝手を維持する。
- ライブラリには自動微分の正確性を検証する単体テストと有限差分チェック、エンドツーエンドのモデルトレーニング例が含まれる。
- 設計は最小限のカーネル表面、監査可能なコード、CPU 上での簡潔なデプロイを強調する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。