当前位置: 首页 > 专利查询>东南大学专利>正文

一种面向神经网络加速器的精度可配置乘累加单元制造技术

技术编号:37582432 阅读:14 留言:0更新日期:2023-05-15 07:56
本发明专利技术公开了一种设计面向神经网络加速器的精度可配置乘累加单元,先将第零计算单元、第一计算单元通过第五求和模块进行求和,然后将第二计算单元、第三计算单元通过第六求和模块进行求和,最后对以上两个求和生成的部分通过第三求和模块进行最终求和;其中精度可配置乘累加单元中所有求和模块按照输入位宽的不同进行相应的关断以适应2位、4位和8位不同位宽的卷积神经网络各个层的乘累加操作。它们在保证CNN的一定精度的情况下,不仅简化了计算单元和外部复杂的可配置逻辑,而且引入了近似计算的概念。首次在可配置的计算单元中引入了近似计算,使得该架构能够基于位级灵活性进一步降低功耗,并适应来自网络不同量化方法的参数。的参数。的参数。

【技术实现步骤摘要】
一种面向神经网络加速器的精度可配置乘累加单元


[0001]本专利技术涉及一种面向神经网络加速器的精度可配置乘累加单元技术,属于可配置计算


技术介绍

[0002]CNN(Convolutional Neural Network,卷积神经网络)在图像识别和目标识别等许多计算机视觉任务中取得了巨大的成功,但是不断增加的网络模型尺寸导致了对内存大小、带宽和计算资源的重大需求。人们提出了许多模型压缩方法,如剪枝和量化,以减少CNN的存储和计算需求。
[0003]量化的方法可以大幅减小CNN模型的大小,缓解了内存密集的问题,从而有助于降低带宽需求。然而,目前的加速器大多未能利用量化模型来解决计算密集型问题。大多数加速器以固定的高精度执行MAC(Multiply Accumulate,乘累加)操作,但是许多量化MAC操作并不需要这么高的精度。量化技术很难提高精确固定加速器的吞吐率和功率效率。不同的应用对加速器在各个方面都有不同的要求,精确固定加速器缺乏满足这些要求的灵活性。
[0004]因此,最近提出了精度可配置的CNN加速器,其激活的精度和权重可以部分或者全部缩放。然而,随着性能的提高,组成精度较低的部分需要复杂的可配置逻辑,精度的降低也需要更多的激活和权重来执行精度可配置单元的计算。激活和权值需求的增加,使得对带宽和逻辑资源的需求也增加,从而导致更高的功耗和更低的硬件利用率。

技术实现思路

