CN111738432B - 一种支持自适应并行计算的神经网络处理电路 - Google Patents

一种支持自适应并行计算的神经网络处理电路 Download PDF

Info

Publication number
CN111738432B
CN111738432B CN202010794982.1A CN202010794982A CN111738432B CN 111738432 B CN111738432 B CN 111738432B CN 202010794982 A CN202010794982 A CN 202010794982A CN 111738432 B CN111738432 B CN 111738432B
Authority
CN
China
Prior art keywords
weight
feature map
data
parallel mode
characteristic diagram
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.)
Active
Application number
CN202010794982.1A
Other languages
English (en)
Other versions
CN111738432A (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.)
Chongqing Lianxin Zhikang Biotechnology Co ltd
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202010794982.1A priority Critical patent/CN111738432B/zh
Publication of CN111738432A publication Critical patent/CN111738432A/zh
Application granted granted Critical
Publication of CN111738432B publication Critical patent/CN111738432B/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

本发明公开了一种支持自适应并行计算的神经网络处理电路,属于神经网络硬件实现技术领域。该电路包含指令控制器、交互单元、特征图控制器、特征图存储单元、特征图缓存单元、权重控制器、权重存储单元、权重缓存单元、处理单元阵列;指令控制器中设置的并行模式判决器,根据当前层的特征图结构和权重结构,建立行并行模式、输入通道并行模式、混合并行模式三种并行模式的层计算模型,计算并选取完成当前层运算最少操作周期数的并行模式作为当前层的并行模式。本发明支持具有任意大小的特征图结构和权重结构的卷积网络,对不同的卷积网络能自适应的得到最佳的计算方案,使乘法器最大效率利用,减少资源浪费,提升处理速度。

Description

