System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于多芯粒的存内计算数模混合DNN加速器制造技术_技高网

一种基于多芯粒的存内计算数模混合DNN加速器制造技术

技术编号:41420269 阅读:8 留言:0更新日期:2024-05-28 20:21
本发明专利技术属于神经网络加速器领域,公开了一种基于多芯粒的存内计算数模混合DNN加速器,包括20个数字芯粒和16个模拟芯粒,数字芯粒和模拟芯粒集成在一个芯片上,且相邻的数字芯粒之间、相邻的模拟芯粒之间、相邻的数字芯粒和模拟芯粒之间均通过片上网络相互连接,模拟芯粒和所述数字芯粒均包括一个连接片上网络的模拟路由器,每个路由器均负责在数字芯粒和数字芯粒之间、模拟芯粒和模拟芯粒之间、数字和模拟芯粒之间以及在芯片和片外存储器之间传输数据。该加速器实现了更好的能源效率,证明了其平衡能源效率和计算精度的能力。

【技术实现步骤摘要】

本专利技术属于神经网络加速器领域,具体的说是涉及一种基于多芯粒的存内计算数模混合dnn加速器。


技术介绍

1、目前,深度神经网络(dnn)通过不断扩大其模型尺寸来实现更高的推理精度。dnn模型越来越复杂,因此需要更强大的硬件支撑其不断增长的运算量。规模更大的dnn加速器可以提供更高的计算吞吐量的,但同时这种加速器能耗更高,而且由于较低良率,制造成本明显更高。单片芯片设计的这些局限性阻碍了dnn模型在成本和能耗敏感的边缘设备上的部署。

2、基于芯粒(chiplet)的设计将多个小芯片集成到同一个集成芯片(package)中。利用先进的封装技术,这些芯粒可以进行通信和协作,从而实现与大型单片加速器相当的高性能。与大型单片芯片相比,小的芯粒具有更高的良率,制造成本也要低得多。因此,芯片设计可以实现对成本更敏感的边缘部署。

3、目前,纯数字dnn加速器的设计正在触及他们的内存墙。边缘设备通常有严格的能源预算,而数字芯片上的数据移动和计算都会消耗相当多的能源。作为一种非冯-诺伊曼体系结构,存内运算在内存中执行计算任务。由于存内运算的计算部件是模拟电路,因此与数字芯片相比,其计算速度和能源效率都大大提高了。

4、芯粒技术和异构存内计算-数字芯片的结合为设计节能的dnn加速器提供了新的机会。但同时,基于芯粒的设计和存内运算架构也有它们自己的局限性,带来了额外的挑战。首先,基于芯粒的系统中的dnn工作负载映射具有挑战性,因为必须考虑芯片间通信的复杂性和开销;其次,提高全系统的资源利用率具有挑战性,因为数字和模拟芯粒具有不同的计算吞吐量和独立运行;第三,保证较高的推理精度具有挑战性,因为存内运算架构通常是以固定和低精度实现的。


技术实现思路

1、为了解决上述技术问题,本专利技术提出了一种基于多芯粒的存内计算数模混合dnn加速器,该加速器实现了更好的能源效率,证明了其平衡能源效率和计算精度的能力。

2、为了达到上述目的,本专利技术是通过以下技术方案实现的:

3、本专利技术是一种基于多芯粒的存内计算数模混合dnn加速器,存内计算数模混合dnn加速器包括20个数字芯粒和16个模拟芯粒,所述20个数字芯粒和16个模拟芯粒集成在一个芯片上,且相邻的数字芯粒之间、相邻的模拟芯粒之间、相邻的数字芯粒和模拟芯粒之间均通过片上网络相互连接,模拟芯粒和所述数字芯粒均包括一个连接片上网络的模拟路由器,每个所述路由器均负责在数字芯粒和数字芯粒之间、模拟芯粒和模拟芯粒之间、数字和模拟芯粒之间以及在芯片和片外存储器之间传输数据。

