openTPU: AIが開発したオープンソースの推論アクセラレータ

AI主導の推論用ハードウェア設計

openTPUは、AIエージェントがハードウェア設計を担い、自身の推論を実行するために必要なチップを構築できることを実証するために設計されたオープンソースのAIアクセラレータです。このプロジェクトは、ハードウェア設計(SystemVerilog)、命令セットアーキテクチャ(ISA)、ビット精度のシミュレータ、コンパイラを備えたカーネル言語、そして物理的なPCIeカードを駆動するために必要なホストソフトウェアを含む、完全な垂直統合スタックを単一のモノレポで提供しています。

プロジェクトの作成者によると、開発プロセスには再帰的な自己改善ループが活用されました。当初はRISC-V CPUコアの開発にAIを使用していましたが、同じ手法をopenTPUにも適用したことで、アクセラレータの性能は毎秒数トークンから、小規模モデルにおいて毎秒80トークン以上へと向上しました。

ハードウェア仕様と実装

openTPUは、Xilinx Kintex-7 xc7k480t FPGAと2つのDDR3チャネル(DDR3-1066、ピーク時17.1 GB/s)を搭載したInspur YPCB-00338カード上に実装されています。システムは133.33 MHzのクロック周波数で動作します。

アーキテクチャのコンポーネント

  • Sequencer: サイクルごとに1つの命令を各機能ユニットに発行します。
  • DMA: データ転送を処理します。
  • Matrix Unit: DRAMからストリーミングされるint8の重みを乗算する、4列のシストリック行列ユニットです。
  • Vector Unit: FP32の数学演算を実行します。
  • Quantizer: 結果をint8に変換します。
  • LiteDRAM Controllers: メモリコア内の内部CPUによってキャリブレーションされ、ホストの介入なしに12秒で両方のDDR3チャネルをキャリブレーションできます。

このアーキテクチャはシンプルさと透明性を重視して設計されており、キャッシュや隠れたスケジューリングは存在しません。すべてのデータ移動は明示的な命令であるため、付属の「Lens」プロファイラを使用して正確なパフォーマンスプロファイリングが可能です。これにより、ハードウェア利用率のルーフラインビューやタイムラインビューを確認できます。

パフォーマンスベンチマーク

openTPUは、Qwen3、Qwen3.5、LFM2.5、Gemma 4、SmolLM3、Phi-4-miniなど、幅広い最新モデルをサポートしています。この設計は、物理的なFPGAカードとPythonベースのISAシミュレータの間でビット単位の完全な一致を実現しています。

デコードおよびプリフィル性能

パフォーマンスはモデルサイズと量子化レベル(int8対4ビット)によって異なります。

モデル 重み デコード (デバイス) プリフィル (デバイス) DRAM帯域幅
LFM2.5-230M 4-bit, int8 head 85.8 tok/s 335.4 tok/s 14.1 GB/s (82% peak)
Qwen3-0.6B 4-bit, int8 head 31.3 tok/s 103.4 tok/s 13.9 GB/s (82% peak)
Qwen3.5-0.8B 4-bit, int8 head 24.5 tok/s 23.3 tok/s 66.7 tok/s
LFM2-2.6B 4-bit, int8 head 10.96 tok/s 10.93 tok/s 20.6 tok/s
Phi-4-mini (3.8B) 4-bit, int8 head 6.56 tok/s 15.0 tok/s 15.8 GB/s (92% peak)
Qwen3.5-4B 4-bit, int8 head 5.88 tok/s 12.9 tok/s 15.7 GB/s (92% peak)

メモリ管理と量子化

  • 4ビット量子化: 2レベルのブロックスケール(重みあたり4.25ビット)を持つFP4値を使用し、LMヘッドはint8に維持します。これにより、トークンあたりのバイト数が約3分の1に削減され、デコード速度が40%から45%向上します。
  • エキスパートオフロード: カードの4 GiB容量を超えるMixture-of-Experts (MoE) モデルの場合、エキスパートはホストストレージからストリーミングされます。例えば、Qwen3.5-35B-A3Bは3.95 tok/sを達成し、エキスパート使用の62%がローカルDRAMスロットにヒットし、PCIe経由で1.41 GB/sの速度でトークンあたり153 MBをストリーミングします。

ソフトウェアスタックとツール

このプロジェクトでは、高レベルの操作(ol.dotやol.quantizeなど)を32ビットワードのISAに変換するJITコンパイラを備えたカスタムカーネル言語(ol)を使用しています。

ツールスイート

  • otpu-chat: ISAシミュレータまたは物理ボードを使用して、サポートされているモデルとチャットするためのインターフェース。
  • otpu-smi: 温度、電力、DRAM帯域幅、ユニット利用率を監視するためのシステム管理インターフェース。
  • otpu-lens: RTL、シミュレータ、またはカードからの実行を記録し、サイクルごとの実行を分析するためのブラウザベースのプロファイラ。

コミュニティの視点

このプロジェクトは機能するAI設計のアクセラレータを実証していますが、Hacker Newsでのコミュニティの議論では、「AIが開発したハードウェア」の定義に関する議論が巻き起こりました。

「AIは今や独自の推論ハードウェアを開発できるようになった」という主張は誤りです。実際には、人間がLLMに対してハードウェア設計用のソフトウェアシミュレーション環境を構築するよう指示し、そのシミュレーション環境内で人間がプロンプトを与えることで、LLMが制約条件に基づいてハードウェア設計を最適化しているに過ぎません。 — @handle

他の貢献者は、このプロジェクトのオープンソースとしての教育的価値を指摘しており、ユーザーがPythonコードからFPGAの物理的な配線に至るまで、行列乗算の過程を追跡できる点を評価しています。

Sources

関連

  • プロジェクト
  • Dispatch
  • プロジェクト
  • Dispatch
  • Dispatch