一种支持自适应并行计算的神经网络处理电路
技术领域
本发明属于神经网络硬件实现技术领域,涉及一种自适应并行计算的神经网络处理电路,自适应是指根据每一层的网络结构,自动选取并行模式,从而充分利用运算资源,提高硬件运算效率。
背景技术
随着现代社会人工智能技术的不断发展,深度学习算法的突破和当前计算能力的增加,基于深度神经网络的机器学习算法已经在视觉、语音等多个领域中体现出了优秀的性能。神经网络的模型规模日益复杂,这也就对执行神经网络运算的处理结构提出了要求。通用的冯诺依曼结构处理器往往在能效比上难以提供令人满意的性能。而针对神经网络的专用硬件加速器具有高并行度的特点,使神经网络在训练和推理中进行的大量运算不再受传统冯诺依曼结构处理器的制约,因此成为一种合理的选择。如今神经网络硬件加速器,主要分为处理大量数据的云端加速器如GPU、TPU,和在终端处理中小量数据的神经网络专用芯片。对于GPU和TPU这种云端硬件加速器,采用的方案为终端传感器配合将采集的数据通过网络送入云端集中计算。针对终端的专用神经网络加速芯片一般采用低比特量化,使用固定的并行模式,可以处理较为简单的神经网络任务。
对于上文提到的一些现有的相关技术,如GPU和TPU等设备,尽管具有较高的并行度,且有完整的神经网络编程框架,但其成本较高,待机功耗大,无法应用到较小的嵌入式物联网终端当中。而对于专用的神经网络芯片,多数只支持全连接神经网络的推理。支持卷积操作的神经网络芯片其并行卷积策略往往受限于卷积核大小,即每个周期内处理的数据量多少,由卷积核形状及大小决定。这种卷积策略并行模式固定,当处理不同大小的卷积神经网络时,其处理单元在特征图的边缘会出现利用率低的情况。从而使推理速度变慢,增加整体功耗。
发明内容
本发明针对上述问题提出了一种支持自适应并行计算的神经网络处理电路。由于神经网络结构的灵活性,本发明处理电路能够针对每一层网络结构,自适应的选取最为合适的并行计算策略。对于特征图较大,通道数较少的优先使用行并行卷积计算方案;对于通道数较多,特征图较小的优先使用输入通道并行卷积计算方案;并且同一层内还可混合使用两种并行计算方案。
本发明采用的技术方案如下:
一种支持自适应并行计算的神经网络处理电路,该处理电路包含指令控制器、交互单元、特征图控制器、特征图存储单元、特征图缓存单元、权重控制器、权重存储单元、权重缓存单元、处理单元阵列。
所述指令控制器用于接收外部输入命令,以及控制特征图控制器、权重控制器和处理单元阵列。指令控制器中设置有并行模式判决器,并行模式判决器根据当前层的特征图结构和权重结构,计算行并行模式、输入通道并行模式、混合并行模式三种并行模式完成当前层运算各需要的操作周期数,选取最少操作周期数的并行模式作为当前层的并行模式,若出现两种及两种以上并行模式的操作周期数同时为最少时,优先选取行并行模式,输入通道并行模式次之;然后指令控制器将相应的并行模式指令分别发送给特征图控制器、权重控制器和处理单元阵列。
所述交互单元与特征图存储单元、权重存储单元相连,交互单元用于与外部进行数据交互,如初始数据的输入、计算结果的输出。
所述特征图存储单元用于存储交互单元传输的特征图数据;所述权重存储单元用于存储交互单元传输的权重数据。
所述特征图控制器用于接收指令控制器发送的并行模式指令,根据并行模式指令将特征图存储单元中的特征图数据整形后,存放到特征图缓存单元中。
所述权重控制器用于接收指令控制器发送的并行模式指令,根据并行模式指令将权重存储单元中的权重数据整形后,存放到权重缓存单元中。
所述处理单元阵列用于接收指令控制器发送的并行模式指令,根据并行模式指令将特征图缓存单元和权重缓存单元中的缓存数据进行计算,然后将计算结果存入特征图存储单元。
所述处理单元阵列包括S个乘法器、S个加法器,S个乘法器和S个加法器按每组
Figure 78753DEST_PATH_IMAGE001
个分为
Figure 378147DEST_PATH_IMAGE002
组;所述特征图结构包括特征图的高,即行数Hf;特征图的宽,即列数Wf;特征图的 通道数Cf;令
Figure 558593DEST_PATH_IMAGE003
表示特征图第
Figure 892622DEST_PATH_IMAGE004
通道、
Figure 500321DEST_PATH_IMAGE005
行、
Figure 785547DEST_PATH_IMAGE006
列的特征图数据,其中,1≤
Figure 504104DEST_PATH_IMAGE004
≤Cf,1≤
Figure 958219DEST_PATH_IMAGE005
≤ Hf,1≤
Figure 471240DEST_PATH_IMAGE006
≤Wf;。所述权重结构包括权重的高,即行数Hw;权重的宽,即列数Ww;权重中单个卷 积核的通道数,即输入通道数Cw;权重中卷积核的个数,即输出通道数Uw,令
Figure 745227DEST_PATH_IMAGE007
表示权 重第
Figure 1896DEST_PATH_IMAGE008
输入通道、
Figure 310517DEST_PATH_IMAGE009
输出通道、
Figure 758554DEST_PATH_IMAGE010
行、
Figure 519836DEST_PATH_IMAGE011
列的权重数据,其中1≤
Figure 580196DEST_PATH_IMAGE008
≤Cw,1≤
Figure 8904DEST_PATH_IMAGE009
≤Uw,1≤
Figure 863727DEST_PATH_IMAGE010
≤ Hw,1≤
Figure 112306DEST_PATH_IMAGE011
≤Ww
所述行并行模式的计算过程为:
A1. 取出前M个卷积核中,第一个输入通道的第一行第一列数据
Figure 976357DEST_PATH_IMAGE012
Figure 492526DEST_PATH_IMAGE013
、…、
Figure 783831DEST_PATH_IMAGE014
,共取出了M个权重数据。若权重中卷积核的个数Uw
Figure 254126DEST_PATH_IMAGE002
,则令M=Uw;若权重中 卷积核的个数Uw
Figure 921868DEST_PATH_IMAGE002
,则令M=
Figure 59588DEST_PATH_IMAGE002
A2. 取出特征图中第一个通道中第1行~第N行的第1列特征图数据
Figure 521793DEST_PATH_IMAGE015
Figure 744964DEST_PATH_IMAGE016
、…、
Figure 449353DEST_PATH_IMAGE017
,共取出了N个特征图数据。若特征图的行数Hf
Figure 176001DEST_PATH_IMAGE001
+Hw-1,则令N=Hf-HW+1;若特征 图的行数Hf
Figure 809107DEST_PATH_IMAGE001
+Hw-1,则令N=
Figure 519574DEST_PATH_IMAGE001
A3. 将M个权重数据和N个特征图数据分别做乘法。当M=
Figure 529119DEST_PATH_IMAGE002
且N=
Figure 110273DEST_PATH_IMAGE001
时,此时使用了 S个乘法器。
A4. 令权重数据保持不变,特征图数据向右滑动,改为取第1行~第N行的下一列特征图数据;返回步骤A3,直到完成第1行~第N行前P列的特征图数据的计算,其中P=Wf-Ww+1。此时,若当前权重数据是最后一行最后一列,则跳到步骤A6;若当前权重数据不是最后一行最后一列,则进行下一步。
A5. 按照从左至右的顺序逐行切换权重数据,将前M个卷积核中第一个输入通道 的第
Figure 412816DEST_PATH_IMAGE010
行第
Figure 345000DEST_PATH_IMAGE011
列的权重数据
Figure 158235DEST_PATH_IMAGE018
Figure 593895DEST_PATH_IMAGE019
、…、
Figure 834384DEST_PATH_IMAGE020
看作第一个输入通道的第一行第一 列的权重数据,将特征图第一个通道的第
Figure 253864DEST_PATH_IMAGE005
行第
Figure 339632DEST_PATH_IMAGE006
列的特征图数据看作第一行第一列的特征 图数据,其中
Figure 682930DEST_PATH_IMAGE005
=
Figure 94319DEST_PATH_IMAGE010
Figure 1096DEST_PATH_IMAGE006
=
Figure 890554DEST_PATH_IMAGE011
,然后返回步骤A2。
A6. 若当前特征图的行数Hf
Figure 566386DEST_PATH_IMAGE001
+Hw-1,则将当前特征图第
Figure 148677DEST_PATH_IMAGE001
+1行至最后一行看 作新的特征图,得到新的特征图行数Hf,且返回步骤A1;若当前特征图的行数Hf
Figure 542749DEST_PATH_IMAGE001
+Hw-1, 则第一个通道的特征图数据全部计算完成,进行下一步。
A7. 若当前特征图通道数Cf=1,则跳到步骤A8;若当前特征图通道数Cf>1,则特征图向后切换到下一个通道,并将当前特征图通道至最后一个特征图通道看作新的特征图,得到新的特征图通道数Cf,权重也向后切换一个输入通道,将当前权重输入通道至最后一个输入通道看作新的权重,得到新的权重输入通道数Cw,返回步骤A1。
A8. 若当前卷积核个数Uw
Figure 468855DEST_PATH_IMAGE002
,则计算结束;若当前卷积核个数Uw
Figure 264773DEST_PATH_IMAGE002
,则将当前 第
Figure 752386DEST_PATH_IMAGE002
+1个卷积核至最后一个卷积核看作新的卷积核,得到新的卷积核个数Uw,且Cw、Cf恢复 为原始值,返回步骤A1。
所以假设特征图的高为
Figure 368175DEST_PATH_IMAGE001
+2,宽为
Figure 865015DEST_PATH_IMAGE001
+2,通道数为
Figure 249860DEST_PATH_IMAGE001
,权重的高为
Figure 173954DEST_PATH_IMAGE021
,宽为
Figure 509995DEST_PATH_IMAGE021
,输入 通道数为
Figure 544947DEST_PATH_IMAGE001
,输出通道数为
Figure 315457DEST_PATH_IMAGE002
,则每一次运算都可以保证S个乘法器同时工作,使乘法器利 用率最大化。
如果特征图的高为
Figure 410452DEST_PATH_IMAGE001
+3,宽为
Figure 833DEST_PATH_IMAGE001
+3,通道数为
Figure 573897DEST_PATH_IMAGE001
,权重的高为
Figure 198914DEST_PATH_IMAGE021
,宽为
Figure 963345DEST_PATH_IMAGE021
,输入通道 数为
Figure 775443DEST_PATH_IMAGE001
,输出通道数为
Figure 152198DEST_PATH_IMAGE002
,当特征图计算到剩余行数小于
Figure 631721DEST_PATH_IMAGE001
时,如果使用上述的行并行方 式计算就不能保证S个乘法器充分利用。所以本发明提出了输入通道并行模式,所述输入通 道并行模式的计算过程为:
B1. 取出前M个卷积核中,前N个输入通道的第一行第一列权重数据
Figure 68518DEST_PATH_IMAGE022
Figure 367913DEST_PATH_IMAGE023
、…、
Figure 548358DEST_PATH_IMAGE024
Figure 380923DEST_PATH_IMAGE025
Figure 988622DEST_PATH_IMAGE026
、…、
Figure 775312DEST_PATH_IMAGE027
,…,
Figure 759449DEST_PATH_IMAGE028
Figure 947984DEST_PATH_IMAGE029
、…、
Figure 461005DEST_PATH_IMAGE030
,共取 出了M组权重数据,每组权重数据包含N个权重数据。若权重的输入通道数Cw
Figure 571DEST_PATH_IMAGE001
,则令N= Cw;若权重的输入通道数Cw
Figure 21354DEST_PATH_IMAGE001
,则令N=
Figure 329976DEST_PATH_IMAGE001
。若权重中卷积核的个数Uw
Figure 13898DEST_PATH_IMAGE002
,则令M=Uw;若权 重中卷积核的个数Uw
Figure 40760DEST_PATH_IMAGE002
,则令M=
Figure 101120DEST_PATH_IMAGE002
B2. 取出特征图中前N个通道的第一行第一列特征图数据
Figure 998669DEST_PATH_IMAGE031
Figure 384651DEST_PATH_IMAGE032
、…、
Figure 866185DEST_PATH_IMAGE033
, 共取出了N个特征图数据。若特征图的通道数Cf
Figure 730236DEST_PATH_IMAGE001
,则令N=Cf;若特征图的通道数Cf
Figure 13450DEST_PATH_IMAGE001
, 则令N=
Figure 39175DEST_PATH_IMAGE001
B3. 将取出的M组权重数据依次和N个特征图数据做乘法。当M=
Figure 775050DEST_PATH_IMAGE002
且N=
Figure 177212DEST_PATH_IMAGE001
时,此时 使用了S个乘法器。
B4. 令权重数据保持不变,按照从左至右的顺序逐行切换特征图数据,返回步骤B3,直到完成前N个通道的前Q行前P列特征图数据的计算,其中P=Wf-Ww+1,Q=Hf-Hw+1。此时,若当前权重数据是最后一行最后一列,则跳到步骤B6;若当前权重数据不是最后一行最后一列,则进行下一步。
B5. 按照从左至右的顺序逐行切换权重数据,将前M个卷积核中前N个输入通道的 第
Figure 813468DEST_PATH_IMAGE034
行第
Figure 275673DEST_PATH_IMAGE035
列的权重数据
Figure 498844DEST_PATH_IMAGE036
Figure 439118DEST_PATH_IMAGE037
、…、
Figure 165766DEST_PATH_IMAGE038
Figure 64452DEST_PATH_IMAGE039
Figure 774919DEST_PATH_IMAGE040
、…、
Figure 751840DEST_PATH_IMAGE041
,…,
Figure 864152DEST_PATH_IMAGE042
Figure 668160DEST_PATH_IMAGE043
、…、
Figure 865923DEST_PATH_IMAGE044
看作前N个输入通道的第一行第一列的权重数据,将特征图前N个通道的 第
Figure 413579DEST_PATH_IMAGE005
行第
Figure 114819DEST_PATH_IMAGE006
列的特征图数据看作第一行第一列的特征图数据,其中
Figure 355307DEST_PATH_IMAGE005
=
Figure 273323DEST_PATH_IMAGE010
Figure 359090DEST_PATH_IMAGE006
=
Figure 180416DEST_PATH_IMAGE011
;然后返回步骤 B2。
B6. 若当前特征图通道数Cf
Figure 326226DEST_PATH_IMAGE001
,则前M个卷积核的所有权重数据已完成计算,进 行下一步。若当前特征图通道数Cf
Figure 233002DEST_PATH_IMAGE001
,则将当前特征图第N+1个通道至最后一个特征图通 道作为新的特征图,得到新的特征图通道数Cf,将权重前M个卷积核的第N+1个输入通道至 最后一个输入通道作为新的权重,得到新的权重输入通道数Cw,返回步骤B1。
B7. 若当前卷积核个数Uw
Figure 122461DEST_PATH_IMAGE002
,则计算结束;若当前卷积核个数Uw
Figure 63872DEST_PATH_IMAGE002
,则将第
Figure 879119DEST_PATH_IMAGE002
+1个卷积核至最后一个卷积核作为新的权重,得到新的权重卷积核个数Uw,且Cw、Cf恢复 为原始值,返回步骤B1。
所以假设特征图的高为
Figure 273192DEST_PATH_IMAGE001
+3,宽为
Figure 700762DEST_PATH_IMAGE001
+3,通道数为
Figure 231100DEST_PATH_IMAGE001
,权重的高为
Figure 984293DEST_PATH_IMAGE021
,宽为
Figure 600082DEST_PATH_IMAGE021
,输入 通道数为
Figure 96922DEST_PATH_IMAGE001
,输出通道数为
Figure 245881DEST_PATH_IMAGE002
,输入通道并行模式能够使每一次运算都使用S个乘法器同 时工作,使乘法器利用率最大化。
如果特征图的高为
Figure 638817DEST_PATH_IMAGE001
+3,宽为
Figure 7481DEST_PATH_IMAGE001
+3,通道数为
Figure 42433DEST_PATH_IMAGE001
+1,权重的高为
Figure 547364DEST_PATH_IMAGE021
,宽为
Figure 376780DEST_PATH_IMAGE021
,输入通 道数为
Figure 232740DEST_PATH_IMAGE001
+1,输出通道数为
Figure 569918DEST_PATH_IMAGE002
,若只使用行并行模式,则特征图在计算到剩余行数小于
Figure 663776DEST_PATH_IMAGE001
时,就不能保证所有乘法器同时工作,造成运算资源浪费。若只使用输入通道并行模式,则 特征图在计算到剩余通道小于
Figure 929673DEST_PATH_IMAGE001
时,同样会造成运算单元较大的浪费。所以可先使用行并 行模式计算,待特征图计算到剩余行数小于
Figure 7350DEST_PATH_IMAGE001
时,转为输入通道并行模式,这就确保乘法器 能充分利用,减小资源浪费带来的功耗。
所述混合并行模式的计算过程为:
C1. 将特征图拆分为A、B两部分,其中A部分中特征图的行数为
Figure 384105DEST_PATH_IMAGE001
+HW-1,B部分中 特征图的行数为Hf-
Figure 863628DEST_PATH_IMAGE001
C2. 使用行并行模式计算A部分。
C3. 若B部分中特征图的行数大于
Figure 533381DEST_PATH_IMAGE001
+HW-1,则把B部分特征图作为新的特征图,得 到新的特征图行数Hf,返回步骤C1;若B部分中特征图的行数等于
Figure 98355DEST_PATH_IMAGE001
+HW-1,则使用行并行模 式计算B部分;若B部分中特征图的行数小于
Figure 278800DEST_PATH_IMAGE001
+HW-1,则使用通道并行模式计算B部分。完成 全部特征图数据的计算,计算结束。
与现有技术相比,本发明具有如下突出实质性特点和显著优点:
1、自适应选择并行模式:本发明通过并行模式判决器,能够自适应的选取合适的并行模式,使S个乘法器最大效率利用,相比传统的方案架构,减少资源浪费,处理速度有很大提升。
2、灵活性高:本发明支持具有任意大小的特征图结构和权重结构的卷积网络,对不同的卷积网络能得到最佳的计算方案。
3、混合并行模式:本发明提出混合并行模式,在同一层卷积神经网络中,使用行并行、输入通道并行两种并行模式。相比同一层使用单一的并行模式,提高了资源利用率。
附图说明
图1为支持自适应并行计算的神经网络处理电路示意图。
图2为实施例一行并行模式计算过程一示意图。
图3为实施例一行并行卷积计算过程二示意图。
图4为实施例一行并行卷积计算过程三示意图。
图5为实施例一行并行卷积计算过程四示意图。
图6为实施例二输入通道并行卷积计算过程一示意图。
图7为实施例二输入通道并行卷积计算过程二示意图。
图8为实施例二输入通道并行卷积计算过程三示意图。
图9为实施例二输入通道并行卷积计算过程四示意图。
图10为实施例三混合并行模式计算过程示意图。
图11为实施例四的特征图和权重示意图。
图12为自适应判断并行模式流程图。
图13为并行模式判决器示意图。
附图标号说明:A表示特征图,B表示权重。
具体实施方式
为了使读者对本发明的目的、技术方案及优点更加明白,以下结合实例及附图,对本发明做进一步说明。
图1为支持自适应并行计算的神经网络处理电路示意图,该电路包含指令控制器、交互单元、特征图控制器、特征图存储单元、特征图缓存单元、权重控制器、权重存储单元、权重缓存单元、处理单元阵列。
结合附图12对本实施例的自适应判断并行模式流程详细说明,在每一层神经网络计算前,指令控制器会获取当前层特征图结构和当前层权重结构两部分信息,指令控制器中的并行模式判决器根据当前层特征图结构、当前层权重结构、同时结合乘法器个数,计算行并行模式、输入通道并行模式、混合并行模式完成这一层运算各需要的操作周期数。最终选取最少操作周期数的并行模式作为当前层的并行模式,然后指令控制器将相应的并行模式指令分别发送给特征图控制器、权重控制器和处理单元阵列。特征图控制器和权重控制器会根据相应的并行模式指令将特征图存储单元和权重存储单元的数据对应的存放到各自的缓存中。处理单元阵列依据并行模式指令将特征图缓存单元和权重缓存单元中的缓存数据进行计算,然后将计算结果存入特征图存储单元。当前层神经网络计算结束后,指令控制器判断是否是最后一层神经网络,若是,则计算结束,若不是,则开始下一层神经网络的计算。
结合附图13对本实施例的并行模式判决器详细说明,所述并行模式判决器包括计算单元A、计算单元B、计算单元C、比较器、以及选择器,所述计算单元A、计算单元B、计算单元C的输入为特征图结构、权重结构、乘法器个数三组数据,其中特征图结构和权重结构两组数据由外部指令输入,对于确定的电路,乘法器个数为固定不变的常值。计算单元A、计算单元B、计算单元C根据输入的三组数据分别计算出行并行模式、输入通道并行模式、混合并行模式完成当前层运算各需要的操作周期数,然后将计算结果传输给比较器。所述比较器将输入的三组并行模式的操作周期数进行大小比较,得到最小操作周期数对应并行模式的索引(比如行并行模式操作周期数最小,输出就是0;输入通道并行模式操作周期数最小,输出就是1;混合并行模式操作周期数最小,输出就是2),将索引发送给选择器。所述选择器的输入为行并行模式指令、输入通道并行模式指令、混合并行模式指令,选择器根据索引输出对应的并行模式指令。若出现两种及两种以上并行模式的操作周期数同时为最少时,比较器优先选取行并行模式,输入通道并行模式次之。
实施例一:假设实际方案中共有144个乘法器,将这144个乘法器分为每组6个,共24组。当一层的输入特征图结构为Hf*Wf*Cf=8*8*8,权重结构为Hw*Ww*Cw*Uw=3*3*8*24。经过并行模式判决器计算,行并行模式完成这一层计算所需的操作周期为432,输入通道并行模式所需操作周期为648,混合并行模式与行并行模式所需操作周期数一致,所以选取行并行模式为当前层并模式。
其计算方法为:
(1) 参考图2,取出24个卷积核中,第一个输入通道的第一行第一列权重数据
Figure 612830DEST_PATH_IMAGE045
Figure 220528DEST_PATH_IMAGE046
、…、
Figure 7219DEST_PATH_IMAGE047
,共取出了24个权重数据。
(2)参考图2,取出特征图中第一个通道的第1行~第6行的第1列特征图数据
Figure 725776DEST_PATH_IMAGE048
Figure 179891DEST_PATH_IMAGE049
、…、
Figure 457027DEST_PATH_IMAGE050
,共取出了6个特征图数据。
(3)将24个权重数据和6个特征图数据分别做乘法。
(4)参考图3,权重数据保持不变,特征图数据向右滑动,改为取第1行~第6行的下一列特征图数据;返回步骤(3),直到完成第1行~第6行前6列的特征图数据的计算。
(5)参考图1、图4、图5,按照从左至右的顺序逐行切换权重数据,将24个卷积核中 第一个输入通道的第
Figure 731013DEST_PATH_IMAGE010
行第
Figure 253261DEST_PATH_IMAGE011
列的权重数据
Figure 561883DEST_PATH_IMAGE051
Figure 511384DEST_PATH_IMAGE052
、…、
Figure 7088DEST_PATH_IMAGE053
作为第一个输入通 道的第一行第一列的权重数据,将特征图第一个通道的第
Figure 333027DEST_PATH_IMAGE005
行第
Figure 729111DEST_PATH_IMAGE006
列的特征图数据作为第一 行第一列的特征图数据,其中
Figure 849514DEST_PATH_IMAGE005
=
Figure 363672DEST_PATH_IMAGE010
Figure 227722DEST_PATH_IMAGE006
=
Figure 979778DEST_PATH_IMAGE011
,然后返回步骤(2),直到完成一个通道特征图数据 的计算。
(6)特征图向后切换到下一个通道,并将第二个特征图通道至最后一个特征图通道作为新的特征图,权重也向后切换一个输入通道,将第二个输入通道至最后一个输入通道作为新的权重,返回步骤(1)。直到完成全部特征图数据和权重数据的计算,计算结束。
实施例二:假设实际方案中共有144个乘法器,将这144个乘法器分为每组6个,共24组。当一层的输入特征图结构为Hf*Wf*Cf=7*8*6,权重结构为Hw*Ww*Cw*Uw=3*3*6*24。经过计算,行并行模式完成这一层计算所需的操作周期为324,输入通道并行模式所需操作周期为270,混合并行模式与输入通道并行模式所需操作周期数一致。所以选取输入通道并行模式为当前层并行模式。
其计算方法为:
(1) 参考图6,取出24个卷积核中,6个输入通道的第一行第一列权重数据
Figure 536661DEST_PATH_IMAGE054
Figure 272536DEST_PATH_IMAGE055
、…、
Figure 196671DEST_PATH_IMAGE056
Figure 68812DEST_PATH_IMAGE057
Figure 531017DEST_PATH_IMAGE058
、…、
Figure 754188DEST_PATH_IMAGE059
,…,
Figure 694463DEST_PATH_IMAGE060
Figure 686689DEST_PATH_IMAGE061
、…、
Figure 83910DEST_PATH_IMAGE062
,共取出了24组 权重数据,每组权重数据包含6个权重数据。
(2)参考图6,取出特征图中6个通道的第一行第一列特征图数据
Figure 528798DEST_PATH_IMAGE063
Figure 538342DEST_PATH_IMAGE064
、…
Figure 385076DEST_PATH_IMAGE065
,共取出了6个特征图数据。
(3)令取出的24组权重数据依次和6个特征图数据做乘法。
(4)参考图7,权重数据保持不变,按照从左至右的顺序逐行切换特征图数据,返回步骤(3),直到完6个通道的前5行前6列特征图数据的计算。
(5)参考图6、图8、图9,按照从左至右的顺序逐行切换权重数据,将24个卷积核中6 个输入通道的第
Figure 189084DEST_PATH_IMAGE010
行第
Figure 386847DEST_PATH_IMAGE011
列的权重数据
Figure 934503DEST_PATH_IMAGE036
Figure 901322DEST_PATH_IMAGE037
、…、
Figure 109187DEST_PATH_IMAGE066
Figure 794246DEST_PATH_IMAGE039
Figure 145593DEST_PATH_IMAGE040
、…、
Figure 701339DEST_PATH_IMAGE067
,…,
Figure 112729DEST_PATH_IMAGE068
Figure 753926DEST_PATH_IMAGE069
、…、
Figure 141920DEST_PATH_IMAGE070
作为6个输入通道的第一行第一列的权重数据,将特征图6 个通道的第
Figure 83331DEST_PATH_IMAGE005
行第
Figure 400043DEST_PATH_IMAGE006
列的特征图数据作为第一行第一列的特征图数据,其中
Figure 528536DEST_PATH_IMAGE005
=
Figure 221685DEST_PATH_IMAGE010
Figure 17603DEST_PATH_IMAGE006
=
Figure 505216DEST_PATH_IMAGE011
;然后 返回步骤(2)。直到完成全部特征图数据和权重数据的计算。计算结束。
实施例三:假设实际方案中共有36个乘法器,将这36个乘法器分为每组6个,共6组。当一层的输入特征图结构为Hf*Wf*Cf=8*8*4,权重结构为Hw*Ww*Cw*Uw=2*2*4*6时。经过计算,行并行模式完成这一层计算所需的操作周期为224,输入通道并行模式所需操作周期为196,混合并行模式所需操作周期为140。所以选取混合并行模式为当前层并行模式。
其计算方法为:
(1)参考图10,将特征图分为A、B两部分,A部分特征图结构为7*8*4,B部分特征图结构为2*8*4。
(2) A部分特征图使用行并行模式计算,B部分特征图使用输入通道并行模式计算,全部特征图数据完成计算,计算结束。
实施例四:参考图11,对于全连接层,若输入特征图是长度为E的向量,先转化为1*1*E的3维特征图结构,若权重为E*F的2维结构,则转化为1*1*E*F的4维权重结构,再使用输入通道并行模式计算。

