开源项目

AI自主设计推理硬件:openTPU开源加速器

Heooo 10月07日00时59分 4 阅读

「openTPU 是一个由 AI 开发的开源 AI 加速器项目,把硬件设计、指令集、位精确仿真器、内核语言与编译器、主机驱动软件收进一个可端到端阅读的代码仓库。它已在浪潮 FPGA 卡上运行十个现代模型并加载真实权重,输出 token 与仿真器逐位一致,同时探索 AI 智能体在硬件设计上能走多远。」

openTPU 是一个由 AI 开发的开源 AI 加速器项目。它延续了 auto-arch-tournament 的经验,把同样的思路带到 AI 加速器上,并提出两个核心问题:AI 智能体在硬件设计这条路上究竟能走多远,以及它们能否造出运行自身推理的那块芯片。项目同时也是一个学习型工程,整个加速器被收纳在一个小型 monorepo 中,任何人都可以从头读到尾。

这个仓库里包含的内容相当完整:用 SystemVerilog 编写的硬件设计、指令集定义、一个位精确的仿真器、一门内核语言及其配套编译器,以及驱动真实 PCIe 加速卡的主机软件。如果想要理解 AI 加速器究竟如何工作,从 Python 里的一行矩阵乘法一路看到最底层的连线,这里是一个不错的起点。

在实际验证环节,设计被放到浪潮 YPCB-00338 加速卡上运行,卡上搭载 Xilinx Kintex-7 xc7k480t 芯片与两路 DDR3 通道,共加载了十个现代模型及其真实权重。加速卡产出的 token 与仿真器结果逐位一致。配套工具中,otpu-chat 可以在 FPGA 卡上运行 LFM2.5-230M 模型,otpu-smi 则实时显示加速卡的利用率与 DRAM 带宽占用情况。

性能方面,Build B 相比此前的 e698dcd7 版本,解码 LFM2-2.6B、SmolLM3 与 Phi-4-mini 的速度提升了 8% 到 9%,Gemma 4 E2B 提升约 10%,同时 DRAM 峰值利用率从 82% 到 87% 的区间提升到 91% 到 94%。Qwen3.5-4B 的 int8 镜像体积则超过了 4 GiB。

架构层面,主镜像 e698dcd 运行在 133.33 MHz,一份 bitstream 即可覆盖所有模型。它包含由内存核内部一个小型 CPU 校准的 LiteDRAM 控制器、一个四列脉动矩阵单元以及流式引擎。内存采用 DDR3-1066,峰值带宽 17.1 GB/s。承载加速卡的主机为一台 Intel Core i7-4790 机器。

评测方法上,解码任务定义为 512 token 提示词之后生成 64 个贪婪 token,主机的 argmax 放在循环内而非采用流式方式。指标中的 device 只统计加速器实际运行的周期数,wall 则把主机耗时一并计入;prefill 阶段对应设备上的 512 token 提示词。DRAM 流量数据直接来自加速卡在运行过程中的自身计数器。

Gemma 4 系列做了特殊处理。E2B 把逐层嵌入表保留在卡上,镜像体积为 3.5 到 3.6 GiB,但在 int8 精度下放不进卡内。它在三个提示词上与 Hugging Face 的贪婪 token 结果一致。E4B 的嵌入表约 2.95 GB,留在主机侧,每生成一个 token 就往卡内复制一行 11 KB 的数据,其镜像为 3.96 GiB,采用 int8 并把输出头与前 24 层的下投影量化为 4-bit。在加速卡自主的解码循环中,也就是每一个 token 都由卡自己挑选时,Gemma 4 的表现更好:E2B 达到 11.01 与 12.73 tok/s,分别对应 int8 与 4-bit 输出头,E4B 为 3.83 tok/s。

在把 logits 流式传回、同时加速卡持续运行的配置下,4-bit 解码速度更快,按 device 与 wall 两种口径统计的 tok/s 分别为:LFM2 为 89.5 与 84.5,Qwen3 为 33.7 与 33.3,Qwen3.5 为 24.6 与 24。

值得注意的是,所有配置都与仿真器逐 token、逐位置保持一致,常驻解码程序的表现同样如此。对于想要理解 AI 加速器从算法到硬件的完整链路,或者关心 AI 智能体能否参与芯片设计这一命题的开发者来说,openTPU 提供了一个可以完整阅读、亲手复现的开源样本。

# openTPU # AI加速器 # 开源硬件 # FPGA # 推理部署

来源:Heooo AI工具导航