文献阅读和学习汇总:Bit Fution,bit-flexible accelerator(多位宽混合精度神经网络加速器)

学习这方便知识主要是因为和我大论文的方向相关,怕今天看过之后下周就忘了,而且csdn关于这方面的资料好像不是很多,所以特地整理记录一下。

阅读文献:

(1)Bit Fusion: Bit-Level Dynamically Composable Architecture for Accelerating Deep Neural Networks(2018)

(2)Reliability Exploration of System-on-Chip With Multi-Bit-Width Accelerator for Multi-Precision Deep Neural Networks

(3)Review and Benchmarking of Precision-Scalable Multiply-Accumulate Unit Architectures for Embedded Neural-Network Processing

背景

        随着深度学习的发展,神经网络被广泛应用于各种领域,模型性能的提高同时也引入了巨大的参数量和计算量。而模型量化是一种将浮点计算转成低比特定点计算的技术,通过降低权重位宽的方式可以有效的降低模型计算强度、参数大小和内存消耗。

        目前,DNN中的运算位宽可以在不影响其分类精度的情况下适当减少,甚至可以针对每个层单独调整。原本固定位宽的硬件加速器要么提供有限的好处来适应最坏情况下的位宽要求,要么不可避免地导致最终精度下降,这就是混合精度硬件加速器出现的原因——实现不同位宽的乘加运算。

Bit Fusion文章提出结构

        本篇文章提出的BitBricks结构如下所示,Fusion单元中的每个BitBrick都可以执行单独的二进制(0,+1)和三进制(-1,0,+1)乘加运算。如图1所示,BitBrick在运行时逻辑地融合在一起,形成与DNN层的乘加运算所需的位宽匹配的融合处理引擎(融合PE)。融合单元中的BitBricks将输入的可变位宽输入乘以可变位宽权重以生成乘积。然后,融合单元将乘积与输入部分和相加,以生成输出部分和(图1(a)中的Psum正向)。图1(b)、1(c)和1(d)显示了逻辑融合BitBrick以形成(b)16个支持二进制的融合PE的三种不同方式;(c) 四个支持混合位宽的融合PE(2位用于权重,8位用于输入),(d)一个支持8位的融合PE。

        融合PE支持的操作数的位宽取决于融合在一起的BitBrick的空间排列。或者,通过改变四个融合比特块的空间排列,融合PE可以支持用于输入/权重的8比特/2比特、4比特/4比特和2比特/8比特配置。最后,多达16个BitBrick可以融合在一起,构建单个融合PE,该PE可以对8位操作数进行乘法-加法运算(图1(d))。BitBricks以2的幂融合在一起。也就是说,具有16个比特块的单个融合单元可以提供具有不同操作数比特宽度的1、2、4、8和16个融合PE。融合单元在比特级的动态可组合性使体系结构能够以与DNN操作数的比特宽度匹配的最细粒度暴露最大可能的并行度。

图1

        下图2展示了该结构完成1组8bitx8bit运算和4组4bit*4bit运算的过程。

图2

        并且,为了能够减少资源的重复访问以及充分利用DNN网络的并行行减少控制开销,BitBricks还使用了脉动阵列结构,来使得数据在不同单元中流通。IBUF-输入缓存区,OBUF-输出缓存区。如图3所示,每列在其输出缓冲区之前都包含一个池和一个激活单元。最后,收缩组织还消除了对Fusion Units内输入、输出或部分结果的本地缓冲区的需求。因此,每个融合单元仅附带一个权重缓冲器(WBUF)。

图3

多位宽混合加速器基本思想

       看过几篇相关文章,其实这部分的思想都是大同小异的。在混合位宽中动态可重构的关键见解是:具有2比特宽度的幂(4比特、8比特、16比特等)的操作数之间的乘法运算可以分解为2比特乘法的数学性质。然后,可以通过移位加法运算将分解乘法的乘积放在一起,以生成原始乘法的结果。下图展示的是使用四个2bit乘法器和四个移位寄存器实现一个4bit乘法的过程。

图4


       简而言之:低位宽加法器+移位寄存器,构成了需要的多位宽架构。

    这样,低bit的乘法器不仅可以实现低bit乘法运算,还可以组合起来以实现高bit乘法运算,如下图4所示(来自文章2),就是一个可以完成二的幂次方(2、4、8)的PE结构。而目前趋于主流的低位量化,大部分都是这个数量级的。

图5
  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值