Claims (3)

1.一种支持自适应并行计算的神经网络处理电路,其特征在于,该处理电路包含指令控制器、交互单元、特征图控制器、特征图存储单元、特征图缓存单元、权重控制器、权重存储单元、权重缓存单元、处理单元阵列;
所述指令控制器用于接收外部输入命令,以及控制特征图控制器、权重控制器和处理单元阵列;指令控制器中设置有并行模式判决器,并行模式判决器根据当前层的特征图结构和权重结构,计算行并行模式、输入通道并行模式、混合并行模式三种并行模式完成当前层运算各需要的操作周期数,选取最少操作周期数的并行模式作为当前层的并行模式,若出现两种及两种以上并行模式的操作周期数同时为最少时,优先选取行并行模式,输入通道并行模式次之;然后指令控制器将相应的并行模式指令分别发送给特征图控制器、权重控制器和处理单元阵列;
所述交互单元与特征图存储单元、权重存储单元相连,交互单元用于与外部进行数据交互;
所述特征图存储单元用于存储交互单元传输的特征图数据;所述权重存储单元用于存储交互单元传输的权重数据;
所述特征图控制器用于接收指令控制器发送的并行模式指令,根据并行模式指令将特征图存储单元中的特征图数据整形后,存放到特征图缓存单元中;
所述权重控制器用于接收指令控制器发送的并行模式指令,根据并行模式指令将权重存储单元中的权重数据整形后,存放到权重缓存单元中;
所述处理单元阵列用于接收指令控制器发送的并行模式指令,根据并行模式指令将特征图缓存单元和权重缓存单元中的缓存数据进行计算,然后将计算结果存入特征图存储单元;
所述处理单元阵列包括S个乘法器,S个乘法器按每组N′个分为M′组;
所述特征图结构包括特征图的行数Hf,特征图的列数Wf,特征图的通道数Cf,令
Figure FDA0002734469480000011
表示特征图第k通道、i行、j列的特征图数据,其中,1≤k≤Cf,1≤i≤Hf,1≤j≤Wf;所述权重结构包括权重的行数Hw,权重的列数Ww,权重中单个卷积核的通道数,作为输入通道数Cw,权重中卷积核的个数Uw,作为输出通道数,令
Figure FDA0002734469480000012
表示权重第k′输入通道、r′输出通道、i′行、j′列的权重数据,其中1≤k′≤Cw,1≤r′≤Uw,1≤i′≤Hw,1≤j′≤Ww
所述行并行模式的计算过程为:
A1.取出前M个卷积核中,第一个输入通道的第一行第一列数据,共取出了M个权重数据;若权重中卷积核的个数Uw≤M′,则令M=Uw;若权重中卷积核的个数Uw>M′,则令M=M′;
A2.取出特征图中第一个通道中第1行~第N行的第1列特征图数据,共取出了N个特征图数据;若特征图的行数Hf≤N′+Hw-1,则令N=Hf-HW+1;若特征图的行数Hf>N′+Hw-1,则令N=N′;
A3.将M个权重数据和N个特征图数据分别做乘法;
A4.令权重数据保持不变,特征图数据向右滑动,改为取第1行~第N行的下一列特征图数据;返回步骤A3,直到完成第1行~第N行前P列的特征图数据的计算,其中P=Wf-Ww+1;此时,若当前权重数据是最后一行最后一列,则跳到步骤A6;若当前权重数据不是最后一行最后一列,则进行下一步;
A5.按照从左至右的顺序逐行切换权重数据,将前M个卷积核中第一个输入通道的第i′行第j′列的权重数据看作第一个输入通道的第一行第一列的权重数据,将特征图第一个通道的第i行第j列的特征图数据看作第一行第一列的特征图数据,其中i=i′,j=j′,然后返回步骤A2;
A6.若当前特征图的行数Hf>N′+Hw-1,则将当前特征图第N′+1行至最后一行看作新的特征图,得到新的特征图行数Hf,且返回步骤A1;若当前特征图的行数Hf≤N′+Hw-1,则第一个通道的特征图数据全部计算完成,进行下一步;
A7.若当前特征图通道数Cf=1,则跳到步骤A8;若当前特征图通道数Cf>1,则特征图向后切换到下一个通道,并将当前特征图通道至最后一个特征图通道看作新的特征图,得到新的特征图通道数Cf,权重也向后切换一个输入通道,将当前权重输入通道至最后一个输入通道看作新的权重,得到新的权重输入通道数Cw,返回步骤A1;
A8.若当前卷积核个数Uw≤M′,则计算结束;若当前卷积核个数Uw>M′,则将当前第M′+1个卷积核至最后一个卷积核看作新的卷积核,得到新的卷积核个数Uw,且Cw、Cf恢复为原始值,返回步骤A1;
所述输入通道并行模式的计算过程为:
B1.取出前M个卷积核中,前N个输入通道的第一行第一列权重数据,共取出了M组权重数据,每组包含N个权重数据;若权重的输入通道数Cw≤N′,则令N=Cw;若权重的输入通道数Cw>N′,则令N=N′;若权重中卷积核的个数Uw≤M′,则令M=Uw;若权重中卷积核的个数Uw>M′,则令M=M′;
B2.取出特征图中前N个通道的第一行第一列特征图数据
Figure FDA0002734469480000021
共取出了N个特征图数据;若特征图的通道数Cf≤N′,则令N=Cf;若特征图的通道数Cf>N′,则令N=N′;
B3.将取出的M组权重数据依次和N个特征图数据做乘法;
B4.令权重数据保持不变,按照从左至右的顺序逐行切换特征图数据,返回步骤B3,直到完成前N个通道的前Q行前P列特征图数据的计算,其中P=Wf-Ww+1,Q=Hf-Hw+1;此时,若当前权重数据是最后一行最后一列,则跳到步骤B6;若当前权重数据不是最后一行最后一列,则进行下一步;
B5.按照从左至右的顺序逐行切换权重数据,将前M个卷积核中前N个输入通道的第i′行第j′列的权重数据看作前N个输入通道的第一行第一列的权重数据,将特征图前N个通道的第i行第j列的特征图数据看作第一行第一列的特征图数据,其中i=i′,j=j′,然后返回步骤B2;
B6.若当前特征图通道数Cf≤N′,则前M个卷积核的所有权重数据已完成计算,进行下一步;若当前特征图通道数Cf>N′,则将当前特征图第N+1个通道至最后一个特征图通道看作新的特征图,得到新的特征图通道数Cf,将权重前M个卷积核的第N+1个输入通道至最后一个输入通道看作新的权重,得到新的权重输入通道数Cw,返回步骤B1;
B7.若当前卷积核个数Uw≤M′,则计算结束;若当前卷积核个数Uw>M′,则将第M′+1个卷积核至最后一个卷积核看作新的权重,得到新的权重卷积核个数Uw,且Cw、Cf恢复为原始值,返回步骤B1;
所述混合并行模式的计算过程为:
C1.将特征图拆分为A、B两部分,其中A部分中特征图的行数为N′+HW-1,B部分中特征图的行数为Hf-N′;
C2.使用行并行模式计算A部分;
C3.若B部分中特征图的行数大于N′+HW-1,则把B部分特征图看作新的特征图,得到新的特征图行数Hf,返回步骤C1;若B部分中特征图的行数等于N′+HW-1,则使用行并行模式计算B部分;若B部分中特征图的行数小于N′+HW-1,则使用通道并行模式计算B部分;完成全部特征图数据的计算,计算结束。
2.如权利要求1所述的一种支持自适应并行计算的神经网络处理电路,其特征在于,所述并行模式判决器包括计算单元A、计算单元B、计算单元C、比较器、以及选择器,所述计算单元A、计算单元B、计算单元C的输入为特征图结构、权重结构、乘法器个数三组数据,其中特征图结构和权重结构两组数据由外部指令输入,对于确定的电路,乘法器个数为固定不变的常值;计算单元A、计算单元B、计算单元C根据输入的三组数据分别计算行并行模式、输入通道并行模式、混合并行模式完成当前层运算各需要的操作周期数,然后将计算结果传输给比较器;若出现两种及两种以上并行模式的操作周期数同时为最少时,比较器优先选取行并行模式,输入通道并行模式次之;所述比较器将输入的三组并行模式的操作周期数进行大小比较,得到最小操作周期数对应并行模式的索引,将索引发送给选择器;所述选择器的输入为行并行模式指令、输入通道并行模式指令、混合并行模式指令,选择器根据索引输出对应的并行模式指令。
3.如权利要求1所述的一种支持自适应并行计算的神经网络处理电路,其特征在于,对于全连接层,若输入特征图是长度为E的向量,则转化为行数*列数*通道数=1*1*E的特征图结构,若权重为E*F的2维结构,则转化为行数*列数*输入通道数*输出通道数=1*1*E*F的权重结构,再使用输入通道并行模式计算。
CN202010794982.1A 2020-08-10 2020-08-10 一种支持自适应并行计算的神经网络处理电路 Active CN111738432B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010794982.1A CN111738432B (zh) 2020-08-10 2020-08-10 一种支持自适应并行计算的神经网络处理电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010794982.1A CN111738432B (zh) 2020-08-10 2020-08-10 一种支持自适应并行计算的神经网络处理电路

