【论文阅读】FIGNA: Integer Unit-based Accelerator Design for FP-INT GEMM Preserving Numerical Accuracy

作者及发刊详情

J. Jang, Y. Kim, J. Lee and J. -J. Kim, “FIGNA: Integer Unit-Based Accelerator Design for FP-INT GEMM Preserving Numerical Accuracy,” 2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA), Edinburgh, United Kingdom, 2024, pp. 760-773, doi: 10.1109/HPCA57654.2024.00064.

keywords: {Training;Quantization (signal);Computational modeling;Neural networks;Computer architecture;Hardware;Energy efficiency;FP-INT GEMM;Numerical Accuracy;Weight Only Quantization;NPU},

Motivation

权重参数精度的降低可以减少访存占用,但因为FP-INT乘累加的存在,INT数据需要反量化为FP数据,计算性能并没有显著提高

Related work

BFP

BFP一个数据块的数据共享一个指数。例如一个数据块有6个数据,则开7个空间,前六个放数据,后一个放指数;指数用的是此数据块中最大值归一化后的指数,其余5个数按此指数存放二进制数;
在这里插入图片描述

Contribution

主要贡献:

1)算法:提出了基于整数的FP-INT GEMM计算模式,伴随这软件透明优化,包括prealigned的尾数截断和基于chunk的尾数分配

2)创新:通过理论分析,仔细设计了量化截断量,并引入了无0的INT格式,以确保该方法保持了传统FP算法的数值精度

3)硬件:介绍了一种新的FIGNA体系结构,专门用于处理基于整数的FP-INT GEMM。FIGNA利用了简单整数单元计算实现了实质性的性能增强。

硬件架构

整体架构

如fig11所示时FIGNA的整体架构。首先prealigner将FP激活转换成整型数据,然后chunk分配器在prealigned后的整型数据中选择有效的chunk;数据启动器确保输入数据正确填充到矩阵计算单元(mxu,2D的脉动阵列架构)中,2D权重矩阵存储在mxu中每个PE的寄存器中,激活向量与每一列PE进行乘累加求内积计算,直到最后一个PE输出;在mxu的最后有int2fp模块将整形计算结果转换为FP类型。

当输入向量维度超过mxu的行数时,输入向量将被分成几个子向量填充到mxu中,最后又accumulator进行几个内积结果的累加。

actsum和reformer模块用于支持补码INT格式数据和无0有符号INT格式数据间的转换。

片上buffer可分为三种类型:unified buffer负责缓冲输入和输出数据;weight buffer专门用于存储权重值,而accum buffer用于存储计算过程中生成的部分和。
在这里插入图片描述

如下Fig7所示时prealigner和int2fp模块的微架构:
在这里插入图片描述

prealigner:对齐尾数尺度,并转换为特定位宽的INT数据

prealigner将FP转换INT类型。该部件分解每个FP数的指数和尾数,并处理预对齐过程,动态地对齐FP激活的尾数,最终所有整数值共享一个共同的最大指数,以此可以表示FP激活。
步骤:

  • 当prealigner分解FP数时,它通过将浮点数隐藏的首1与小数拼接来获取尾数。
  • 该部件通过检测指数值是0来判断FP数是否低于正常值,如果低于正常值,则没有首1,小数直接作为尾数。通过sub模块实现
  • 然后prealigner识别FP激活矩阵内单个向量中的最大指数,并基于元素本身指数和最大指数调整FP激活的尾数,确保所有尾数都保持统一尺度。该过程通过shift模块偏移尾数,实现尺度对齐
  • 通过2’s模块用于求补码
  • 将最大指数作为向量的共享指数,并输出给int2fp模块。与BFP不同的是,BFP中共享指数是数值格式中组成部分,而本设计中共享指数是动态调整的,是计算的中间结果,对用户不可见。

chunk分配器

根据数学证明,当激活数据是FP32时,尾数需要24bit,prealigned的尾数需要34bit( p f p 32 + n + 2 p_{fp32}+n+2 pfp32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KGback

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值