本页目录
前沿 III · 专用加速器
层次:硕博 + 业界主战场 | 🔗 与 cs 站 GPU/MLSys 线、AI 站直接对接。 第四页给出了因果链:功耗墙 → 暗硅 → 专用化。本页把"专用化"这件事拆开算:一个专用电路凭什么比通用处理器快一到两个数量级?收益具体来自哪里?以及它的代价是什么?
学习层:加速器的第一问不是峰值算力,而是工作负载受哪一面屋顶限制
具体谜题:100 GOPS 的芯片为什么只跑出 50 GOPS?
某加速器峰值算力为 100 GOPS,外部带宽为 100 GB/s。一个算子每字节只做 0.5 次运算。你预计实际性能是 100 GOPS,还是由带宽限制的 50 GOPS?如果通过权重驻留把搬运量减半,计算强度从 0.5 提到 1.0 op/byte,系统是否立刻超过 100 GOPS?再把 90% 的任务加速 20 倍,端到端是否能达到 20 倍?
先做预测
先标记算子所在区域:① Roofline 给出的上限是 min(Ppeak, B I),不是峰值算力本身;② 低计算强度算子先受带宽限制,提高乘法器数量没有帮助;③ 数据流改变的是复用率与字节数,因而改变计算强度,而不一定增加峰值算力;④ Amdahl 的未加速部分会给整体加速比设上限。
最小 mental model:算力屋顶、带宽斜坡和数据流
把每个工作负载压成两个量:单位时间可完成的峰值运算 Ppeak,以及从存储层搬运数据的带宽 B。算子计算强度 I=ops/byte 越高,越能复用已读入的数据;权重驻留、输出驻留和行驻留只是把不同数据留在更近的存储层。真正的加速器是数据流、存储层级、数制和软件映射的共同设计。
形式机制与不变量
Roofline 的转折点为 Iridge=Ppeak/B。当 I < Iridge 时,性能上限沿带宽斜坡增长;当 I >= Iridge 时,峰值算力成为屋顶。实验把 Ppeak 与 B I 的结果都写成 GOPS;例如 100 GB/s * 0.5 op/byte = 50 Gop/s = 50 GOPS,不能把它误写成 50 TOPS。Amdahl 式中的 f 是可加速工作比例,s 是该部分加速倍数;它是端到端不变量,不会因为芯片宣传的 TOPS 增加而消失。
实验会让不同数据流改变有效字节数,并把相同算子放在同一张 Roofline 图上。这样能区分“硬件峰值提高”和“工作负载实际跨过转折点”两种完全不同的改进。
反例与失效边界
- Roofline 是上界模型,不包含 bank conflict、同步、稀疏索引、控制流、片间通信、编译器未映射算子和低利用率。
- 低位宽通常降低存储与乘法成本,却可能引入量化误差、重排开销和额外校准;位宽并非越低越好。
- 专用 ASIC 若算法或模型形状变化,固定数据流可能失效;FPGA/GPU 的灵活性是有价值的保险,而不是纯粹浪费。
- 峰值 GOPS/TOPS 与实际吞吐、能效和任务质量不等价;必须写清 batch、精度、利用率、运算单位和端到端分母。
交互实验:拖动算子,找出真正的瓶颈
无 JavaScript 时的静态读法:本实验以 GOPS 记峰值和可达性能:峰值 100 GOPS、带宽 100 GB/s 时,ridge point 为 1 op/byte。计算强度 0.5 的算子上限是 min(100,100*0.5)=50 GOPS;计算强度 2 的算子上限是 100 GOPS。若权重驻留把 bytes 从 200 GB 降到 100 GB、ops 仍为 100 G operations,强度由 0.5 变为 1.0,带宽上限从 50 提高到 100 GOPS。最后用 Amdahl:f=0.9,s=20 时整体加速只有 1/(0.1+0.9/20)=6.9x。
| 数据流 | ops | bytes | 计算强度 | 性能上限 |
|---|---|---|---|---|
| 普通缓存 | 100 G | 200 G | 0.5 | 50 GOPS |
| 权重驻留 | 100 G | 100 G | 1.0 | 100 GOPS |
| 输出驻留 | 100 G | 125 G | 0.8 | 80 GOPS |
一、通用处理器的开销在哪
执行一条加法指令,CPU 实际做了多少事?
取指、译码、寄存器重命名、乱序调度、分支预测、访存地址计算、缓存查找、写回、提交……真正的加法只占其中很小一部分能量。研究普遍表明,通用处理器执行一次运算的能量中,绝大部分花在"指令的管理"而非"数据的计算"上。
这些开销是通用性的代价:CPU 不知道下一条指令是什么,必须准备好应对任何情况。专用加速器知道自己要算什么,于是可以把这些开销几乎全部省掉。
二、专用化的收益来源
拆成四项,每一项都可以独立评估:
① 消除指令开销。 固定功能单元不需要取指译码,控制逻辑是硬连线的。
② 定制数据通路与并行度。 直接摆放大量乘加单元,按算法的数据流连接。脉动阵列(systolic array)是经典结构:数据像脉搏一样在阵列中流动,每个数据被取出一次后在阵列内被复用多次——这直接攻击了第十页的核心问题(搬运比计算贵)。
③ 定制数制。 通用处理器要支持 FP64/FP32;而神经网络推理在 INT8、FP8 甚至更低精度下往往够用。能量大致随位宽的平方级下降(乘法器面积与能耗),这是深度学习加速器最大的单项收益。训练则需要更宽的动态范围,于是有 BF16、FP8 等格式的设计权衡(🔗 AI 站)。
④ 定制存储层次。 用软件可控的便签存储器(scratchpad)替代硬件管理的缓存,数据搬运在编译期就被规划好,避免了缓存的猜测与冲突开销。
综合起来,同一算法在专用电路上的能效可比通用 CPU 高一到两个数量级——这些收益是可以逐项估算的,不是玄学。
三、谱系:从通用到专用
| 类型 | 灵活性 | 能效 | 典型场景 |
|---|---|---|---|
| CPU | 最高 | 最低 | 控制流复杂的通用任务 |
| GPU | 高(可编程 SIMT) | 中 | 数据并行、训练 |
| FPGA | 中(可重构) | 中高 | 小批量、需要快速迭代、原型 |
| DSA/ASIC | 低(固定功能) | 最高 | 大规模部署的稳定负载 |
这是一条清晰的权衡曲线:灵活性与能效互为代价。
选择的经济学:ASIC 的 NRE(一次性工程费用)在先进节点极高(设计 + 掩模,第十一页)。只有出货量足够大、且算法足够稳定时才划算。这解释了几个产业现象:
- 算法变动快的领域用 GPU/FPGA;
- 超大规模数据中心自研 ASIC 划算(量足够大);
- FPGA 的位置:介于两者之间,适合中等批量与需要现场更新的场合。
一个关键风险:算法演进可能让 ASIC 变废铁。为特定网络结构做的极致优化,可能因模型架构变化而失效——所以现代 AI 加速器的设计要在"专用"与"留有余地"之间取平衡,通常保留可编程的向量单元来处理未预见的算子。
四、设计的中心问题:数据流
加速器设计的核心不是"堆多少个乘法器",而是如何组织数据移动(承第十页)。
对一个卷积或矩阵乘,同一个数据可以在不同层级被复用。按"什么保持不动"分类:
- 权重驻留(weight stationary):权重固定在计算单元中,输入流过——适合权重复用率高的场景;
- 输出驻留(output stationary):部分和固定,输入与权重流过——减少部分和的读写;
- 行驻留(row stationary)等混合策略。
没有普适最优——最优数据流取决于层的形状(批大小、通道数、卷积核大小)与存储层次结构。所以加速器设计与编译器/映射器必须协同设计,这也是 MLSys 这个领域存在的原因(🔗 cs 站 mlsys 线)。
Roofline 模型是分析工具:把性能上限画成计算强度(每字节数据完成多少次运算)的函数——低计算强度的算子受带宽限制,高计算强度的受算力限制。优化的第一步永远是判断自己在屋顶线的哪一侧(🔗 cs 站 perf 线有完整推导)。
五、超越数字:几条更激进的路线【前沿/未定】
- 模拟计算与存内计算(第十六页):能效潜力大,精度与外围开销是障碍;
- 光计算:用光学元件做矩阵乘(干涉、衍射)。光的传播本身不耗能,但电光/光电转换、以及权重可编程性是瓶颈(第十八页);
- 神经形态计算:脉冲神经网络 + 事件驱动。在稀疏、事件式传感场景(如动态视觉传感器)有真实优势,但通用任务上的精度与工具链仍是短板【争】;
- 随机/近似计算:以精度换能效,用于容错应用。
共同的模式(值得记住):这些路线在特定窄场景中确有优势,但要取代主流数字加速器,必须同时打败它的能效、精度、工具链生态与制造成熟度——最后一项往往才是致命的。这与第五页新器件、第十六页存内计算的处境完全一致。
六、系统视角:加速器不是孤岛
一个常被忽略的现实:加速器的实际收益往往被系统因素吃掉。
- Amdahl 定律:加速了 90% 的工作量,整体加速比也不会超过 10 倍——未被加速的部分成为新瓶颈;
- 数据搬运与主机通信:从主机内存到加速器的传输可能主导端到端时间;
- 软件栈:编译器、算子库、框架支持。"性能达标但没人会用"是加速器项目最常见的死法——生态往往比硅片本身更难建立;
- 利用率:峰值算力(TOPS)与实际达成的算力常有巨大差距。"TOPS 数字"与第九页的"标称位数"、第四页的"节点名称"是同一类营销指标,看到就要追问实际利用率。
七、要点
- 专用化的收益可以逐项拆解:省指令开销、定制数据通路、降低数制位宽、定制存储层次;
- 灵活性与能效是一条权衡曲线,选择位置由出货量与算法稳定性决定;
- 设计的核心是数据流而非算力堆叠,Roofline 是判断瓶颈的第一工具;
- 激进路线(光、模拟、神经形态)常在窄场景有效,难在生态与制造成熟度;
- 端到端收益受 Amdahl、数据搬运与软件栈约束——峰值指标要打折看。
下一页:既然电互连的功耗越来越难以承受,能不能用光来传数据?硅光与射频——把光子和电磁波带进芯片。