Publications (2)

Publication Number Publication Date
CN111738432A CN111738432A (zh) 2020-10-02
CN111738432B true CN111738432B (zh) 2020-12-29

Family

ID=72658288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010794982.1A Active CN111738432B (zh) 2020-08-10 2020-08-10 一种支持自适应并行计算的神经网络处理电路

Country Status (1)

Country Link
CN (1) CN111738432B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115459896B (zh) * 2022-11-11 2023-03-03 北京超摩科技有限公司 多通道数据传输的控制方法、控制系统、介质及芯片

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN107918794A (zh) * 2017-11-15 2018-04-17 中国科学院计算技术研究所 基于计算阵列的神经网络处理器
CN108804139A (zh) * 2017-06-16 2018-11-13 上海兆芯集成电路有限公司 可编程设备及其操作方法和计算机可用介质
CN109255434A (zh) * 2018-10-15 2019-01-22 旺微科技(上海)有限公司 一种卷积神经网络中计算资源的调度方法及装置
CN109669772A (zh) * 2018-12-28 2019-04-23 第四范式(北京)技术有限公司 计算图的并行执行方法和设备
CN110084739A (zh) * 2019-03-28 2019-08-02 东南大学 一种基于cnn的画质增强算法的fpga并行加速系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109961136B (zh) * 2017-12-14 2020-05-19 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993301B (zh) * 2017-12-29 2020-05-19 中科寒武纪科技股份有限公司 神经网络训练装置及相关产品
EP3803693A4 (en) * 2018-05-24 2022-06-22 Nokia Technologies OY METHOD AND DEVICE FOR COMPUTER VIEWING
CN109034373B (zh) * 2018-07-02 2021-12-21 鼎视智慧(北京)科技有限公司 卷积神经网络的并行处理器及处理方法
CN110766127B (zh) * 2018-07-25 2022-09-23 赛灵思电子科技(北京)有限公司 神经网络计算专用电路及其相关计算平台与实现方法
US11537856B2 (en) * 2018-08-08 2022-12-27 Applied Brain Research Inc. Digital circuits for evaluating neural engineering framework style neural networks
CN109902818B (zh) * 2019-01-15 2021-05-25 中国科学院信息工程研究所 一种面向深度学习训练任务的分布式加速方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN108804139A (zh) * 2017-06-16 2018-11-13 上海兆芯集成电路有限公司 可编程设备及其操作方法和计算机可用介质
CN107918794A (zh) * 2017-11-15 2018-04-17 中国科学院计算技术研究所 基于计算阵列的神经网络处理器
CN109255434A (zh) * 2018-10-15 2019-01-22 旺微科技(上海)有限公司 一种卷积神经网络中计算资源的调度方法及装置
CN109669772A (zh) * 2018-12-28 2019-04-23 第四范式(北京)技术有限公司 计算图的并行执行方法和设备
CN110084739A (zh) * 2019-03-28 2019-08-02 东南大学 一种基于cnn的画质增强算法的fpga并行加速系统

