openTPU:一款由 AI 开发的开源推理加速器

AI 驱动的推理硬件设计

openTPU 是一款开源 AI 加速器,旨在证明 AI 智能体能够处理硬件设计并构建运行自身推理所需的芯片。该项目在单个代码仓库中提供了一个完整的垂直技术栈,包括硬件设计 (SystemVerilog)、指令集架构 (ISA)、位精确模拟器、带有编译器的内核语言,以及驱动物理 PCIe 卡所需的主机软件。

据项目作者称,开发过程采用了递归自我改进循环。在最初使用 AI 开发 RISC-V CPU 内核后,该技术被应用于 openTPU,使加速器在小型模型上的推理速度从每秒仅几个 token 提升到了每秒超过 80 个 token。

硬件规格与实现

openTPU 在 Inspur YPCB-00338 卡上实现,该卡配备了 Xilinx Kintex-7 xc7k480t FPGA 和两个 DDR3 通道(DDR3-1066,峰值带宽为 17.1 GB/s)。系统运行在 133.33 MHz 的时钟频率下。

架构组件

  • 定序器 (Sequencer): 每个周期向各个功能单元发出一条指令。
  • DMA: 处理数据移动。
  • 矩阵单元 (Matrix Unit): 一个四列脉动矩阵单元,用于对从 DRAM 流式传输的 int8 权重进行乘法运算。
  • 向量单元 (Vector Unit): 执行 FP32 数学运算。
  • 量化器 (Quantizer): 将结果转换回 int8。
  • LiteDRAM 控制器: 由内存核心内的内部 CPU 进行校准,使该卡能够在 12 秒内完成两个 DDR3 通道的校准,无需主机干预。

该架构专为简洁和透明而设计;没有缓存或隐藏的调度机制。每一次数据移动都是一条显式指令,允许通过随附的 "Lens" 分析器进行精确的性能分析,该分析器提供硬件利用率的屋顶线 (roofline) 和时间线视图。

性能基准测试

openTPU 支持多种现代模型,包括 Qwen3、Qwen3.5、LFM2.5、Gemma 4、SmolLM3 和 Phi-4-mini。该设计实现了物理 FPGA 卡与基于 Python 的 ISA 模拟器之间的逐位对等。

解码与预填充性能

性能因模型大小和量化级别(int8 与 4-bit)而异。

模型 权重 解码 (设备) 预填充 (设备) 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-bit 量化: 使用带有两级块缩放的 FP4 值(每个权重 4.25 位),同时保持 LM head 为 int8。这使每个 token 的字节数减少了约三分之一,并将解码速度提高了 40% 到 45%。
  • 专家卸载 (Expert Offloading): 对于超过该卡 4 GiB 容量的混合专家模型 (MoE),专家数据会从主机存储中流式传输。例如,Qwen3.5-35B-A3B 达到了 3.95 tok/s,其中 62% 的专家使用命中了本地 DRAM 插槽,通过 PCIe 以 1.41 GB/s 的速度每 token 流式传输 153 MB 数据。

软件栈与工具

该项目使用一种自定义内核语言 (ol) 和一个 JIT 编译器,将高级操作(如 ol.dot 和 ol.quantize)转换为 32 位字长的 ISA。

工具套件

  • otpu-chat:使用 ISA 模拟器或物理板与支持的模型进行对话的接口。
  • otpu-smi:用于监控温度、功耗、DRAM 带宽和单元利用率的系统管理接口。
  • otpu-lens:一个基于浏览器的分析器,记录来自 RTL、模拟器或卡的运行情况,以分析逐周期的执行过程。

社区观点

虽然该项目展示了一个功能性的 AI 设计加速器,但 Hacker News 上的社区讨论引发了关于“AI 开发的硬件”定义的争论。

"AI 现在有能力开发自己的推理硬件了。不,它没有。是一个人类提示 LLM 构建了一个用于硬件设计的软件模拟环境,使得 LLM 在人类的提示下,能够在模拟中针对约束条件优化硬件设计。" — @handle

其他贡献者指出了该项目开源性质的教育价值,它允许用户追踪从 Python 代码到 FPGA 物理线路的矩阵乘法过程。

Sources

相关

  • 项目
  • Dispatch
  • 项目
  • Dispatch
  • Dispatch