概要
openTPU はAIによる設計のオープンソースAIアクセラレータ。 auto-arch-tournament の知見を活かし、AI自身が動作するハードウェアの設計可能性を追求。 FPGAカード上で主要モデルの推論を実現 し、シミュレータとビット単位で一致。 単一のモノレポ でハード・ソフト全体を学習・体験可能。 貢献・拡張も容易 で、PythonとVerilator主体で開発参加可能。
openTPU: AI設計によるオープンソースAIアクセラレータ
- openTPU はAI自身がハードウェア設計にどこまで関与できるかを探究するプロジェクト
- auto-arch-tournament の成果をAIアクセラレータ設計に応用
- AIエージェント自身が推論を実行するチップを構築できるか を問いかけ
- otpu-chat がLFM2.5-230MモデルをFPGAカード上で動作
- otpu-smi でカードの利用率やDRAM帯域幅を可視化
学習プロジェクトとしてのopenTPU
- 全設計が小さなモノレポに集約 され、ハードウェアからソフトウェアまで一貫して学習可能
- SystemVerilogによるハード設計
- 命令セット(ISA)とビット正確なシミュレータ
- カーネル言語とそのコンパイラ
- PCIeカードを駆動するホストソフトウェア
- PythonからワイヤレベルまでAIアクセラレータの構造を理解 できる教材として最適
性能・実績
- Inspur YPCB-00338カード(Xilinx Kintex-7 xc7k480t, DDR3 x2)上で10種以上の最新モデルを実行
- シミュレータとカードで出力トークンがビット単位で一致
- 代表モデルの性能例
- LFM2.5-230M int8: 59.0 tok/s(デバイス)、14.5 GB/s(DRAM、ピークの85%)
- Qwen3-0.6B int8: 21.6 tok/s(デバイス)、14.4 GB/s(84%)
- Gemma 4 E2B 4-bit: 12.14 tok/s(デバイス)、15.5 GB/s(91%)
- 4-bit量子化でデコード速度が40~45%向上、トークンあたりのバイト数も約1/3削減
- Mixture-of-Expertsモデル も4GiB超の場合はホストから専門家パラメータをストリーミング
- 全構成でシミュレータとビット単位一致
ハードウェア・ソフトウェア構成
- シンプルな設計思想
- シーケンサが1サイクル1命令発行
- DMAでデータ移動、行列ユニットでint8重みの積和
- ベクトルユニットでfp32演算、量子化ユニットでint8へ変換
- キャッシュや隠れたスケジューリングなし、全て命令で制御
- カーネル言語(@ol.jit)でモデル演算を記述
- Lensプロファイラ でRTL・シミュレータ・カードの動作を可視化
開発・利用方法
- ノートPC上でもシミュレータ等を動作可能
pip install -e .pip install pytest torch transformerspython3 -m pytest -qでテスト- モデルダウンロード後、
otpu-chat --model lfm2 --backend isaでシミュレータ上でチャット
- FPGAカード利用時はビットストリーム作成・JTAG経由で書き込み、
otpu-setup実行 - 主なコマンド
otpu-chat: 各種モデルでチャットotpu-smi: 温度・電力・DRAM帯域等を監視otpu-lens: プロファイラで動作解析otpu-selftest,otpu-diag: カードの動作確認
ドキュメント・学習ガイド
- docs/isa.md: 命令セットの全容
- opentpu/kernels, docs/compiler.md: カーネルから命令変換の仕組み
- opentpu/isasim.py: シミュレータ本体
- rtl/: ハードウェア設計(SystemVerilog)
- docs/lfm2.md, docs/qwen35.md, docs/llama.md, docs/benchmarks.md: 各モデルやベンチマーク詳細
- docs/board.md: カードの物理構成やクロック等
今後の課題・展望
- DRAM効率の最適化 (現状DDR3-1066ピークの82~85%)
- タイミングマージン・面積改善 (133.33MHzクロックの安定化)
- 高速なプレフィル処理 (行列ユニットの乗算速度向上)
- コミュニティ貢献歓迎 (Python・Verilator主体、FPGA不要な作業多数)
ライセンス
- Apache License 2.0 を採用
- 貢献・プルリクエスト随時受付
openTPU は、AI自身によるハード設計・推論実行の可能性を体験・学習できる、実用的かつ拡張性の高いオープンソースAIアクセラレータプロジェクト。