Also Published As

Publication number Publication date
CN111738432A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN108241890B (zh) 一种可重构神经网络加速方法及架构
CN108920280B (zh) 一种单用户场景下的移动边缘计算任务卸载方法
CN109543830B (zh) 一种用于卷积神经网络加速器的拆分累加器
CN108090560A (zh) 基于fpga的lstm递归神经网络硬件加速器的设计方法
CN109409510B (zh) 神经元电路、芯片、系统及其方法、存储介质
CN108647773B (zh) 一种可重构卷积神经网络的硬件互连系统
KR101803409B1 (ko) 다중 계층 신경망 컴퓨팅 장치 및 방법
CN110390383A (zh) 一种基于幂指数量化的深度神经网络硬件加速器
CN112633490B (zh) 执行神经网络模型的数据处理装置、方法及相关产品
CN111898733A (zh) 一种深度可分离卷积神经网络加速器架构
CN113033794B (zh) 基于深度可分离卷积的轻量级神经网络硬件加速器
CN111738432B (zh) 一种支持自适应并行计算的神经网络处理电路
CN111831359A (zh) 权重精度配置方法、装置、设备及存储介质
CN111831354A (zh) 数据精度配置方法、装置、芯片、芯片阵列、设备及介质
WO2022028232A1 (zh) 执行lstm神经网络运算的装置和方法
CN114519425A (zh) 一种规模可扩展的卷积神经网络加速系统
CN113688988A (zh) 精度调整方法及装置、存储介质
Phan et al. Efficiency enhancement of evolutionary neural architecture search via training-free initialization
CN111831356B (zh) 权重精度配置方法、装置、设备及存储介质
CN108647780A (zh) 面向神经网络的可重构池化操作模块结构及其实现方法
Zhang et al. Hardware-software codesign of weight reshaping and systolic array multiplexing for efficient CNNs
CN112862083A (zh) 一种边缘环境下的深度神经网络推断方法及装置
CN112764932B (zh) 基于深度强化学习的计算密集型工作负载高能效分配方法
CN109582911A (zh) 用于实行卷积的计算装置及实行卷积的计算方法
CN112580774A (zh) 一种面向可重构神经网络处理器的神经网络布局方法

Legal Events

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

Effective date of registration: 20220629

Address after: 401329 building 4, No. 15, Fengsheng Road, Jinfeng Town, high tech Zone, Jiulongpo District, Chongqing

Patentee after: Chongqing Lianxin Zhikang Biotechnology Co.,Ltd.

Address before: 611731, No. 2006, West Avenue, Chengdu hi tech Zone (West District, Sichuan)

Patentee before: University of Electronic Science and Technology of China

TR01 Transfer of patent right