CN110807522A - 一种神经网络加速器的通用计算电路 - Google Patents

一种神经网络加速器的通用计算电路 Download PDF

Info

Publication number
CN110807522A
CN110807522A CN201911055499.5A CN201911055499A CN110807522A CN 110807522 A CN110807522 A CN 110807522A CN 201911055499 A CN201911055499 A CN 201911055499A CN 110807522 A CN110807522 A CN 110807522A
Authority
CN
China
Prior art keywords
cascade
adder
general
output
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911055499.5A
Other languages
English (en)
Other versions
CN110807522B (zh
Inventor
杜高明
任宇翔
曹红芳
张多利
田超
宋宇鲲
李桢旻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei University of Technology
Original Assignee
Hefei University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hefei University of Technology filed Critical Hefei University of Technology
Priority to CN201911055499.5A priority Critical patent/CN110807522B/zh
Publication of CN110807522A publication Critical patent/CN110807522A/zh
Application granted granted Critical
Publication of CN110807522B publication Critical patent/CN110807522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种神经网路加速器的通用计算模块电路,是由m个通用计算模块PE组成,任意第i个通用计算模块PE是由RAM、2n个乘法器、加法器树、级联加法器、偏置加法器以及先入先出队列和ReLu激活函数模块组成,并利用单PE卷积配置、级联PE卷积配置、单PE全连接配置图和级联PE全连接配置来分别搭建不同的神经网络的计算电路。本发明能根据神经网络加速器的变量来配置通用计算电路,从而使搭建或修改神经网络更加简单、方便和快捷,缩短神经网络的推理时间,降低相关深入研究的硬件开发时间。

Description

一种神经网络加速器的通用计算电路
技术领域
本发明属于集成电路的现场可编程门阵列(FieldProgrammable Gate Array,FPGA)设计技术领域,具体的说是神经网络加速器的通用计算模块电路。
背景技术
2012年,AlexNet夺得大规模视觉识别挑战的冠军,深度神经网络重新成为研究热点,其中对卷积神经网络的研究受到越来越多的关注,己被广泛应用于数字视频监控,人脸识别,图像分类等领域。卷积神经网络的学***台中,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个乘积后传递给加法器树;
加法器树对当前周期下的4个乘积进行累加处理,得到当前周期下的累加和后存入先入先出队列中;
先入先出队列将当前周期下的累加和读取并传给级联加法器,先入先出队列起到缓存数据的作用;
级联加法器接收当前周期下的累加和,并与不同配置下的级联输入进行计算,得到当前周期下的级联加法器的级联输出;
偏置加法器接收当前周期下的级联加法器的级联输出,并与当前周期下外部输入的偏置数据进行计算,得到加法结果后传递给ReLu激活函数模块;
由ReLu激活函数模块对加法结果进行处理,得到当前周期下通用计算模块PE的输出结果。
如图2所示,卷积神经网络是由卷积层、池化层、激活函数以及全连接层构成的;通用计算模块PE的不同配置适用于多种情况下的卷积计算和全连接计算;不同配置是按如下步骤进行:
步骤1、判断神经网络中卷积核的尺寸是否小于乘法器的个数4,,若是,则执行单PE卷积配置;否则,执行级联PE卷积配置;
步骤2、判断神经网络中全连接层的输入特征图数量是否小于乘法器的个数4,若是,则执行单PE全连接配置,否则执行级联PE全连接配置。
如图3所示,单PE卷积配置适用于神经网络中卷积核的尺寸小于通用计算模块PE乘法器的个数的情况,如卷积核为2*2情况下的卷积计算,图3中通用计算电路是一个通用计算模块PE;
单PE卷积配置是:
将通用计算模块PE中级联加法器的级联输入置为“0”;
将通用计算模块PE的输出结果作为通用计算电路的输出结果;
单PE卷积配置的计算是按如下步骤进行:
步骤1、定义4个输入数据为输入特征图的4个点的像素值,分别为1,2,3,4;定义RAM所存储的4个权重数据来自2*2卷积核4个点的权重值,分别为1,1,1,1;定义外部输入的偏置数据,为5;定义级联加法器的级联输入置为“0”;
步骤2、4个乘法器从RAM中获取所存储的权重数据,并接收外部输入的计算数据并进行处理,得到的4个乘积后传递给加法器树,乘积具体是1*1,1*2,1*3,1*4;该计算过程对应了卷积核为2*2情况下卷积计算过程中的矩阵内积乘法运算步骤;
步骤3、加法器树对4个乘积进行累加处理,得到累加和后存入先入先出队列中,累加和具体是(1*1+1*2+1*3+1*4);该计算过程对应了卷积核为2*2情况下卷积计算过程中的全加步骤;
步骤4、级联加法器接收累加和,并与级联输入进行计算,由于级联加法器的级联输入置为“0”,所以得到级联加法器的级联输出仍等于累加和,级联加法器的级联输出具体是(1*1+1*2+1*3+1*4);
步骤5、偏置加法器接收级联加法器的级联输出,并与外部输入的偏置数据进行计算,得到加法结果后传递给ReLu激活函数模块,加法结果具体是(1*1+1*2+1*3+1*4)+5;该计算过程对应了卷积核为2*2情况下卷积计算过程中的加偏置步骤;
步骤6、由ReLu激活函数模块对加法结果进行处理,得到通用计算模块PE的输出结果作为通用计算电路的输出结果;通用计算电路的输出结果相当于一次2*2卷积核卷积计算得到的结果。
本实施例中,如图4所示,级联PE卷积配置适用于神经网络中卷积核的尺寸大于通用计算模块PE乘法器的个数的情况,如卷积核3*3情况下的卷积计算,图4中通用计算电路是3个通用计算模块PE的级联;
级联PE卷积配置是:
将上一个周期的第1个通用计算模块PE中级联加法器的级联输出作为当前周期的第2个通用计算模块PE中级联加法器的级联输入,将当前周期的第2个通用计算模块PE中级联加法器的级联输出作为下一个周期的第3个通用计算模块PE中级联加法器的级联输入;
将第1个通用计算模块PE中级联加法器的级联输入置为“0”;
将第3个通用计算模块PE的输出结果作为通用计算电路的输出结果;
级联PE卷积配置的计算是按如下步骤进行:
步骤1、定义9个输入数据为输入特征图的9个点的像素值,分别为1,2,3,4,5,6,7,8,9,通用计算电路是3个通用计算模块PE的级联,总共有12个乘法器,计算过程只会用到其中的9个乘法器,没用到的乘法器,其输入视为0;定义RAM写入的9个权重数据来自3*3卷积核的9个点的权重值,分别为1,1,1,1,1,1,1,1,1;定义外部输入的偏置数据,为5;定义第1个级联加法器的级联输入置为“0”;
步骤2、9个乘法器从RAM中获取所存储的权重数据,并接收外部输入的计算数据并进行处理,得到的9个乘积后传递给加法器树,乘积具体是1*1,1*2,1*3,1*4,1*5,1*6,1*7,1*8,1*9;该计算过程对应了卷积核为3*3情况下卷积计算过程中的矩阵内积乘法运算步骤;
步骤3、每个通用计算模块PE的加法器树对4个乘积进行累加处理,得到的累加和后存入先入先出队列中,累加和具体是(1*1+1*2+1*3+1*4),(1*5+1*6+1*7+1*8)和1*9;
步骤4、图4中第一个先入先出队列在上一个周期时将累加和读取并传给第一个级联加法器,第二个先入先出队列在当前周期时将累加和读取并传给第二个级联加法器,第三个先入先出队列在下周期时将累加和读取并传给第三个级联加法器;
步骤5、在上一个周期时,第一个级联加法器接收累加和,并与第一个级联输入进行计算,由于第一个级联加法器的级联输入置为“0”,所以得到第一个级联加法器的级联输出仍等于累加和,第一个级联加法器的级联输出具体是(1*1+1*2+1*3+1*4);上一个周期的第一个通用计算模块PE中级联加法器的级联输出作为当前周期的第二个通用计算模块PE中级联加法器的级联输入;在当前周期时,第二个级联加法器接收累加和,并与第二个级联输入进行计算,由于第二个级联加法器的级联输入是上一个周期的第一个通用计算模块PE中级联加法器的级联输出,得到第二个级联加法器的级联输出,具体是(1*1+1*2+1*3+1*4+1*5+1*6+1*7+1*8);当前周期的第二个通用计算模块PE中级联加法器的级联输出作为下一个周期的第三个通用计算模块PE中级联加法器的级联输入;在下一个周期时,第三个级联加法器接收累加和,并与第三个级联输入进行计算,由于第三个级联加法器的级联输入是当前周期的第二个通用计算模块PE中级联加法器的级联输出,得到第三个级联加法器的级联输出,具体是(1*1+1*2+1*3+1*4+1*5+1*6+1*7+1*8+1*9);该计算过程对应了卷积核为3*3情况下卷积计算过程中的全加步骤
步骤6、第三个偏置加法器接收第三个级联加法器的级联输出,并与外部输入的偏置数据进行计算,得到加法结果后传递给ReLu激活函数模块,加法结果具体是(1*1+1*2+1*3+1*4+1*5+1*6+1*7+1*8+1*9)+5;该计算过程对应了卷积核为3*3情况下卷积计算过程中的加偏置步骤;
步骤7、由ReLu激活函数模块对加法结果进行处理,第三个通用计算模块PE的输出结果作为通用计算电路的输出结果;通用计算电路的输出结果相当于一次3*3卷积核卷积计算得到的结果。
本实施例中,如图5所示,单PE全连接配置适用于神经网络中全连接层的输入特征图数量小于通用计算模块PE乘法器的个数的情况,图4中通用计算电路是一个通用计算模块PE;
单PE全连接配置是:
将上一个周期下的通用计算单元中级联加法器的级联输出作为通用计算模块PE中级联加法器的级联输入;
将通用计算模块PE的输出结果作为通用计算电路的输出结果。
单PE全连接配置的计算是按如下步骤进行:
步骤1、定义4个输入数据,输入数据是不断变化的,在第1个周期输入每张输入特征图的第一行第一个点的像素值,依次,在第9个周期输入每张输入特征图的第三行第三个点的像素值;定义RAM所存储的36个权重数据来自4*3*3卷积核的权重值;定义外部输入的偏置数据,为5;
步骤2、4个乘法器从RAM中获取所存储的权重数据是不断变化的,在第1个周期获取的4个权重数据来自4层3*3卷积核的每一层的第一行第一个点的权重值,依次,在第9个周期获取的4个权重数据来自4层3*3卷积核的每一层的第三行第三个点的权重值;
步骤3、在当前周期下,4个乘法器从RAM中获取所存储的权重数据,并接收外部输入的计算数据并进行处理,得到的4个乘积后传递给加法器树;其中的一个乘法器在9个周期依次输入的数据值分别是1,2,3,2,3,4,3,4,5,依次获取的权重值分别是1,1,1,1,1,1,1,1,1,该乘法器在9个周期依次传递给加法器树1*1,1*2,1*3,1*2,1*3,1*4,1*3,1*4,1*5;该计算过程对应了全连接计算过程中的矩阵内积乘法运算步骤;
步骤4、加法器树对当前周期下的4个乘积进行累加处理,得到当前周期下的累加和后存入先入先出队列中;
步骤5、级联加法器接收当前周期下的累加和,并与级联输入进行计算,由于上一个周期下的通用计算单元中级联加法器的级联输出是当前周期通用计算模块PE中级联加法器的级联输入,当前周期下的通用计算单元中级联加法器的级联输出又是下一个周期的通用计算模块PE中级联加法器的级联输入,所以得到当前周期下的级联加法器的级联输出等于从第一个周期到当前周期的累加和全部相加的结果,第9个周期下的累加和是总共9个周期的累加和全部相加的结果;该计算过程对应了全连接计算过程中的全加步骤;
步骤6、偏置加法器接收第9个周期下级联加法器的级联输出,并与外部输入的偏置数据进行计算,得到加法结果后传递给ReLu激活函数模块;
步骤7、由ReLu激活函数模块对加法结果进行处理,得到第9个周期下通用计算模块PE的输出结果作为通用计算电路的输出结果;通用计算电路的输出结果相当于一次输入特征图数量为4的全连接计算得到的结果。
如图6所示,级联PE全连接配置适用于神经网络中全连接层的输入特征图数量大于通用计算模块PE乘法器的个数的情况,如输入特征图数量为16张情况下的全连接计算,图6中通用计算电路是四个通用计算模块PE的级联;
级联PE全连接配置是:
将上一个周期的第1个通用计算模块PE中级联加法器的级联输出作为当前周期的第2个通用计算模块PE中级联加法器的级联输入,将当前周期的第2个通用计算模块PE中级联加法器的级联输出作为下一个周期的第3个通用计算模块PE中级联加法器的级联输入,将下一个周期的第3个通用计算模块PE中级联加法器的级联输出作为下下个周期的第4个通用计算模块PE中级联加法器的级联输入;
上一个周期的第4个通用计算模块PE中级联加法器的级联输出作为第1个通用计算模块PE中级联加法器的级联输入;
第4个通用计算模块PE的输出结果作为通用计算电路的输出结果。
级联PE全连接配置的计算是按如下步骤进行:
步骤1、定义16个输入数据,输入数据是不断变化的,在第1个周期输入每张输入特征图的第一行第一个点的像素值,依次,在第9个周期输入每张输入特征图的第三行第三个点的像素值;定义RAM所存储的144个权重数据来自16*3*3卷积核的权重值;定义外部输入的偏置数据,为5;
步骤2、16个乘法器从RAM中获取所存储的权重数据是不断变化的,在第1个周期获取的16个权重数据来自16层3*3卷积核的每一层的第一行第一个点的权重值,依次,在第9个周期获取的16个权重数据来自16层3*3卷积核的每一层的第三行第三个点的权重值;
步骤3、在当前周期下,16个乘法器从RAM中获取所存储的权重数据,并接收外部输入的计算数据并进行处理,得到的16个乘积后传递给加法器树;
步骤4、每个通用计算模块PE的加法器树对4个乘积进行累加处理,得到的累加和后存入先入先出队列中
步骤5、图6中第一个先入先出队列在上一个周期时将累加和读取并传给第一个级联加法器,第二个先入先出队列在当前周期时将累加和读取并传给第二个级联加法器,第三个先入先出队列在下周期时将累加和读取并传给第三个级联加法器,第四个先入先出队列在下周期时将累加和读取并传给第四个级联加法器;
步骤6、在上一个周期时,第一个级联加法器接收累加和,并与第一个级联输入进行计算,由于第一个级联加法器的级联输入置为“0”,所以得到第一个级联加法器的级联输出仍等于累加和;上一个周期的第一个通用计算模块PE中级联加法器的级联输出作为当前周期的第二个通用计算模块PE中级联加法器的级联输入;在当前周期时,第二个级联加法器接收累加和,并与第二个级联输入进行计算,由于第二个级联加法器的级联输入是上一个周期的第一个通用计算模块PE中级联加法器的级联输出,得到第二个级联加法器的级联输出;当前周期的第二个通用计算模块PE中级联加法器的级联输出作为下一个周期的第三个通用计算模块PE中级联加法器的级联输入;在下一个周期时,第三个级联加法器接收累加和,并与第三个级联输入进行计算,由于第三个级联加法器的级联输入是当前周期的第二个通用计算模块PE中级联加法器的级联输出,得到第三个级联加法器的级联输出;下一个周期的第三个通用计算模块PE中级联加法器的级联输出作为下下个周期的第四个通用计算模块PE中级联加法器的级联输入;在下下个周期时,第四个级联加法器接收累加和,并与第四个级联输入进行计算,由于第四个级联加法器的级联输入是下一个周期的第三个通用计算模块PE中级联加法器的级联输出,得到第四个级联加法器的级联输出,为4个加法器树的累加和的总和,即16个乘积的累加和;
步骤7、由于上一个周期下的第四个通用计算单元中级联加法器的级联输出是当前周期第一个通用计算模块PE中级联加法器的级联输入,当前周期下的第四个通用计算单元中级联加法器的级联输出又是下一个周期的第一个通用计算模块PE中级联加法器的级联输入,所以得到当前周期下的级联加法器的级联输出等于从第一个周期到当前周期的累加和全部相加的结果,第9个周期下的累加和是总共9个周期的累加和全部相加的结果;该计算过程对应了全连接计算过程中的全加步骤;
步骤6、偏置加法器接收第9个周期下第四个级联加法器的级联输出,并与外部输入的偏置数据进行计算,得到加法结果后传递给ReLu激活函数模块;
步骤7、由ReLu激活函数模块对加法结果进行处理,得到第9个周期下第四个通用计算模块PE的输出结果作为通用计算电路的输出结果;通用计算电路的输出结果相当于一次输入特征图数量为16的全连接计算得到的结果。

Claims (6)

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全连接配置。
3.根据权利要求2所述的神经网络加速器的通用计算电路,其特征是,所述单PE卷积配置是:
将第i个通用计算模块PE中级联加法器的级联输入置为“0”;
将m个通用计算模块PE的输出结果均作为通用计算电路的输出结果。
4.根据权利要求2所述的神经网络加速器的通用计算电路的配置方法,其特征是,所述级联PE卷积配置是:
将上一个周期的第i-1个通用计算模块PE中级联加法器的级联输出作为第i个通用计算模块PE中级联加法器的级联输入;
当i=1时,将第i个通用计算模块PE中级联加法器的级联输入置为“0”;
将第m个通用计算模块PE的输出结果作为通用计算电路的输出结果。
5.根据权利要求2所述的神经网络加速器的通用计算电路的配置方法,其特征是,所述单PE全连接配置是:
将上一个周期下的第i个通用计算单元中级联加法器的级联输出作为第i个通用计算模块PE中级联加法器的级联输入;
将m个通用计算模块PE的输出结果均作为通用计算电路的输出结果。
6.根据权利要求2所述的神经网络加速器的通用计算电路的配置方法,其特征是,所述级联PE全连接配置是:
将上一个周期的第i-1个通用计算模块PE中级联加法器的级联输出作为第i个通用计算模块PE中级联加法器的级联输入;
当i=1时,将上一个周期的第m个通用计算模块PE中级联加法器的级联输出作为第i个通用计算模块PE中级联加法器的级联输入;
将第m个通用计算模块PE的输出结果作为通用计算电路的输出结果。
CN201911055499.5A 2019-10-31 2019-10-31 一种神经网络加速器的通用计算电路 Active CN110807522B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911055499.5A CN110807522B (zh) 2019-10-31 2019-10-31 一种神经网络加速器的通用计算电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911055499.5A CN110807522B (zh) 2019-10-31 2019-10-31 一种神经网络加速器的通用计算电路

Publications (2)

Publication Number Publication Date
CN110807522A true CN110807522A (zh) 2020-02-18
CN110807522B CN110807522B (zh) 2022-05-06

Family

ID=69489925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911055499.5A Active CN110807522B (zh) 2019-10-31 2019-10-31 一种神经网络加速器的通用计算电路

Country Status (1)

Country Link
CN (1) CN110807522B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111610963A (zh) * 2020-06-24 2020-09-01 上海西井信息科技有限公司 芯片结构及其乘加计算引擎
CN112580787A (zh) * 2020-12-25 2021-03-30 北京百度网讯科技有限公司 神经网络加速器的数据处理方法、装置、设备及存储介质
CN112862091A (zh) * 2021-01-26 2021-05-28 合肥工业大学 一种基于快速卷积的资源复用型神经网络硬件加速电路
CN112965931A (zh) * 2021-02-22 2021-06-15 北京微芯智通科技合伙企业(有限合伙) 基于cnn细胞神经网络结构的数字集成处理方法
CN113095495A (zh) * 2021-03-29 2021-07-09 上海西井信息科技有限公司 卷积神经网络模块的控制方法
WO2021248540A1 (zh) * 2020-06-11 2021-12-16 杭州知存智能科技有限公司 数据加载电路和方法
US11977969B2 (en) 2020-06-11 2024-05-07 Hangzhou Zhicun Intelligent Technology Co., Ltd. Data loading

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速***
CN108805266A (zh) * 2018-05-21 2018-11-13 南京大学 一种可重构cnn高并发卷积加速器
CN109543140A (zh) * 2018-09-20 2019-03-29 中国科学院计算技术研究所 一种卷积神经网络加速器
CN109726806A (zh) * 2017-10-30 2019-05-07 上海寒武纪信息科技有限公司 信息处理方法及终端设备
CN109886400A (zh) * 2019-02-19 2019-06-14 合肥工业大学 基于卷积核拆分的卷积神经网络硬件加速器***及其计算方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速***
CN109726806A (zh) * 2017-10-30 2019-05-07 上海寒武纪信息科技有限公司 信息处理方法及终端设备
CN108805266A (zh) * 2018-05-21 2018-11-13 南京大学 一种可重构cnn高并发卷积加速器
CN109543140A (zh) * 2018-09-20 2019-03-29 中国科学院计算技术研究所 一种卷积神经网络加速器
CN109886400A (zh) * 2019-02-19 2019-06-14 合肥工业大学 基于卷积核拆分的卷积神经网络硬件加速器***及其计算方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
余子健: "基于FPGA的卷积神经网络加速器", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
朱智洋: "基于近似计算与数据调度的CNN加速器设计与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021248540A1 (zh) * 2020-06-11 2021-12-16 杭州知存智能科技有限公司 数据加载电路和方法
CN113807506A (zh) * 2020-06-11 2021-12-17 杭州知存智能科技有限公司 数据加载电路和方法
US11977969B2 (en) 2020-06-11 2024-05-07 Hangzhou Zhicun Intelligent Technology Co., Ltd. Data loading
CN111610963A (zh) * 2020-06-24 2020-09-01 上海西井信息科技有限公司 芯片结构及其乘加计算引擎
CN111610963B (zh) * 2020-06-24 2021-08-17 上海西井信息科技有限公司 芯片结构及其乘加计算引擎
CN112580787A (zh) * 2020-12-25 2021-03-30 北京百度网讯科技有限公司 神经网络加速器的数据处理方法、装置、设备及存储介质
CN112580787B (zh) * 2020-12-25 2023-11-17 北京百度网讯科技有限公司 神经网络加速器的数据处理方法、装置、设备及存储介质
CN112862091A (zh) * 2021-01-26 2021-05-28 合肥工业大学 一种基于快速卷积的资源复用型神经网络硬件加速电路
CN112965931A (zh) * 2021-02-22 2021-06-15 北京微芯智通科技合伙企业(有限合伙) 基于cnn细胞神经网络结构的数字集成处理方法
CN113095495A (zh) * 2021-03-29 2021-07-09 上海西井信息科技有限公司 卷积神经网络模块的控制方法
CN113095495B (zh) * 2021-03-29 2023-08-25 上海西井科技股份有限公司 卷积神经网络模块的控制方法

Also Published As

Publication number Publication date
CN110807522B (zh) 2022-05-06

Similar Documents

Publication Publication Date Title
CN110807522B (zh) 一种神经网络加速器的通用计算电路
CN107862374B (zh) 基于流水线的神经网络处理***和处理方法
CN107844826B (zh) 神经网络处理单元及包含该处理单元的处理***
CN110458279B (zh) 一种基于fpga的二值神经网络加速方法及***
US10691996B2 (en) Hardware accelerator for compressed LSTM
CN108108809B (zh) 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN109284824B (zh) 一种基于可重构技术的用于加速卷积和池化运算的装置
CN108629406B (zh) 用于卷积神经网络的运算装置
CN110163357A (zh) 一种计算装置及方法
CN113240101B (zh) 卷积神经网络软硬件协同加速的异构SoC实现方法
CN113344179B (zh) 基于fpga的二值化卷积神经网络算法的ip核
CN111126569B (zh) 一种支持剪枝稀疏化压缩的卷积神经网络装置和计算方法
CN110163350A (zh) 一种计算装置及方法
Mouselinos et al. TF2FPGA: A framework for projecting and accelerating tensorflow CNNs on FPGA platforms
Hao A general neural network hardware architecture on FPGA
CN110716751B (zh) 高并行度计算平台、***及计算实现方法
Zong-ling et al. The design of lightweight and multi parallel CNN accelerator based on FPGA
Shu et al. High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination
Domingos et al. An efficient and scalable architecture for neural networks with backpropagation learning
CN110059809A (zh) 一种计算装置及相关产品
CN112734020A (zh) 卷积神经网络的卷积乘累加硬件加速装置、***以及方法
CN112836793B (zh) 浮点可分离卷积计算加速装置、***以及图像处理方法
CN114065923A (zh) 一种卷积神经网络的压缩方法、***及加速装置
CN113673690B (zh) 一种水下噪声分类卷积神经网络加速器
CN110765413A (zh) 矩阵求和结构及神经网络计算平台

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant