一种神经网络加速器的通用计算电路制造技术

技术编号:23363735 阅读:20 留言:0更新日期:2020-02-18 17:35
本发明专利技术公开了一种神经网路加速器的通用计算模块电路,是由m个通用计算模块PE组成,任意第i个通用计算模块PE是由RAM、2

A general computing circuit of neural network accelerator

【技术实现步骤摘要】
一种神经网络加速器的通用计算电路
本专利技术属于集成电路的现场可编程门阵列(FieldProgrammableGateArray,FPGA)设计
,具体的说是神经网络加速器的通用计算模块电路。
技术介绍
2012年,AlexNet夺得大规模视觉识别挑战的冠军,深度神经网络重新成为研究热点,其中对卷积神经网络的研究受到越来越多的关注,己被广泛应用于数字视频监控,人脸识别,图像分类等领域。卷积神经网络的学习过程会用到大量的迭代运算和数据读取,CPU因为内核数目有限,无法充分利用神经网络内部存在的并行性特点。为了提高卷积神经网络的计算速度,目前研究者已经提出了基于GPU,FPGA和ASIC的卷积神经网络硬件架构,其中基于GPU的开发已经在众多的领域广泛应用。在这些平台中,FPGA作为一种计算密集型的器件,芯片上提供了许多专用的算术计算单元、逻辑模块资源和片内的存储资源,使得卷积神经网络的各个计算单元可以在FPGA上并行执行,因此FPGA很适合作为卷积神经网络的硬件加速器。另一方面,FPGA具有灵活性和高效性的特点,芯片的功耗比GPU低得多,而芯片体积较小和成本相对ASIC芯片更低,可以非常方便地应用到各个需要随时进行在线图像或声音处理的电子产品中,比如金融预测、人工智能机器人、医疗诊断等,而且FPGA编程灵活,易于产品升级和维护,产品的设计周期和上市时间都相对较短。卷积神经网络在FPGA平台的加速研究仍然处于起步阶段,没有在各个商业领域得到广泛应用;虽然目前的FPGA平台能够实现卷积神经网络开发,但是平台也存在着局限性:1)FPGA平台在利用硬件描述语言进行卷积神经网络开发时,缺少模块化的硬件电路设计,调试繁琐,卷积神经网络的硬件开发周期长;2)由于FPGA传统的开发方式是利用硬件描述语言描述电路行为,在设计搭建神经网络时,需要考虑所搭建的神经网络的各种变量,如卷积核尺寸、特征图数量、卷积层数量、全连接层数量和网络输出类别等,对诸如卷积层、池化层、全连接层和激活函数层等基本组件的硬件设计比较死板,灵活性差,如果神经网络的一些变量改变,就需要重新利用硬件描述语言描述底层的电路行为,通用性差;
技术实现思路
本专利技术为了解决上述现有技术存在的不足之处,提出了一种神经网络加速器的通用计算电路,以期能提高计算模块PE的通用性和灵活性,从而提高神经网络加速器的性能,并降低硬件开发时间。本专利技术为达到上述目的所采用的技术方案是:本专利技术一种神经网络加速器的通用计算电路的特点是由m个通用计算模块PE组成,任意第i个通用计算模块PE是由RAM、2n个乘法器、加法器树、级联加法器、偏置加法器以及先入先出队列和ReLu激活函数模块组成;在当前周期下,2n个乘法器从所述RAM中获取所存储的权重数据,并接收外部输入的计算数据并进行处理,得到当前周期下的2n个乘积后传递给所述加法器树;所述加法器树对当前周期下的2n个乘积进行累加处理,得到当前周期下的累加和后存入所述先入先出队列中;所述先入先出队列将当前周期下的累加和读取并传给所述级联加法器;所述级联加法器接收当前周期下的累加和,并与不同配置下的级联输入进行计算,得到当前周期下的第i个级联加法器的级联输出;所述偏置加法器接收当前周期下的第i个级联加法器的级联输出,并与当前周期下外部输入的偏置数据进行计算,得到加法结果后传递给所述ReLu激活函数模块;由所述ReLu激活函数模块对所述加法结果进行处理,得到当前周期下第i个通用计算模块PE的输出结果以及不同配置下的通用计算电路的输出结果。本专利技术所述的神经网路加速器的通用计算电路,其特征也在于,所述不同配置是按如下步骤进行:步骤1、判断神经网络中卷积核的尺寸是否小于乘法器的个数2n,若是,则执行单PE卷积配置;否则,执行级联PE卷积配置;步骤2、判断神经网络中全连接层的输入特征图数量是否小于乘法器的个数2n,若是,则执行单PE全连接配置,否则执行级联PE全连接配置。所述单PE卷积配置是:将第i个通用计算模块PE中级联加法器的级联输入置为“0”;将m个通用计算模块PE的输出结果均作为通用计算电路的输出结果。所述级联PE卷积配置是:将上一个周期的第i-1个通用计算模块PE中级联加法器的级联输出作为第i个通用计算模块PE中级联加法器的级联输入;当i=1时,将第i个通用计算模块PE中级联加法器的级联输入置为“0”;将第m个通用计算模块PE的输出结果作为通用计算电路的输出结果。所述单PE全连接配置是:将上一个周期下的第i个通用计算单元中级联加法器的级联输出作为第i个通用计算模块PE中级联加法器的级联输入;将m个通用计算模块PE的输出结果均作为通用计算电路的输出结果。所述级联PE全连接配置是:将上一个周期的第i-1个通用计算模块PE中级联加法器的级联输出作为第i个通用计算模块PE中级联加法器的级联输入;当i=1时,将上一个周期的第m个通用计算模块PE中级联加法器的级联输出作为第i个通用计算模块PE中级联加法器的级联输入;将第m个通用计算模块PE的输出结果作为通用计算电路的输出结果。与现有技术相比,本专利技术的有益技术效果体现在:本专利技术充分利用了卷积神经网络卷积计算与全连接计算的一般特点,根据神经网络加速器的变量来配置通用计算电路,通过判断所搭建神经网络中的卷积核的尺寸是否小于通用计算模块PE的乘法器的个数,来决定采用单PE卷积配置还是采用级联PE卷积配置去搭建该神经网络的计算电路,通过判断所搭建神经网络中全连接层的输入特征图数量是否小于通用计算模块PE的乘法器的个数,来决定采用单PE全连接配置还是采用级联PE全连接配置去搭建该网络神经网络的计算电路,从而能适用于多种情况下的卷积计算和全连接计算,该配置方法支持所搭建的神经网络的各种组合变化变量,设计过程中当神经网络中一个变量变化时,不需要推翻计算模块重写模块,只需重新配置通用计算模块即可,从而简化了电路设计方案、缩短了神经网络的推理时间,降低了卷积神经网络系统电路的复杂度和卷积神经网络的硬件开发时间;附图说明图1为本专利技术通用计算模块PE硬件电路框图;图2为卷积神经网络图;图3为本专利技术单PE卷积配置图;图4为本专利技术级联PE卷积配置图;图5为本专利技术单PE全连接配置图;图6为本专利技术级联PE全连接配置图。具体实施方式本实施例中,如图1所示,一种神经网络加速器的通用计算电路是由m个通用计算模块PE组成,其中,任意一个通用计算模块PE是由RAM、2n个乘法器、加法器树、级联加法器、偏置加法器以及先入先出队列和ReLu激活函数模块组成;本实施例中,n=2,从而得到4个乘法器在当前周期下,4个乘法器从RAM中获取所存储的权重数据,并接收外部输入的计算数据并进行处理,得到当前周期下的4个乘积后传递给加法器树;加法器树对本文档来自技高网
...

