AI工作负载涉及多种数值格式的矩阵乘法运算,例如INT8、FP4、FP8、FP16和BF16。精度越低,加速水平越高。虽然内存带宽的节省可以立即实现,但在较低位宽下,提升算术运算性能仍然是一个挑战。
Imagination提出了一种新颖的方法,可在不同数值格式之间扩展算术性能。新款E系列GPU中采用的多精度点积单元,能够加速上述所有数值格式的矩阵乘法运算。与为每种数值格式使用独立流水线的传统设计方法相比,该单元在保持精度的同时,节省了三分之一的电路面积。
那么它是如何工作的呢?
实现矩阵乘法所需的基本运算是一个累加点积,形式为 a0b0 + … + a15b15 + c = d,其中a、b向量为低精度格式,c、d为较高精度格式,如FP16或FP32。运算项数因架构而异,通常采用更多项数来实现更高的性能密度。该运算是融合操作,因此会跳过一些中间归一化和舍入步骤。通过针对特定数值格式组合和运算深度对算术逻辑进行专门优化,可以实现更高的效率和精度。
数值格式的激增是浮点运算领域的现代趋势之一,也给上述方法带来了挑战。这将导致矩阵乘法加速器需要不断增加点积硬件运算器的种类,从而使电路面积超出可用硅片尺寸的限制。
可以采用格式转换的方式,让相同位宽的数值(如FP16和BF16)共用同一数据通路。然而,这种方法无法在较低位宽下实现性能的扩展。
以不同速率支持多种精度的需求并非新问题。此前,这一需求通过SIMD向量单元的实现来解决。在此场景下,典型的运算是融合乘加运算,一条256位宽的数据通路可以并行计算四个FP64、八个FP32或十六个FP16运算。向量单元的微架构具有高度的逻辑复用性。
然而,向量单元并不太适合混合精度的机器学习应用,因为这类应用需要使用更宽的累加格式来提高运算精度。同时,向量单元也无法达到针对单一格式组合的融合点积所能实现的性能密度。
我们在现有技术的基础上,针对矩阵乘法和低精度数值格式进行了改进。最终成果是一个具备向量化数据通路的多精度融合点积单元。其工作原理是,将INT8点积中现有的乘法与求和硬件重新利用,以实现高效的FP8点积。为此,需要增加额外的硬件来处理指数和对部分积进行对齐——这是浮点运算特有的问题。指数处理、对齐、乘法及求和硬件会进一步被复用,以实现高精度的FP16和BF16点积运算。

输入的FP8、BF16和FP16数值被转换为一组内部归一化数值格式。这些新格式简化了算术实现,并确保在存在次正常输入时精度保持不变。FP8数值的乘积按16位精度对齐,并视为INT8乘积进行处理,而FP16或BF16的乘积则按32位对齐。乘积被拆分为两半,并使用共享的加法器结构进行求和。点积随后以FP32、FP16或INT32精度进行累加。
最终实现的平均精度优于标准方法,且其最坏情况下的舍入误差是有界的。实际精度通过仿真测量,与在工作FP32或FP16累加精度下实现浮点求和的参考模型相比,表现更优。理论精度可通过后向误差分析进行验证,该分析确认算术中的舍入误差相对于预期的量化误差而言很小。
向量化技术使我们相比于为每种数值格式使用独立流水线进行加速的传统设计,节省了将近三分之一的电路面积。该实现已经过端到端的正式验证。验证策略的一个关键要素是拥有清晰、无歧义的数值规范。这为我们提供了一个平台,使我们能够持续优化设计,广泛利用向量化技术来最大化逻辑复用。
这项成果已在国际计算机算术研讨会(ARITH 2026)上展示,会上AI硬件的数值分析和FP8等数值格式的标准化是热门话题。本研究为数值方面的讨论做出了贡献,我们希望这能有助于推动研究模型与硬件实现向新的行业标准加速融合。欲了解更多详情,请阅读会议论文集全文,或联系我们的销售团队,探讨我们在边缘AI领域的最新创新。

英文链接:https://blog.imaginationtech.com/how-to-scale-ai-arithmetic-efficiently
声明:本文为原创文章,转载需注明作者、出处及原文链接。





