AI-translated from English; not yet reviewed by a fluent editor.

# 如何執行 openTPU 模擬器並評估其 FPGA 需求

> openTPU 記錄了一套用於語言模型推論的 Python 模擬器，以及通往 Inspur Kintex-7 卡的另一條路徑。本指南整理儲存庫中的指令、預期輸出與硬體需求。

By BIG CHANGE Editorial

Published: 2026-10-07T13:36:01.795Z
Updated: 2026-10-07T13:36:01.795Z
Canonical: https://bigchange.ai/blog/opentpu-simulator-fpga-requirements-guide

![Conceptual charcoal illustration of one engineer holding and examining a PCIe FPGA accelerator card above an electronics work mat.](https://bigchange.ai/api/media/file/opentpu-fpga-card-hero-v2.png)
AI-generated conceptual illustration by BIG CHANGE, based on a reference photograph of the Inspur YPCB-00338 board. It does not depict a BIG CHANGE test or observed openTPU run.

這個 [openTPU 儲存庫 ](https://github.com/FeSens/openTPU/tree/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93)將 Python 指令集模擬器、編譯器、SystemVerilog 設計與 FPGA 主機工具整合在同一個專案。作者表示曾在 Inspur Kintex-7 卡上執行語言模型。對 ML 系統或 FPGA 開發者而言，較容易開始的第一步，是以真正的模型權重執行軟體聊天。將同一專案移至電路板，還需要特定板卡、具授權的建置工具與 Linux 主機設定。本指南依據儲存庫的 commit `b9a3f3b`（2026 年 10 月 7 日）；BIG CHANGE 尚未安裝、模擬或測試此專案。

## 重大變化

- **有何改變：** openTPU 同時發布加速器指令集、模擬器、編譯器、RTL 與電路板整合。工程師可以先檢視模型運算如何轉成模擬指令，再決定是否購買支援的卡。
- **為何重要：**文件化的模擬器讓硬體學習者能以具體方式研究設計，並使用一般主機軟體執行小型語言模型。專案稱 AI agents 協助產生硬體堆疊；可檢視的產出讓這項開發主張值得進一步查證，而卡上執行結果仍是專案自行測得。
- **接下來觀察：**要重現實體結果，須有 Kintex-7 電路板、具授權的 Vivado 建置環境，以及可正常運作的 PCIe 啟動流程。儲存庫提供相關指令和自我測試。以固定版本進行獨立執行，才能確認其他工程師重現結果是否容易。

## 固定來源版本並選擇軟體路徑

以下步驟依據儲存庫 `main`的版本，使用 [commit `b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93`](https://github.com/FeSens/openTPU/commit/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93)，於 10 月 7 日提交。儲存庫有一個 `v0.5` 標籤，但本指南採用較新的固定 commit，因為其 README 新增了 [Hugging Face 驗證章節](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md#validating-against-hugging-face)。Python 套件仍在 `0.1.0` 中標示為版本 [`pyproject.toml`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/pyproject.toml)；僅憑套件版本號無法識別來源快照。儲存庫採用 Apache 2.0 授權。

需要 Python 3.10 或更新版本。套件宣告相依於 `numpy` 和 `textual`；README 另行安裝 `pytest`、`torch` 和 `transformers` 以供測試和使用模型。README 示範透過 Hugging Face 的 `hf` 指令，將 checkpoint 下載至 `models/LFM2.5-230M`。下載前請確認 Python 環境中可以使用 `hf`。Checkpoint 是聊天指令的輸入，不是隨原始碼附上的模型。專案未說明這條路徑的下載總容量、主機記憶體需求或固定模擬器執行時間。

在儲存庫根目錄執行，文件所列的 [步驟 ](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md#try-it)如下：

```shell
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 checkpoint，接著聊天介面可接收提示並回傳模型文字。產生回覆的確切文字取決於提示和抽樣設定。 [聊天 CLI 原始碼 ](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/opentpu/host/chat.py)也提供終端機 REPL 的 `--plain` 和單次回覆的 `--prompt`；後者會輸出回覆與回合統計。這些是文件記載的介面，並非 BIG CHANGE 實際觀察到的輸出。

README 將 Qwen3-0.6B、LFM2.5-230M 和 Qwen3.5-0.8B 列為主要聊天模型，另有數個較大型模型。每個模型都需在預期目錄中放置自己的 checkpoint，或指定明確路徑。上述 LFM2 路徑是儲存庫中最簡短的模型下載範例。README 更完整的結果涵蓋卡上十個模型，包括 Gemma 4 與需要專家卸載的模型；部分模型也測試了多種權重格式。該表是作者的測量結果，並不保證所有模型都能採用這項單指令 LFM2 設定。

## 模擬器檢查什麼

專案說明，一種 kernel 語言與編譯器會產生加速器指令。Python ISA 模擬器執行這些指令；SystemVerilog RTL 則是硬體實作。 [README 的系統概述 ](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md#how-it-works)和 [`opentpu/isasim.py`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/opentpu/isasim.py)可讓讀者追蹤兩者的界線。執行 `otpu-chat` 搭配 `isa`會透過軟體指令路徑進行模型推論，不會編寫 FPGA，也不會測量電路板的吞吐量。

維護者表示，他們的卡所產生的 token 與模擬器逐位元相同，並提供 [驗證指令碼 ](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/tools/validate.py)，將選定的裝置執行結果與 CPU Hugging Face 參考結果比較。固定版本 README 說明預設提示、token 與 logit 比較，以及 10 月 7 日的卡上執行。這些報告和程式碼可供檢查。BIG CHANGE 未重做測試，因此不能據此證明獨立的準確度或速度。

## 使用實體卡有何不同

這份 [電路板手冊 ](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md)以 **Inspur YPCB-00338** 搭配 Xilinx Kintex-7 `xc7k480t-ffg1156-2`、兩個 2 GiB DDR3 通道，以及連接主機電腦的 PCIe 為目標。預設 bitstream 建置使用 Vivado 2026.1。手冊稱免費版不包含此裝置，並建議購買授權或使用 30 天評估版。 [AMD 2026.1 裝置表 ](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Device-Availability-by-Subscription-Tier?contentId=FXBYqlfi_pd_k5OTkJcJ1A)對此裝置說法提出相反資訊： **Basic 包含所有 Kintex 7 裝置**。

[AMD 目前的授權選項 ](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html)列出 Basic 價格為 $0，支援 Linux，且可免費年度續約。 [授權常見問題 ](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html)指出 Basic 仍需有效的年度授權檔；獨立提供的完整功能評估版期限為 **60 天**。 [AMD 2026.1 功能表 ](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features)列出 Basic 支援 JTAG 編程，但限制 XSIM 模擬和部分除錯功能。較高階付費層級增加功能，AMD 並表示 IP 授權不變。BIG CHANGE 尚未用 Basic 建置 openTPU。在將此流程稱為零成本建置前，仍須確認 bitstream 流程所需的工具和 IP 權利。電路板手冊估計 `make bit` 需時 1.5 至 3 小時，視電腦而定。手冊與 AMD 層級表都未提供此卡的購買價格或完整重現成本。

取得電路板和工具鏈後，文件記載的板卡路徑是在 `boards/ypcb-00338` 建置 bitstream，透過 JTAG 編程 FPGA，並設定 Linux 主機。板卡的 [`Makefile`](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/boards/ypcb-00338/Makefile) 會將 `make bit` 輸出傳送至 `build/vivado/otpu.bit`。`make program` 預設使用 openFPGALoader；手冊也說明 Vivado 的 hardware manager。JTAG 載入內容不會在斷電重啟後保留。

```shell
cd boards/ypcb-00338
make lint
make bit
make program
```

上述硬體步驟來自電路板手冊，並非本指南實際測試的流程。Linux 主機的啟動檢查表要求 Python 套件與 checkpoint、 `sudo otpu-setup`（用來安裝 XDMA 驅動程式和裝置規則）、JTAG 載入後重新掃描 PCIe，以及執行 `otpu-setup --check`。文件指出，若驅動程式、卡、連線、裝置節點和 ID register 正確，最後一項會以「all in place」成功結束。之後由 `otpu-selftest` 檢查卡片，再執行 `otpu-chat --backend board --model lfm2`。板卡診斷可用 `otpu-diag --json diag.json` 儲存。這些檢查才是卡板路徑的具體完成訊號；ISA 聊天本身無法取代。

對公開的效能數字也須同樣謹慎。README 舉例指出，作者的卡以 4-bit 權重和 int8 head 執行 LFM2.5-230M，wall time 為 **每秒 82.1 個 token** 。其方法是在 512-token 提示後使用 greedy decode 產生 64 個 token；表格區分裝置週期與包含主機時間的 wall time。更換主機、bitstream、權重格式或提示都會得到不同測量。10 月 7 日的 commit 訊息記錄卡上的額外驗證，但仍是維護者紀錄。本指南檢視的來源中，沒有獨立重現的基準測試。

## 來源與延伸閱讀

- [檢視版本的 openTPU 儲存庫](https://github.com/FeSens/openTPU/tree/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93)，2026 年 10 月 7 日。README 提供系統概述、模擬器指令、模型清單和作者自行回報的板卡測量。結果是專案主張；BIG CHANGE 未執行儲存庫。
- [Python 套件中繼資料](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/pyproject.toml)和[Apache 2.0 授權](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/LICENSE)。這些資料說明 Python 版本、宣告的相依套件、CLI 進入點、套件版本與原始碼授權。模型 checkpoint 和 Vivado 有各自的條款與要求。
- [電路板與主機啟動手冊](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md)，於 2026 年 10 月 7 日檢查。手冊說明支援的卡、bitstream 步驟、Linux 設定、JTAG 編程與自我測試。其付費授權和 30 天評估版說法與 AMD 現行 2026.1 授權文件相互矛盾。部分歷史 bitstream 範例提及較早建置；重現時請使用固定版本樹與目前的建置指示。
- [AMD Vivado 2026.1 裝置可用性，UG973](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Device-Availability-by-Subscription-Tier?contentId=FXBYqlfi_pd_k5OTkJcJ1A)和[支援的裝置與功能](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features)，兩者日期均為 2026 年 6 月 23 日；另有[授權選項](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html)，於 10 月 7 日檢查。這些資料將所有 Kintex 7 裝置列入免費 Basic，列出 Linux 和 JTAG 支援，並說明 Basic 的模擬與除錯限制。[AMD 授權常見問題](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html)說明 Basic 的年度授權檔與 60 天評估版。僅有裝置支援資訊，無法驗證此專案完整 bitstream 流程可在 Basic 上運作。
- [聊天 CLI](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/opentpu/host/chat.py)和[LFM2 指南](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/lfm2.md)。這些資料說明後端選擇、模型路徑、互動式與單次輸出的行為，以及小型 checkpoint 範例。
- [GIGAZINE 10 月 7 日報導](https://gigazine.net/gsc_news/en/20261007-opentpu)可提供專案受到公開關注的背景。本指南的設定和效能細節是根據儲存庫查核，而非取自該報導。

## Sources

- [檢視版本的 openTPU README](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/README.md) — 主要概述、模擬器指令、模型清單、卡上測量結果及方法。結果和 AI 輔助設計說明均為專案主張。
- [openTPU 電路板手冊](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/docs/board.md) — 支援的 Inspur 卡、裝置、DDR3、Vivado 2026.1、建置/編程/主機設定與檢查。其僅提供付費授權/30 天評估的建議，與 AMD 2026.1 層級文件相衝突。歷史章節包含較舊圖片。
- [openTPU 套件中繼資料與聊天原始碼](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/pyproject.toml) — Python 最低版本、宣告的相依套件、套件版本、授權聲明和 CLI 進入點；聊天原始碼說明後端選項與預期輸出介面。
- [openTPU Apache 2.0 授權](https://github.com/FeSens/openTPU/blob/b9a3f3bc98e7f74808fd5650bf9db33eaf7b2c93/LICENSE) — 專案原始碼授權；不代表模型和 Vivado 也採用相同條款。
- [AMD Vivado 2026.1 依訂閱層級區分的裝置可用性（UG973）](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Device-Availability-by-Subscription-Tier?contentId=FXBYqlfi_pd_k5OTkJcJ1A) — AMD 2026.1 裝置表明確將所有 Kintex 7 裝置列在 Basic 之下；裝置涵蓋範圍並未獨立驗證 openTPU 整個 bitstream/IP 流程。
- [AMD Vivado 2026.1 支援的裝置與功能（UG973）](https://docs.amd.com/r/en-US/ug973-vivado-release-notes-install-license/Supported-Devices-and-Features) — 啟動時需要有效授權檔；Basic 包含 JTAG 編程，但限制 XSIM 模擬與部分除錯功能。此文件並未驗證 openTPU 可在 Basic 下建置。
- [AMD Vivado 授權選項](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/vivado/vivado-licensing-options.html) — 目前 Basic 價格為 $0，可免費年度續約，支援 Linux；不同層級功能有別，IP 授權不變。此層級模式自 2026.1 開始。
- [AMD 授權常見問題](https://www.amd.com/en/products/software/adaptive-socs-and-fpgas/licensing-faq.html) — Basic 2026.1 以上版本需要有效的年度授權檔，可免費取得；另行提供的完整功能評估版期限為 60 天。
- [GIGAZINE：openTPU 報導](https://gigazine.net/gsc_news/en/20261007-opentpu) — 僅作為次級報導背景。設定和效能資訊已對照儲存庫的第一手來源查核。