【技术保护点】
1.一种神经网络加速器的通用计算电路,其特征是由m个通用计算模块PE组成,任意第i个通用计算模块PE是由RAM、2

【技术特征摘要】
1.一种神经网络加速器的通用计算电路,其特征是由m个通用计算模块PE组成,任意第i个通用计算模块PE是由RAM、2n个乘法器、加法器树、级联加法器、偏置加法器以及先入先出队列和ReLu激活函数模块组成;
在当前周期下,2n个乘法器从所述RAM中获取所存储的权重数据,并接收外部输入的计算数据并进行处理,得到当前周期下的2n个乘积后传递给所述加法器树;
所述加法器树对当前周期下的2n个乘积进行累加处理,得到当前周期下的累加和后存入所述先入先出队列中;
所述先入先出队列将当前周期下的累加和读取并传给所述级联加法器;
所述级联加法器接收当前周期下的累加和,并与不同配置下的级联输入进行计算,得到当前周期下的第i个级联加法器的级联输出;
所述偏置加法器接收当前周期下的第i个级联加法器的级联输出,并与当前周期下外部输入的偏置数据进行计算,得到加法结果后传递给所述ReLu激活函数模块;
由所述ReLu激活函数模块对所述加法结果进行处理,得到当前周期下第i个通用计算模块PE的输出结果以及不同配置下的通用计算电路的输出结果。


2.根据权利要求1所述的神经网路加速器的通用计算电路,其特征是,所述不同配置是按如下步骤进行:
步骤1、判断神经网络中卷积核的尺寸是否小于乘法器的个数2n,若是,则执行单PE卷积配置;否则,执行级联PE卷积配置;
步骤2、判断神经网络中全连接层的输入特征图数量是否小于乘法器的个数2n,若是,则执行单PE全连接配置,否则执行级联PE全连接配置。


...

【专利技术属性】
技术研发人员:杜高明任宇翔曹红芳张多利田超宋宇鲲李桢旻
申请(专利权)人:合肥工业大学
类型:发明
国别省市:安徽;34

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

1