4、本专利技术的进一步改进在于:所述数字芯粒由一个pe阵列、一个累加、激活和池化单元、一个通用的片内存储(sram)、一个权重fifo和一个连接片上网络的路由器组成,所述pe阵列包含256个pe,排列在16行和16列中,每个pe都有4个4×4位的乘法器,以4×4位、4×8位和8×8位的精度执行乘加(mac)操作;所述片内存储(sram)被分成64个组,64个组灵活划分,分别存储输入、权重或输出,每个组的大小为16kb;累加、激活和池化单元中的累加器将前面pe阵列的计算出来的部分和进行累加计算,获得的最终结果存储到所述片内存储(sram)中,应用于pe数组的输出;数字芯粒中的权重fifo用于装载和覆盖存储在交叉阵列中的权重;所述路由器负责在芯粒之间以及在芯片和片外存储器之间传输数据。

5、本专利技术的进一步改进在于:每个所述模拟芯粒由一个基于reram的交叉阵列、dac/adc、一个simd单元,一个通用的片内存储(sram)、一个权重fifo和一个路由器组成,所述交叉阵列的交叉条有1152行和512列,其中每个单元格存储一个2位的权重;模拟芯粒中的权重fifo用于装载和覆盖存储在交叉阵列中的权重;simd单元是对模数转换(dac)之后的信号进行处理;所述交叉阵列接收来自通用片内存储(sram)的7位输入,并生成6位输出,由于执行存内运算的交叉阵列是一个模拟设备,所以需要dac转换输入的数字信号为模拟信号和adc转换输出的模拟信号回到数字信号,然后,simd单元将累加输出值,对输出数据应用激活、量化或池化操作,并将结果存储回通用的片内存储(sram)中。

6、本专利技术的进一步改进在于:所述片上网络采用了不规则的网格拓扑结构,其中20个数字芯粒被组织成5乘4的网格,16个模拟芯粒被组织成4乘4的网格。由于数字和模拟芯粒之间有频繁的数据传输,所以使用不规则拓扑提供了更多连接,旨在最大化芯片上两组芯粒间的带宽。

7、本专利技术还提供了一种基于多芯粒的存内计算数模混合dnn加速器对dnn模型进行加速,具体加速方法包括如下步骤:

8、步骤1、对dnn模型进行预处理,所述dnn模型包括卷积层、池化层和全连接层,将需要计算的dnn模型的每一层视为一个独立任务负载,计算每一层的计算精度降低后的预测准确率,根据计算得到的每一层的计算精度降低后的预测准确率判断每一层的敏感性,并计算dnn模型中每一层需要进行高精度计算的关键过滤器;

9、步骤2、根据dnn模型中每一层对存储的需求和敏感性,计算dnn模型中每一层需要的最少的数字芯粒和模拟芯粒或者是数字芯粒或模拟芯粒;

10、步骤3、根据步骤2中的计算结果和加速器的数字和模拟芯粒数量,数字芯粒和模拟芯粒的计算能力和存储容量确定解空间,遍历解空间,得出最优映射;

11、步骤4、根据步骤3的映射结果使用流水线策略在加速器进行计算。

12、本专利技术的进一步改进在于:步骤1中,计算dnn模型中每一层需要进行高精度计算的关键过滤器方法为:首先计算dnn模型中每一层中所有过滤器的平均值,然后根据过滤器的方差对过滤器进行排序,该层过滤器中,方差最大的n%的过滤器即为需要进行高精度计算的关键滤波器,其中n取值为6.25。

13、本专利技术的进一步改进在于:所述步骤1具体为:

14、步骤1.1、将dnn模型视为l,对整个dnn模型进行遍历,layeri为当前dnn模型中的第i层;

15、步骤1.2、将layeri的权重和输入量化为模拟芯粒的计算精度再进行计算得出该层量化后的模型每一层的预测准确率,用来判断该层对计算精度的敏感性。

16、在所述步骤1.2中,将任务映射到数字芯粒还是模拟芯粒取决于独立任务负载对计算精度的敏感性,敏感性的判断具体为:引入阈值senslow和阈值senshigh来对dnn模型中的每一层进行分类,将每一层运算划分为计算精度的高敏感性、中敏感性、低敏感性:

17、如果量化当前层后的模型的预测准确率与原来相比:

18、(a)降低大于senshigh则认为该层对计算精度的高敏感性,使用数字芯粒计算来保证最终准确性;

19、(b)小于senslow则认为该层对于计算精度的低敏感性,使用模拟芯粒计算来提高能效和性能;

20、(c)在阈值senslow和阈值senshigh之间则认为该层本文档来自技高网...

【技术保护点】

