arxiv.org·2026/10/26
为什么重要 提出 scatter-accumulate 处理单元,乘法器共享时能降能耗并缩小权值存储;对低比特推理加速器设计有参考价值。
大型神经网络越来越多地以 1-4 bit 权重和 16 或 32 bit 激活部署,但它们的点积仍然每个元素使用一个乘法器。我们证明,带 k-bit 权重码的长度 n 点积可以用 n+2k 次加法和最多 2k 次解码及 2k 次乘法完成。每个权重码被直接用作地址偏移,选择 2k 个累加器之一;每个激活被加到所选累加器中;所有累加和在最后通过融合的解码-乘法步骤仅被解码和相乘一次。解码后的权重向量完全不会生成。
该重构对整数算术是精确的,可与整数或浮点操作数以及任意(包括非线性)解码器一起使用,并能扩展到分组尺度和矩阵与张量乘积。乘法器数量下降 n/2k,总算术能量改善为一个更小的、有界因子,我们用成本模型对其进行了量化。我们描述了一种 scatter-accumulate 处理单元(SA-PE),它替代权重固定 systolic array 中的 MAC 单元,并采用 load/stream/reduce/drain 调度,其中一个小型、可分时复用的乘法器每个 tile 只运行 2k 次。由于解码后的权重不被存储,本地权重内存在 wd−bit 解码权重下最多缩小 wd/k。
一个为 FPGA 综合并与匹配的 MAC 阵列比较的 RTL 实现显示,未共享的 SA-PE 比 MAC PE 更大,而当 reduction multiplier 在多个 PE 间共享时,节省才出现。软件模型证实了精确的整数等价性,浮点误差不差于传统流水线。我们并不声称底层等式是新的,并讨论了权重共享和基于查找表的核的相关工作。
Large neural networks are increasingly deployed with 1-4 bit weights and 16- or 32-bit activations, yet their dot products still use one multiplier per element.
We show that a length-n dot product with k-bit weight codes can be computed with n+2k additions and at most 2k decodes and 2k multiplications.
Each weight code is used directly as an address offset that selects one of 2k accumulators; each activation is added into the selected accumulator; and the accumulated sums are decoded and multiplied only once, at the end, in a fused decode-and-multiply step.
The decoded weight vector is never formed.
The refactoring is exact for integer arithmetic, works with integer or floating-point operands and with arbitrary, including nonlinear, decoders, and extends to group-wise scales and to matrix and tensor products.
The multiplier count falls by n/2k, while total arithmetic energy improves by a smaller, bounded factor that we quantify with a cost model.
We describe a scatter-accumulate processing element (SA-PE) that replaces the MAC unit in a weight-stationary systolic array, with a load/stream/reduce/drain schedule in which a small, time-shareable multiplier runs only 2k times per tile.
Because decoded weights are not stored, local weight memory shrinks by up to wd/k for wd−bit decoded weights.
An RTL implementation synthesized for FPGA and compared with a matched MAC array shows that an unshared SA-PE is larger than a MAC PE, and that the saving appears when the reduction multiplier is shared across PEs.
Software models confirm exact integer equivalence and floating-point error no worse than the conventional pipeline.
We do not claim the underlying identity is new, and we discuss related work on weight sharing and lookup-based kernels.
原版排版与图表 · 手机无法内嵌时可在浏览器打开。PDF 插件内选文不能传给网页助手。