想象一下你正在尝试解决一个巨大的拼图,但你不是一次看全貌,而是必须从最重要的碎片开始,由大到小,一块接一块地构建它。这本质上就是计算机处理医学图像以寻找肿瘤时所做的工作,使用的是一种被称为 U-Net 的系统。
这篇论文介绍了一种全新的、超高效的方法来构建执行这项“拼图工作”的“引擎”,它是专门为一种叫做 FPGA(一种可以重新编程的电子“乐高积木”)的计算机芯片设计的。
以下是他们利用简单类比对这项发明的拆解:
问题:“候车室”瓶颈
传统上,当这些芯片进行数学运算(乘法和加法)时,它们使用一种叫做 MSDF(最高有效位优先)的方法。可以把这想象成一列高速列车,它只会在最重要的车站先停靠。
- 好消息: 它非常紧凑,节省空间。
- 坏消息: 列车在起点有一个很长的“候车室”。在它放下第一个乘客(即答案的第一位数字)之前,它必须在那里停留几个周期。
- 叠加问题: 在复杂的计算中,你通常需要先将数字相乘,然后再将它们相加。在旧的设计中,你会有一个用于乘法的“候车室”,然后是另一个用于加法的“候车室”。如果将这些环节串联起来,延迟就会不断堆积,导致整个过程变慢。
解决方案:“合并”流水线
作者构建了一个名为 MMA(合并乘加) 单元的新型机器。
- 类比: 想象一个工厂。在旧的方法中,你有一个“乘法站”,工人们在那里排队,完成任务后,再走到一个单独的“加法站”,并在那里排入另一条队。
- 创新点: 作者将这两个站点合并成了一个巨大的、流线型的组装生产线。现在,乘法和加法在一个连续的流程中同时发生。
- 结果: 与其在两条独立的队伍中等待,数据现在只需在一个较短的队列中等待。这消除了曾经拖慢速度的“启动延迟”。
实际应用中的运作方式
U-Net 架构(用于识别 MRI 扫描中的脑肿瘤)需要一次观察 3x3 的像素网格。
- 旧方法: 你可能会逐个处理这些像素,或者分小组进行,但过程比较笨拙。
- 新方法: 作者构建了 16 条并行组装线(称为内核处理块)。想象一下,有 16 支团队在同一时间解决拼图的不同部分。由于他们的“合并”机器非常高效,他们可以同时处理 16 个输出像素,而不会被延迟所困扰。
结果:速度 vs. 能量
该论文将他们的新型芯片与标准计算机(CPU)、强大的图形处理器(GPU)以及其他 FPGA 设计进行了对比。
- CPU: 像一位非常聪明、用途广泛的图书管理员。他很准确,但在处理重体力活时速度较慢,且消耗大量电力。
- GPU: 像一支庞大的工人军队。他们速度极快,但会消耗巨大的能量(就像一个灯火通明的体育场)。
- 新型 FPGA 设计: 像一支高度专业化、节能高效的机器人团队。
- 速度: 它虽然不像庞大的 GPU 那样快,但明显比 CPU 和其他 FPGA 设计要快。
- 能量: 这是最大的优势。新设计比 CPU 的能效高出 7 倍,比 GPU 高出 2.7 倍。
- 底线: 它每消耗 1 单位能量可以完成约 15 个单位的工作,而 CPU 只能完成 1.9 个单位。
为什么这很重要(根据论文所述)
作者强调,这非常适合 边缘应用——即那些需要依靠电池运行或在电力受限环境下工作的设备,例如便携式医疗诊断工具。通过合并数学运算并进行并行处理,他们创建了一个既足够快以满足实用需求,又足够高效以至于不会耗尽电池或导致小型设备过热的系统。
简而言之: 他们将一个原本在步骤之间存在大量“等待时间”的数学过程,合并成了一个流畅的动作,并同时运行了 16 个这样的过程。其结果是一个比我们目前使用的技术更绿色、更高效的医学成像加速器。
技术摘要:基于 FPGA 上 MSDF 逐位串行算术的高能效 CNN 加速技术
问题陈述
使用 U-Net 架构进行精确的脑肿瘤分割对于医学成像至关重要,但其计算量巨大。在标准 CPU 和 GPU 上实现 U-Net 会消耗大量的能量和资源,这为对功耗效率要求极高的嵌入式和边缘部署带来了挑战。虽然现场可编程门阵列(FPGA)提供了一个极具前景的加速平台,但现有的逐位串行算术技术,特别是最高有效位优先(MSDF)技术,面临着一个特定的瓶颈:初始延迟。
在传统的 MSDF 实现中,内积计算是通过由乘法器后接加法树组成的级联结构完成的。每个阶段(乘法器和每一层加法树)都会引入固定的启动延迟 (δ)。在级联操作中,这些延迟会不断累积,显著增加了产生第一个输出位之前的总延迟。这种开销削弱了逐位串行处理的吞吐量潜力,尤其是在内积运算占主导地位的卷积层中。
方法论
作者提出了一种创新的硬件架构,通过将乘法和加法融合为一个单一的**合并乘加(MMA)**单元,以消除级联组件带来的累积延迟。
核心架构
合并乘加 (MMA) 单元:
- 与分离的乘法器和加法器阶段不同,MMA 单元在一个统一的流水线内同时执行位乘法和累加。
- 操作: 该单元并行处理 32 个输入通道 (TN=32)。它接收 8 位量化激活值(以 MSDF 方式串行流式传输)和并行的 8 位权重。
- 逻辑: 在每个时钟周期,第 b 位激活通道与相应的 8 位权重进行“与”(AND)运算。生成的偏乘积立即使用进位传播加法树进行累加。
- 残差处理: 为了支持逐位串行计算,设计将“残差”(部分和的低位)传递到下一个周期。加法树容纳 TN+1 个输入(32 个偏乘积 + 1 个残差),需要 ⌈log2(33)⌉ 个阶段。
- 冗余数制: 设计采用了基数为 2 且数字集合为 {1,0,−1} 的符号数(SD)冗余数制。这使得算法能够在后续周期中修正结果(如果早期的输出位是暂定的),从而在不需要每一步都达到全精度的情况下,为 MSDF 算术提供必要的灵活性。作者利用负位反转编码(IEN)来简化符号处理。
系统级组织:
- 内核处理块 (KPB): 一个 3×3 卷积核通过一组 9 个 MMA 单元(对应每个空间位置)来实现。这 9 个单元的输出通过一个 MSDF 加法树进行求和,从而产生一个像素点的单个部分和。
- 并行性: 系统实例化了 16 个并行的 KPB,允许每个时钟组同时计算 16 个输出像素。
- 目标应用: 该设计针对 U-Net 架构进行了优化,特别针对具有 3×3 卷积核且通道数为 32 倍数的卷积层。
主要贡献
本文概述了四个主要贡献:
- 新型 MMA 架构: 一种融合的乘加单元,将逐位串行乘法和累加合并到单个流水线中,通过消除单独的乘法器和加法树延迟,降低了单次迭代的延迟。
- 并行空间处理: 一种使 MMA 单元能够并行处理多个空间输入的架构,显著提高了卷积操作的吞吐量。
- 高能效 FPGA 实现: 一个完整的 U-Net 卷积层加速器,实现在 FPGA 上,证明了其在资源受限的边缘应用中的适用性。
- 全面评估: 与位并行、位串行、传统 MSDF 以及 GPU 和 CPU 实现方案在延迟、吞吐量、面积和能效方面进行了对比分析。
结果
该设计在 Xilinx Zynq-7020 SoC 上使用 Verilog RTL 实现,并针对量化后的定点推理 U-Net 模型进行了评估。该加速器运行频率为 100 MHz。
- 吞吐量: 该设计实现了 52.95 GOPS。这比传统的位并行设计提升了 1.07×,比位串行设计提升了 4.36×,比当代基于 MSDF 的加速器提升了 2.52×。虽然 GPU 实现了更高的绝对吞吐量(385.99 GOPS),但其付出了显著更高的功耗代价。
- 能效: 该加速器提供了 15.14 GOPS/W 的能效。这分别是:
- GPU 的 2.7×(5.51 GOPS/W)。
- CPU 的 7.8×(1.93 GOPS/W)。
- 基于 MSDF 的 FPGA 实现的 5.0×(3.01 GOPS/W)。
- 能耗: 每批次操作消耗的能量为 186.20 mJ,比 GPU 低 3.8×,比 CPU 低 10.8×。
- 面积效率: 该设计实现了 17.43 GOPS/Slice(按 10−4 缩放),比位并行设计高出 1.65×,几乎是基于 MSDF 加速器的 6.7×。
意义与主张
论文声称,合并乘加 (MMA) 方法有效地解决了级联 MSDF 算术中固有的初始延迟瓶颈。通过融合操作,该设计实现了比传统单元组合更短的单次迭代延迟。
作者将这项工作定位为资源受限、延迟敏感型边缘应用(特别是医学成像中的脑肿瘤分割和计算机视觉)的解决方案。结果表明,虽然该加速器的运行频率低于 CPU,但其架构效率使其能效实现了数量级的提升。作者得出结论,这种方法非常适合对能量约束严苛的嵌入式系统,为高功耗的 GPU/CPU 推理提供了一个可行的替代方案。
作者也谦虚地提到,未来的工作包括加入早期终止机制以跳过不必要的计算,以及通过扩展架构中的 Tile 数量来支持更复杂的 CNN。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。