[0005]技术问题:针对上述问题,本专利技术公开了一种面向神经网络加速器的精度可配置乘累加单元,它不仅简化了计算单元和外部复杂的可配置逻辑,而且引入了近似计算的概念,同时保证了CNN的一定精度。首次在可配置的计算单元中引入了近似计算,使得该架构能够基于位级灵活性进一步降低功耗,并适应来自网络不同量化方法的参数。
[0006]技术方案:本专利技术的一种面向神经网络加速器的精度可配置乘累加单元包括第零计算单元、第一计算单元、第二计算单元、第三计算单元四个计算单元和第三求和模块、第五求和模块、第六求和模块;先将第零计算单元、第一计算单元通过第五求和模块进行求和,然后将第二计算单元、第三计算单元通过第六求和模块进行求和,最后对以上两个求和生成的部分通过第三求和模块进行最终求和;其中精度可配置乘累加单元中所有求和模块按照输入位宽的不同进行相应的关断以适应2位、4位和8位不同位宽的卷积神经网络各个层的乘累加操作。
[0007]所述的第零计算单元、第一计算单元、第二计算单元、第三计算单元四个单元分别为最小计算单元,每个最小计算单元包括基于多路选择的2bit乘法单元、位拼接、移位单元、求和模块;其中,
[0008]位拼接包括第一位拼接、第二位拼接、第三位拼接、第四位拼接、第五位拼接、第六位拼接;
[0009]移位单元包括第一移位单元、第二移位单元、第三移位单元、第四移位单元、第五移位单元、第六移位单元、第七移位单元、第八移位单元、第九移位单元;
[0010]求和模块包括第一求和模块、第二求和模块、第三求和模块、第四求和模块、第五求和模块、第六求和模块、第七求和模块、第八求和模块、第九求和模块。
[0011]所述的第零计算单元中,基于多路选择的2bit乘法单元由4路乘法单元构成作为输入,其中,第一路乘法单元和第二路乘法单元的输出分别接第一位拼接的输入,第三路乘法单元和第四路乘法单元的输出分别接第二位拼接的输入,第一位拼接的输出接第一求和模块,第二位拼接的输出接第一移位单元,第一移位单元的输出接第一求和模块,第一求和模块的输出接第五求和模块进行求和。
[0012]所述的第一计算单元中,基于多路选择的2bit乘法单元由4路乘法单元构成作为输入,其中,第一路乘法单元和第二路乘法单元的输出分别接第五位拼接的输入,第三路乘法单元和第四路乘法单元的输出分别接第六位拼接的输入;第五位拼接的输出接第二求和模块;第六位拼接的输出接第三移位单元,第三移位单元的输出接第二求和模块,第二求和模块的输出接第二移位单元,第二移位单元的输出接第五求和模块进行求和。
[0013]所述的第二计算单元中,基于多路选择的2bit乘法单元由4路乘法单元构成作为输入,其中,第一路乘法单元和第二路乘法单元的输出分别接第三位拼接的输入,第三路乘法单元和第四路乘法单元的输出分别接第四位拼接的输入,第三位拼接的输出接第四求和模块,第四位拼接的输出接第四移位单元,第四移位单元的输出接第四求和模块,第四求和模块的输出接第五移位单元,第五移位单元的输出接第六求和模块进行求和。
[0014]所述的第三计算单元中,基于多路选择的2bit乘法单元由4路乘法单元构成作为输入,其中,第一路乘法单元的输出接第七求和模块,第二路乘法单元的输出接第七移位单元,第七移位单元的输出接第七求和模块,第七求和模块的输出接第九求和模块;第三路乘法单元的输出接第八求和模块,第四路乘法单元的输出接第六移位单元,第六移位单元的输出接第八求和模块,第八求和模块的输出接第八移位单元,第八移位单元的输出接第九求和模块,第九求和模块的输出接第九移位单元,第九移位单元的输出接第六求和模块进行求和。
[0015]所述的移位单元中的第一移位单元、第二移位单元、第三移位单元、第四移位单元、第六移位单元、第七移位单元、第八移位单元为二移位,第五移位单元四移位、第九移位单元为6移位。
[0016]所述的位拼接直接合并高两位和低两位生成的部分积,代替加法器,有效地避免了累加的操作;位拼接将通过2个所述的基于多路选择的2bit乘法单元的乘积拼接起来,该2个乘积在最终的乘积中互不影响,所在位互不重合,将高位的部分和直接置于高4位,低位的部分和直接置于低4位。
[0017]所述的移位单元由2比特、4比特和6比特左移位器构成,通过使用移位器替代加法器的功能,达到较少加法器数量或者减小加法器位宽的目的,最终使用更少的电路面积,达到提高电路性能的目的。
[0018]所述的求和模块将加法器按照高位、低位拆分为两块不重叠的计算模块,拆分的高位计算模块由精确加法器实现,拆分的低位计算模块是基于或门的近似加法器按位或实现;对于拆分的低位部分的求和部分结果是近似的,为了弥补近似计算造成的误差,对拆分
的低位部分的最高位使用与门作为误差补偿的作用。
[0019]有益效果:由于本专利技术采用了上述技术方案,本专利技术具有以下优点:
[0020]1.基于多路选择器的2bit乘法单元,通过多路选择器选择有符号乘法、无符号乘法还是有符号和无符号混合乘法,避免了增加额外的符号位,节省了最小乘法单元的面积。
[0021]2.基于位拼接的方法所需的乘法器、移位器和加法器的数量明显少于现有乘累加单元所需的乘法器、移位器和加法器的数量,并且随着计算乘法器的位数变大,这一优势变得越来越明显。具有更小的面积和更低的功耗。
[0022]3.由于CNN的容错性,允许在保证精度情况下使用近似加法器。在各种近似加法器中,使用逻辑或门对低位进行逻辑或操作,LOA具有更小的面积和功耗。...

