この openTPUリポジトリ は、Pythonの命令セットシミュレーター、コンパイラー、SystemVerilog設計、FPGAホストツールを1つのプロジェクトにまとめています。作者は、Inspur Kintex-7カードで言語モデルを実行したと報告しています。MLシステムやFPGAの開発者にとって取り組みやすい最初の手順は、実際のモデル重みを使ったソフトウェア上のチャット実行です。同じプロジェクトをカードに移すには、特定のボード、ライセンス済みビルドツール、Linuxホストの設定が加わります。このガイドは2026年10月7日のコミット b9a3f3b時点のリポジトリに沿っています。BIG CHANGEはインストール、シミュレーション、テストを行っていません。

大きな変化

  • 何が変わったか: openTPUは、アクセラレーターの命令セット、シミュレーター、コンパイラー、RTL、ボード統合をまとめて公開しています。エンジニアは対応カードを入手する前に、モデルの演算からシミュレーションされた命令までの流れを確認できます。
  • なぜ重要か:文書化されたシミュレーターにより、ハードウェアを学ぶ人は設計を具体的に調べ、一般的なホストソフトウェアで小規模な言語モデルを実行できます。プロジェクトはAIエージェントがハードウェアスタックの作成を支援したと述べています。確認可能な成果物があるため、この開発上の主張を検討できますが、カードでの結果は依然としてプロジェクト自身の測定値です。
  • 今後注目する点:実機で結果を再現するには、Kintex-7ボード、ライセンス済みVivadoビルド、正常に動作するPCIeの初期化が必要です。リポジトリには、そのためのコマンドと自己テストがあります。固定したリビジョンで独立に実行すれば、他のエンジニアがどの程度簡単に再現できるかが分かります。

ソースを固定し、ソフトウェア経路を選ぶ

以下の手順は、リポジトリ mainの コミット b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93に基づいています。これは10月7日にコミットされました。リポジトリには v0.5 タグがありますが、このガイドでは後の固定コミットを使用します。そのREADMEには新しい Hugging Face検証セクションが含まれています。Pythonパッケージは 0.1.0で依然としてバージョン pyproject.tomlと表示されていますが、パッケージ番号だけではソースのスナップショットを特定できません。リポジトリはApache 2.0ライセンスです。

Python 3.10以降が必要です。パッケージは numpyと textualを依存関係として宣言しています。READMEはテストやモデル利用のために、別途 pytest、 torch、 transformersをインストールします。また、Hugging Faceの hfコマンドでチェックポイントを models/LFM2.5-230Mにダウンロードする方法を示しています。ダウンロード前に、Python環境で hfが利用できることを確認してください。チェックポイントはチャットコマンドへの入力であり、ソースに同梱されたモデルではありません。この経路について、プロジェクトは総ダウンロード量、ホストメモリー要件、シミュレーターの固定実行時間を示していません。

リポジトリのルートから、文書化された 手順 を実行します:

Terminal
git clone https://github.com/FeSens/openTPU.git
cd openTPU
git checkout b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93
pip install -e .
pip install pytest torch transformers
python3 -m pytest -q
hf download LiquidAI/LFM2.5-230M --local-dir models/LFM2.5-230M
otpu-chat --model lfm2 --backend isa

checkoutコマンドは調査したリビジョンを固定します。インストール、テスト、ダウンロード、チャットのコマンドはREADMEに記載されています。 --backend isaはPython命令セットシミュレーターを選択します。完全な pytestテストスイートにはVerilator 5を必要とするRTLテストも含まれるため、このツールがないマシンでは、スイート全体をソフトウェアのみの成功確認として使えません。文書化された最小の対話型実行では、LFM2.5-230Mチェックポイントが読み込まれ、プロンプトを受け取ってモデルのテキストを返すチャット画面が起動すれば完了です。返答の正確な文言はプロンプトとサンプリングに左右されます。 チャットCLIのソース には、端末のREPL用 --plainと、1回だけ応答する --promptもあります。後者は応答とターン統計を出力します。これらは文書化されたインターフェースであり、BIG CHANGEが確認した出力ではありません。

READMEは主要なチャット候補としてQwen3-0.6B、LFM2.5-230M、Qwen3.5-0.8Bを挙げ、さらに複数の大型モデルを掲載しています。各モデルには、想定されたモデルディレクトリ内の個別チェックポイントか、明示的なチェックポイントパスが必要です。上記のLFM2手順は、リポジトリにある最短のモデルダウンロード例です。READMEのより広範な結果はカード上の10モデルを対象とし、Gemma 4やexpert offloadingを必要とするモデルも含みます。一部は複数の重み形式で測定されています。この表は作者の測定結果であり、すべてのモデルがこの1コマンドのLFM2設定で動くという保証ではありません。

シミュレーターが確認すること

プロジェクトによると、カーネル言語とコンパイラーがアクセラレーター用の命令を生成します。Python ISAシミュレーターが命令を実行し、SystemVerilog RTLがハードウェアの実装に当たります。 READMEのシステム概要 と opentpu/isasim.pyを読むと、その境界をたどれます。 otpu-chatを isaとともに実行すると、ソフトウェア命令経路でモデル推論が行われます。FPGAのプログラムやカードのスループット測定は行いません。

