POSIT是一种新兴的浮点数格式,可更加高效地在不同数值范围内分配精度。其接近0值的数据可获得更高的计算精度,而对于极大或极小的数据值可适当舍弃一些精度以换取更大的数据表示范围。这种动态精度分配的特性非常适合AI算法,在相同数据位宽下(如POSIT8相比INT8)能实现更好的算法性能。此前,研究者针对POSIT的特殊格式设计了高效的计算硬件,但这些设计未能充分利用POSIT尾数长度可变的特性。如能设计出一种针对POSIT变长尾数的特点、动态节省尾数乘法计算代价的策略,将可以一种算法精度损失较小的近似计算方法来降低POSIT乘法计算中占据主导的尾数乘法计算功耗。
近日,中国科学院微电子研究所集成电路制造技术全国重点实验室张锋研究员团队提出了一种基于动态预测POSIT结果尾数长度的SRAM存内计算宏,在较小的算法精度损失下实现吞吐率和能效的共同提升。针对POSIT的变长尾数特点,提出了一种新的数字CIM宏,其可以在执行POSIT浮点MAC计算之前确定乘法计算中尾数的哪些部分可以被舍弃。使用无符号Radix8 Booth的乘法计算逻辑电路和最终周期融合(FCF)技术,进一步减少了CIM宏的计算周期数量,并将能效提高了2.19-2.79倍。针对CIM结构无法支持计算周期灵活跳过的问题,设计了一个CIM宏级近似计算控制 (MACC) 单元来动态调整单个CIM宏的计算周期数量,实现了 1.89 倍的加速效果,而近似计算的平均绝对百分比误差 (Mean Absolute Percentage Error,MAPE) 损失仅为 3.24%。针对尾数乘法中的稀疏bit,提出了一个激活尾数对齐跳过 (AMAS) 单元,帮助于减少稀疏激活数据的输入周期数量,从而获得 1.41 倍的性能提升。
本研究以“A 28-nm 88.3-TFLOPS/W POSIT-Approximate-Calculation-Based Digital Computing-in-Memory Macro Incorporating Final-Cycle Fusion and Joint-Skipping” 为题发表在集成电路设计领域旗舰期刊IEEE Journal of Solid-State Circuits上,微电子所博士研究生吴昊为第一作者、张锋研究员与清华大学陈勇教授为通讯作者。该研究得到了科技部重点研发计划、国家自然科学基金、中国科学院战略先导专项等项目的支持。
全文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=11113258
图1(a)不同数据区间POSIT8近似计算误差, (b)不同数据区间POSIT16近似计算误差, (c)芯片性能总结表格