250 美元 AMD FPGA 上跑片上 LLM,实测近 6 万 tok/s
作者受 Taalas 启发,把 3.16M 参数的微型 LLM 完整烧进 KV260 FPGA 的片上存储,跳过 DDR…
一位开发者在 AMD KV260 开发板(售价约 250 美元)上演示了一套片上 LLM 推理方案:把一个仅 3.16M 参数的微型语言模型完整烧进 FPGA 的片上存储,跳过 DDR,实测在硬件电路上达到 59,965 tokens/秒。同一模型在该板载 Arm 核上只有 11 tok/s,作为参照,作者笔记本上的 RTX 3050 Ti 可达 719 tok/s。
性能数字与对比
- 片上 fabric(FPGA 可编程逻辑):59,965 tok/s,bit-exact 实测
- 板载 Arm Cortex-A53 四核:约 11 tok/s
- 笔记本 RTX 3050 Ti:约 719 tok/s
KV260 搭载的是 Zynq UltraScale+ 系列 SoC,片上可用存储约 3 MB,包括 ~18 Mb 的 UltraRAM(双端口 SRAM,用于存放 INT4 权重)和 ~5 Mb 的 Block RAM(用于激活、KV cache 等)。受片上存储限制,能容纳的最大模型只有 3.16M 参数、INT4 量化后约 1.5 MB。
核心思路:越过内存墙
作者点出了一个对 LLM 推理至关重要的事实:生成单个 token 是 memory-bound 而非 compute-bound——每生成一个 token 都需把整份权重读一遍,算力便宜,访存才是成本。
KV260 上 Arm 核与 fabric 共享同一个 DDR 控制器,带宽约 20 GB/s;模型若放在片外 DDR,fabric 和 CPU 共用一条「吸管」,定制电路的优势就被抵消。唯一的出路是让模型小到能完全装进片上存储,而片上 SRAM 的等效带宽可达数百 GB/s 甚至 TB/s 级别。
这一观察与 Taalas、Groq、Cerebras 等厂商的做法一致:它们花费数亿美元扩大片上存储预算,而 KV260 只给到约 3 MB。
模型与「分脑」架构
训练数据来自 TinyStories——一个约 210 万篇简单儿童故事组成的合成语料,让极小模型也能学到连贯英语。模型规模在 A- 级(3.16M 参数)。作者还尝试过用 Kevin 风格(「why use many word when few do trick」)做词形归一化,但只能提速约 30% 而无法减小模型体积,最终在硬件层面以约 25 秒的重新配置时间在两个模型间切换轮流服务。
关键技巧是 UltraRAM 的「真双端口」特性,使 fabric 可以拆成两个 cohort 并行工作——这就是作者所说的 split-brain 设计。
局限与定位
- 模型仅能补全「Once upon a time」式的故事,并非通用助手,不理解问答
- 片上存储上限约 3 MB,无法容纳 Llama 3.1 8B 这类主流模型(Taalas 才能做到)
- 本质上是硬件工程演示,而非新模型或新算法
作者在原帖中提供了指向 chatjimmy.ai 的 Cloudflare tunnel 实时 demo,状态灯为绿时表示正在与位于威尔士的一块 FPGA 通信。这套工作展示了在消费级 FPGA 上验证「片上权重」思路的可行性,对关注推理硬件与内存墙议题的从业者有一定参考价值。