メンテナーは、カードがシミュレーターとビット単位で一致するトークンを出力すると報告し、選択したデバイス実行をCPU上のHugging Face参照結果と比較する 検証スクリプト を提供しています。固定版READMEには、既定のプロンプト、トークンとlogitの比較、10月7日のカード実行が記されています。報告とコードから検査方法を確認できます。BIG CHANGEは再現していないため、独立した精度や速度の証明にはなりません。

実機カードで変わること

この ボードマニュアル が対象にするのは、 Inspur YPCB-00338 とXilinx Kintex-7 xc7k480t-ffg1156-2、2 GiBのDDR3チャンネル2本、ホストPCへのPCIe接続です。既定のビットストリームビルドにはVivado 2026.1を使います。マニュアルは無料版にこのデバイスが含まれないと記し、有料ライセンスまたは30日間の評価版を提案しています。 AMDの2026.1デバイス表 はこのデバイスに関する説明と食い違います: BasicにはすべてのKintex 7デバイスが含まれる。

AMDの現在のライセンス選択肢 では、Basicは0ドルで、Linuxをサポートし、毎年無料で更新できます。 ライセンスFAQ によると、Basicでも有効な年間ライセンスファイルが必要です。別途提供される全機能評価版の期間は 60日間です。 AMDの2026.1機能表 にはBasicでのJTAGプログラミングが記載されていますが、XSIMシミュレーションと一部のデバッグ機能には制限があります。上位の有料プランは機能を追加しますが、IPライセンスは変わらないとAMDは説明しています。BIG CHANGEはBasicでopenTPUをビルドしていません。このビットストリーム経路を無償ビルドとみなす前に、ツールとIPの利用権を確認する必要があります。ボードマニュアルは、マシンに応じて make bitに1.5~3時間かかると見積もっています。マニュアルもAMDのプラン表も、カードの購入価格や再現の総費用を示していません。

ボードとツールチェーンを用意した後の文書化された手順は、 boards/ypcb-00338でビットストリームをビルドし、JTAG経由でFPGAをプログラムして、Linuxホストを設定することです。ボードの Makefileは make bitの出力を build/vivado/otpu.bitに送ります。 make programは既定でopenFPGALoaderを使います。マニュアルにはVivadoのhardware managerも記載されています。JTAGでのロードは、電源を入れ直すと保持されません。

Terminal
cd boards/ypcb-00338
make lint
make bit
make program

上記のハードウェア手順はボードマニュアルに記載されたもので、この場で試した手順ではありません。Linuxホストのbring-upチェックリストでは、Pythonパッケージとチェックポイント、XDMAドライバーとデバイス規則のインストール用 sudo otpu-setup、JTAGロード後のPCIe再スキャン、そして otpu-setup --checkを求めています。ドライバー、カード、リンク、デバイスノード、IDレジスターが正しければ、最後のコマンドは正常終了して「all in place」と表示すると説明されています。続いて otpu-selftestでカードを確認してから otpu-chat --backend board --model lfm2を実行します。ボード診断は otpu-diag --json diag.jsonで保存できます。これらがカード経路の具体的な完了条件であり、ISAチャットだけでは代用できません。

公表された性能値にも同じ注意が必要です。READMEは例として、作者のカードで4ビット重みとint8 headを使ったLFM2.5-230Mが 実時間で毎秒82.1トークン と報告しています。手法では512トークンのプロンプトの後、greedy decodeで64トークンを生成します。表はデバイスのサイクル数とホスト込みの実時間を区別しています。ホスト、ビットストリーム、重み形式、プロンプトが異なれば測定値も変わります。10月7日のコミットメッセージはカード上で追加検証したと記していますが、これもメンテナーの記録です。このガイドで確認した資料に、独立して再現されたベンチマークはありません。

出典と参考資料

  • 調査対象のコミットにあるopenTPUリポジトリ、2026年10月7日。READMEにはシステム概要、シミュレーターコマンド、モデル一覧、作者自身が報告したボード測定値があります。結果はプロジェクトの主張であり、BIG CHANGEはリポジトリを実行していません。
  • PythonパッケージのメタデータとApache 2.0ライセンスから、Pythonのバージョン、宣言された依存関係、CLIのエントリーポイント、パッケージのバージョン、ソースライセンスが分かります。モデルのチェックポイントとVivadoには別の条件と要件があります。
  • ボードとホストの起動マニュアル、2026年10月7日確認。対応カード、ビットストリーム手順、Linux設定、JTAGプログラミング、自己テストを説明しています。有料ライセンスと30日評価版に関する記述は、AMDの現行2026.1ライセンス資料と矛盾します。過去のビットストリーム例には旧ビルドを参照するものがあるため、再現時は固定版のツリーと現行ビルド手順を使ってください。
  • AMD Vivado 2026.1のデバイス対応状況、UG973と対応デバイスと機能(どちらも2026年6月23日付)、およびライセンスの選択肢(10月7日確認)。すべてのKintex 7デバイスが無料のBasicに含まれること、LinuxとJTAGの対応、Basicのシミュレーションとデバッグの制限を示しています。AMDライセンスFAQにはBasicの年間ライセンスファイルと60日評価版が記載されています。デバイス対応だけでは、このプロジェクトのビットストリーム経路全体がBasicで動くことを確認できません。
  • チャットCLIとLFM2ガイドには、バックエンドの選択、モデルパス、対話型と単発出力の動作、小さなチェックポイントの例があります。
  • 10月7日のGIGAZINE報道は、プロジェクトへの世間の関心を理解する参考情報です。このガイドの設定と性能の詳細は、その記事ではなくリポジトリに照らして確認しました。