【技术保护点】

【技术特征摘要】
1.一种面向神经网络加速器的精度可配置乘累加单元,其特征在于:该乘累加单元包括第零计算单元(Cell0)、第一计算单元(Cell1)、第二计算单元(Cell2)、第三计算单元(Cell3)四个计算单元和第三求和模块(4.3)、第五求和模块(4.5)、第六求和模块(4.6);先将第零计算单元(Cell0)、第一计算单元(Cell1)通过第五求和模块(4.5)进行求和,然后将第二计算单元(Cell2)、第三计算单元(Cell3)通过第六求和模块(4.6)进行求和,最后对以上两个求和生成的部分通过第三求和模块(4.3)进行最终求和;其中精度可配置乘累加单元中所有求和模块按照输入位宽的不同进行相应的关断以适应2位、4位和8位不同位宽的卷积神经网络各个层的乘累加操作。2.根据权利要求1所述的面向神经网络加速器的精度可配置乘累加单元,其特征在于:所述的第零计算单元(Cell0)、第一计算单元(Cell1)、第二计算单元(Cell2)、第三计算单元(Cell3)四个单元分别为最小计算单元,每个最小计算单元包括基于多路选择的2bit乘法单元(1)、位拼接、移位单元、求和模块;其中,位拼接包括第一位拼接(2.1)、第二位拼接(2.2)、第三位拼接(2.3)、第四位拼接(2.4)、第五位拼接(2.5)、第六位拼接(2.6);移位单元包括第一移位单元(3.1)、第二移位单元(3.2)、第三移位单元(3.3)、第四移位单元(3.4)、第五移位单元(3.5)、第六移位单元(3.6)、第七移位单元(3.7)、第八移位单元(3.8)、第九移位单元(3.9);求和模块包括第一求和模块(4.1)、第二求和模块(4.2)、第三求和模块(4.3)、第四求和模块(4.4)、第五求和模块(4.5)、第六求和模块(4.6)、第七求和模块(4.7)、第八求和模块(4.8)、第九求和模块(4.9)。3.根据权利要求2所述的面向神经网络加速器的精度可配置乘累加单元,其特征在于:所述的第零计算单元(Cell0)中,基于多路选择的2bit乘法单元(1)由4路乘法单元构成作为输入,其中,第一路乘法单元和第二路乘法单元的输出分别接第一位拼接(2.1)的输入,第三路乘法单元和第四路乘法单元的输出分别接第二位拼接(2.2)的输入,第一位拼接(2.1)的输出接第一求和模块(4.1),第二位拼接(2.2)的输出接第一移位单元(3.1),第一移位单元(3.1)的输出接第一求和模块(4.1),第一求和模块(4.1)的输出接第五求和模块(4.5)进行求和。4.根据权利要求2所述的面向神经网络加速器的精度可配置乘累加单元,其特征在于:所述的第一计算单元(Cell1)中,基于多路选择的2bit乘法单元(1)由4路乘法单元构成作为输入,其中,第一路乘法单元和第二路乘法单元的输出分别接第五位拼接(2.5)的输入,第三路乘法单元和第四路乘法单元的输出分别接第六位拼接(2.6)的输入;第五位拼接(2.5)的输出接第二求和模块(4.2);第六位拼接(2.6)的输出接第三移位单元(3.3),第三移位单元(3.3)的输出接第二求和模块(4.2),第二求和模块(4.1)的输出接第二移位单元(3.2),第二移位单元(3.2)的输出接第五求和模块(...

【专利技术属性】
技术研发人员:刘昊陈健周欣如李心贺王丽洁
申请(专利权)人:东南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1