1.一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:所述存内计算数模混合DNN加速器包括20个数字芯粒和16个模拟芯粒,所述20个数字芯粒和16个模拟芯粒集成在一个芯片上,且相邻的数字芯粒之间、相邻的模拟芯粒之间、相邻的数字芯粒和模拟芯粒之间均通过片上网络相互连接,所述模拟芯粒和所述数字芯粒均包括一个连接片上网络的模拟路由器,每个所述路由器均负责在数字芯粒和数字芯粒之间、模拟芯粒和模拟芯粒之间、数字和模拟芯粒之间以及在芯片和片外存储器之间传输数据。

2.根据权利要求1所述的一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:基于多芯粒的存内计算数模混合DNN加速器对DNN模型进行加速,具体加速方法包括如下步骤:

3.根据权利要求2所述的一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:所述步骤1具体为:

4.根据权利要求3所述的一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:所述步骤1.2中,将任务映射到数字芯粒还是模拟芯粒取决于独立任务负载对计算精度的敏感性,敏感性的判断具体为:引入阈值Senslow和阈值Senshigh来对DNN模型中的每一层进行分类,将每一层运算划分为计算精度的高敏感性、中敏感性、低敏感性:

5.根据权利要求4所述的一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:所述混合精度模式为数字芯粒和模拟芯粒以混合精度的方式合作计算一个独立任务负载,其中,关键滤波器对数字芯粒进行多播,数字芯粒只负责计算与关键滤波器相对应的输出,所述模拟芯粒接收当前任务负载的所有权重和指示关键滤波器的掩码,负责计算非关键滤波器对应的输出,同时负责使用掩码将两类芯粒的输出进行合并。

6.根据权利要求2所述的一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:步骤1中,计算DNN模型中每一层需要进行高精度计算的关键过滤器方法为:首先计算DNN模型中每一层中所有过滤器的平均值,然后根据过滤器的方差对过滤器进行排序,该层过滤器中,方差最大的N%的过滤器即为需要进行高精度计算的关键滤波器,其中N取值为6.25。

7.根据权利要求2所述的一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:所述步骤2具体为:

8.根据权利要求7所述的一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:所述步骤3具体包括如下步骤:

9.根据权利要求2所述的一种基于多芯粒的存内计算数模混合DNN加速器,其特征在于:步骤4中的流水线策略为首先使用映射算法确定DNN模型中每一层所需的数字芯粒的数量和模拟芯粒的数量,然后根据DNN加速器提供的片内存储将整个DNN模型划分为多个阶段,而后将数字芯粒和模拟芯粒划分为若干簇,每个芯粒簇对应一个工作负载,最后将属于同一阶段的工作负载映射到对应的芯粒簇上进行计算。

...

【技术特征摘要】

1.一种基于多芯粒的存内计算数模混合dnn加速器,其特征在于:所述存内计算数模混合dnn加速器包括20个数字芯粒和16个模拟芯粒,所述20个数字芯粒和16个模拟芯粒集成在一个芯片上,且相邻的数字芯粒之间、相邻的模拟芯粒之间、相邻的数字芯粒和模拟芯粒之间均通过片上网络相互连接,所述模拟芯粒和所述数字芯粒均包括一个连接片上网络的模拟路由器,每个所述路由器均负责在数字芯粒和数字芯粒之间、模拟芯粒和模拟芯粒之间、数字和模拟芯粒之间以及在芯片和片外存储器之间传输数据。

2.根据权利要求1所述的一种基于多芯粒的存内计算数模混合dnn加速器,其特征在于:基于多芯粒的存内计算数模混合dnn加速器对dnn模型进行加速,具体加速方法包括如下步骤:

3.根据权利要求2所述的一种基于多芯粒的存内计算数模混合dnn加速器,其特征在于:所述步骤1具体为:

4.根据权利要求3所述的一种基于多芯粒的存内计算数模混合dnn加速器,其特征在于:所述步骤1.2中,将任务映射到数字芯粒还是模拟芯粒取决于独立任务负载对计算精度的敏感性,敏感性的判断具体为:引入阈值senslow和阈值senshigh来对dnn模型中的每一层进行分类,将每一层运算划分为计算精度的高敏感性、中敏感性、低敏感性:

5.根据权利要求4所述的一种基于多芯粒的存内计算数模混合dnn加速器,其特征在于:所述混合精度模式为数字芯粒和模拟芯...

【专利技术属性】
技术研发人员:陈小柏李朋阳尹捷明肖甫
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

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

1