CN110555512A - 一种二值卷积神经网络数据重用方法及装置 - Google Patents

一种二值卷积神经网络数据重用方法及装置 Download PDF

Info

Publication number
CN110555512A
CN110555512A CN201910696328.4A CN201910696328A CN110555512A CN 110555512 A CN110555512 A CN 110555512A CN 201910696328 A CN201910696328 A CN 201910696328A CN 110555512 A CN110555512 A CN 110555512A
Authority
CN
China
Prior art keywords
data
unit
reorganization
period
storage unit
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
CN201910696328.4A
Other languages
English (en)
Other versions
CN110555512B (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.)
Beihang University
Beijing University of Aeronautics and Astronautics
Original Assignee
Beijing University of Aeronautics and Astronautics
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 Beijing University of Aeronautics and Astronautics filed Critical Beijing University of Aeronautics and Astronautics
Priority to CN201910696328.4A priority Critical patent/CN110555512B/zh
Publication of CN110555512A publication Critical patent/CN110555512A/zh
Application granted granted Critical
Publication of CN110555512B publication Critical patent/CN110555512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/08Learning methods

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)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开了一种二值卷积神经网络数据重用方法及装置,解决了神经网络在计算过程中对于同一个数据重复读取的问题。一种二值卷积神经网络的数据重用方法,包含以下步骤:读入当前卷积运算的特征图数据,判断卷积层为隐含层或输入层;若卷积层为隐含层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的数据重新排列组合,在下一周期重用;将输出的数据与卷积核进行运算。本发明还提供了二值化神经网络的数据重用装置,包含重组单元,用于将重用的数据进行排列组合。暂存单元,用于存储需要重用的数据。本发明有效实现了二值卷积神经网络在计算过程中数据的重用,在提高二值卷积神经网路的数据调度效率和降低功耗方面都有较大优势。

Description

一种二值卷积神经网络数据重用方法及装置
技术领域
本申请涉及深度学习技术领域,尤其涉及一种用于二值卷积神经网络的数据重用方法及装置。
背景技术
卷积神经网络从提出至今,在图像识别、目标检测等任务中都取得了优异的成绩。然而卷积神经网络通常都包含大量的参数以及巨大的计算量,这使其难以直接应用于边缘侧计算中。
二值卷积神经网络是为了解决上述问题而提出的,二值卷积神经网络通过将普通卷积神经网络中的图像、权重、偏置等全部或部分二值化来降低网络对硬件的要求,使其更适用于边缘计算。
二值神经网络相对于8bit、16bit定点数据的神经网络来说,对存储空间的要求分别降低为原来的1/8、1/16,这显著降低了网络运算过程中频繁从存储器中读取数据的功耗,同时使得将全部网络参数存在片上成为了可能。
二值卷积神经网络通过将数据量化为1bit,进而降低了从存储器读取数据的功耗。然而,量化方法并不能解决网络在运算过程中对于同一个数据需要频繁重复的读取的问题。例如,对于同一个特征图数据,在滑动卷积的过程中,二值卷积神经网络仍然需要重复多次的对该数据进行读取,这使得网络的数据调度效率和功耗不能达到最优。
发明内容
本发明提出一种二值卷积神经网络数据重用方法及装置,解决了神经网络在计算过程中对于同一个数据重复读取的问题。
本申请实施例提供一种二值卷积神经网络的数据重用方法,包含以下步骤:
读入当前卷积运算的特征图数据,判断卷积层为隐含层或输入层;
若卷积层为隐含层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的部分重新排列组合,在下一周期重用;
所述重用,是指后一组或后几组本周期输送的部分数据直接输送或经过暂存后输送至前一组在后续周期使用;
所述一周期为一字节数据输出的时间,一字节数据的个数为8个;
卷积运算时,n×n大小的卷积核在m×m大小的特征图上滑动截取a组n×n个数据,每行数据输送数据的通道不同,第一通道按照从左到右,从上到下的顺序每个周期输出一字节,截取第二通道和第三通道第一周期的数据,重新排列组合后,在一周期后作为第一通道的第二组数据重用,以此类推,在第一周期所有通道的数据输入后,只需要每周期补充第a通道的全部后续数据和第a-1通道的部分后续数据,其他通道的数据通过数据重用获得;所述每行,卷积核在特征图上平移为同一行,下移为换行;
将输出的数据与卷积核进行运算。
进一步地,若为输入层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的数据暂存,通过卷积核大小确定暂存的周期;
卷积运算时,n×n大小的卷积核在m×m大小的特征图上滑动截取a组n×n个数据,每行数据输送数据的通道不同,第一通道按照从左到右,从上到下的顺序每个周期输出一个数据进行计算,第二通道的第一个数据与第一通道的第n个数据相同,第二通道的第一个数据在n-1个周期后作为重用数据输入第一通道,以此类推,每一个重用数据都要暂存n-1个周期。
进一步地,在将数据输送至计算单元进行运算之前,所述方法还包括:对重新排列组合的数据进行保持或置0。
本申请实施例还提供一种二值卷积神经网络数据重用装置,包含外部存储单元、计算阵列,还包含数据重组单元和暂存单元。
所述外部存储单元,用于存储m×m的特征图数据并输出。
所述数据重组单元,分为第一数据重组单元、最后数据重组单元和a-2个中间数据重组单元,共a个数据重组单元。
所述第一数据重组单元,用于外部存储单元的输送的数据与暂存单元或后一个数据重组单元输送的数据合路,输送至计算阵列。
所述最后数据重组单元,用于将外部存储单元的数据分路,将前一个中间数据重组单元的重用数据输送至暂存单元或前一个数据存储单元,将全部数据输送至计算阵列。
所述中间数据重组单元,既用于将外部存储单元的输送的数据与暂存单元或后一个数据重组单元输送的数据合路,又用于将外部存储单元的数据分路。
所述暂存单元,仅在卷积层为输入层时使用,用于接收后一个数据重组单元的数据,暂存n-1周期后输送给对应的数据重组单元,共a-1个暂存单元。
所述计算阵列,接收数据重组单元输送的特征图数据与n×n的卷积核进行卷积运算,计算出的数据按顺序每n×n个进入一个计算单元,组成一个a×a的计算阵列。
所述a=m-n+1;m>n。
进一步地,所述特征图数据为F11、F12、F13...F1m、F21...Fmm共m×m个数据,用于卷积层为隐含层的时序为:
第一周期,外部存储单元输送包括F11在内的8个数据至第一数据存储模块,输送F21在内的8个数据至第二数据存储模块,以此类推,输送Fa1在内的8个数据至最后数据重组单元。
第二周期,第一数据重组单元将包括F11在内的8个数据输送至计算阵列,第二数据重组单元将F21在内的8个数据输送至计算阵列,第三数据重组单元将F31在内的8个数据模块输送至计算阵列,第二数据重组单元和第三数据重组单元中的数据能被第一数据重组单元重用的数据输送至第一数据重组单元。以此类推,最后数据重组单元将Fa1在内的8个数据输送至上计算阵列,将这些数据中与第a-2数据重组单元下一周期输送数据相同的数据输送至第a-2数据重组单元,将与a-1数据重组单元下一周期输送的数据相同的数据输送至第a-1数据重组单元,外部存储单元将包括第9个数据在内的后8个数据输送至最后数据重组单元,所述数据重组单元将接收的数据排列组合;所述排列组合是将不同数据重组单元输入的数据按照特征图的顺序排列。
第三周期第一数据重组单元将第二周期排列组合后的8个数据输送至计算阵列,以此类推;第二数据重组单元和第三数据重组单元中的数据能被第一数据重组单元重用的数据输送至第一数据重组单元。以此类推。
数据重组单元输送数据的的周期为n×n/8,不计算余数;所述最后数据重组单元需要外部存储单元每周期输送一字节数据,所述第a-1数据重组单元需要外部存储单元输送部分数据,直至第n×n/8周期。
进一步地,所述特征图数据为F11、F12、F13...F1m、F21...Fmm共m×m个数据,用于卷积层为输入层的时序为:
第一周期,外部存储单元输送特征图数据F11至第一数据重组单元,以此类推,送Fa1至第a数据重组单元。
第n周期,外部存储单元输送特征图数据F1n至第一数据重组单元,以此类推,送Fan至第a数据重组单元。
除了第一数据重组单元以外所有数据重组单元得到外部存储单元输送的特征图数据在一周期后均输送至前一个暂存单元。
第n+1周期,外部存储单元输送特征图F(a+1)1至第a数据重组单元;第一暂存单元输送F21至第一数据重组单元,以此类推,第a-1暂存单元输送Fa1至第a-1数据重组单元。
接下来每周期,外部存储单元按顺序输送特征图F(a+1)2...F(a+1)n、F(a+2)1...Fmn至第a数据重组单元,直至第n×n周期。
在数据重组单元得到特征图数据的下一周期,将该特征图数据输送至计算阵列。
优选地,还包含权重控制单元。
所述权重控制单元,用于接收数据重组单元的输出数据,根据权重对其进行保持或置0操作,并传输至计算阵列。
优选地,所述权重控制装置,包含两个输入端口,一端接收来自数据重组单元输出的数据,另一端接收权重作为控制信号。
优选地,所述权重控制装置接收的权重都为0时,将接收的数据置0后输出至计算阵列,所述权重控制装置接收的权重不全为0,则将接受而数据直接输出至计算阵列。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本发明提供的二值卷积神经网络数据重用方法及装置,有效实现了二值卷积神经网络在计算过程中数据的重用,在提高二值卷积神经网路的数据调度效率和降低功耗方面都有较大优势。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为一种二值卷积神经网络的数据重用方法的隐含层实施例流程图;
图2为一种二值卷积神经网络的数据重用方法的输入层实施例流程图;
图3为本发明隐含层包含对数据进行保持或置0步骤的方法实施例流程图;
图4为本发明输入层包含对数据进行保持或置0步骤的方法实施例流程图;
图5为一种二值卷积神经网络的数据重用装置的结构示意图;
图6为另一种二值卷积神经网络的数据重用装置的结构示意图;
图7为二值卷积神经网络的卷积计算实施例示意图;
图8为二值卷积神经网络的隐含层数据重用装置时序图;
图9为二值卷积神经网络的输入层数据重用装置时序图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图1为一种二值卷积神经网络的数据重用方法的隐含层实施例流程图。
本申请实施例提出一种二值卷积神经网络的数据重用方法,包含以下步骤:
步骤101、读入当前卷积运算的特征图数据,判断卷积层为隐含层或输入层。
在步骤101中,因为待卷积的特征图难以一次性在计算单元中完成卷积运算,故将图像或特征图进行切片,然后再分片输入;步骤101是读入分片后卷积运算所需的图像或特征图数据。整个卷积层使用分片输入,一个计算单元一次输入的数据,根据卷积层是隐含层或输入层而变化,第一次卷积运算的卷积层为输入层,输入层的数据较大,因此一个计算单元一次只输入一个数据。后续的卷积层为隐含层,隐含层的数据为1或0,因此一个计算单元一次可以输入多个数据。两种不同的卷积层重用的方法不同。所述分片输入,例如,输入图像是224×224大小的图像,其分成好几个14×14大小的部分,每次计算一个14×14的部分。
步骤102、若卷积层为隐含层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的数据重新排列组合,在下一周期重用。
所述重用,是指后一组或后几组本周期输送的部分数据输送至前一组下一周期使用;
所述一周期为一字节数据输入的时间,一字节数据的数据个数根据字节的字节数确定,一字节输送8个数据;所述一字节数据为一组数据同一时间输出的数据;
卷积运算时,n×n大小的卷积核在m×m大小的特征图上滑动截取a组n×n个数据,每行数据输送数据的通道不同,第一通道按照从左到右,从上到下的顺序每个周期输出一字节,截取第二通道和第三通道第一周期的数据,重新排列组合后,在一周期后作为第一通道的第二组数据重用,以此类推,在第一周期所有通道的数据输入后,只需要每周期补充第a通道的全部后续数据和第a-1通道的部分后续数据,其他通道的数据通过数据重用获得;所述每行,卷积核在特征图上平移为同一行,下移为换行;
例如,一个7×7的特征图,5×5的卷积核:
F<sub>11</sub> F<sub>12</sub> F<sub>13</sub> F<sub>14</sub> F<sub>15</sub> F<sub>16</sub> F<sub>17</sub>
F<sub>21</sub> F<sub>22</sub> F<sub>23</sub> F<sub>24</sub> F<sub>25</sub> F<sub>26</sub> F<sub>27</sub>
F<sub>31</sub> F<sub>32</sub> F<sub>33</sub> F<sub>34</sub> F<sub>35</sub> F<sub>36</sub> F<sub>37</sub>
F<sub>41</sub> F<sub>42</sub> F<sub>43</sub> F<sub>44</sub> F<sub>45</sub> F<sub>46</sub> F<sub>47</sub>
F<sub>51</sub> F<sub>52</sub> F<sub>53</sub> F<sub>54</sub> F<sub>55</sub> F<sub>56</sub> F<sub>57</sub>
F<sub>61</sub> F<sub>62</sub> F<sub>63</sub> F<sub>64</sub> F<sub>65</sub> F<sub>66</sub> F<sub>67</sub>
F<sub>71</sub> F<sub>72</sub> F<sub>73</sub> F<sub>74</sub> F<sub>75</sub> F<sub>76</sub> F<sub>77</sub>
计算阵列:
PE<sub>1</sub> PE<sub>2</sub>
PE<sub>4</sub> PE<sub>5</sub>
PE<sub>7</sub> PE<sub>8</sub>
PE1需要的特征图数据为:
PE4需要的特征图数据为:
F<sub>21</sub> F<sub>22</sub> F<sub>23</sub> F<sub>24</sub> F<sub>25</sub>
F<sub>31</sub> F<sub>32</sub> F<sub>33</sub> F<sub>34</sub> F<sub>35</sub>
F<sub>41</sub> F<sub>42</sub> F<sub>43</sub> F<sub>44</sub> F<sub>45</sub>
F<sub>51</sub> F<sub>52</sub> F<sub>53</sub> F<sub>54</sub> F<sub>55</sub>
F<sub>61</sub> F<sub>62</sub> F<sub>63</sub> F<sub>64</sub> F<sub>65</sub>
PE7需要的特征图数据为:
F<sub>31</sub> F<sub>32</sub> F<sub>33</sub> F<sub>34</sub> F<sub>35</sub>
F<sub>41</sub> F<sub>42</sub> F<sub>43</sub> F<sub>44</sub> F<sub>45</sub>
F<sub>51</sub> F<sub>52</sub> F<sub>53</sub> F<sub>54</sub> F<sub>55</sub>
F<sub>61</sub> F<sub>62</sub> F<sub>63</sub> F<sub>64</sub> F<sub>65</sub>
F<sub>71</sub> F<sub>72</sub> F<sub>73</sub> F<sub>74</sub> F<sub>75</sub>
例如,一字节的字节数为一字节,则PE1第一周期接收的数据为F11、F12、F13、F14、F15、F21、F22、F23。第二周期接收的数据为F24、F25、F31、F32、F33、F34、F35、F41。而PE4第一周期接收的数据为F21、F22、F23、F24、F25、F31、F32、F33,因此不能满足用PE4第一周期接收的数据作为PE1第二周期的重用数据,而PE7第一周期接收的数据为F31、F32、F33、F34、F35、F41、F42、F43。因此将PE4的F24、F25、F31、F32、F33,PE7的F34、F35、F41重新排列组合,作为PE1第二周期接收的数据,完成重用。
步骤103、将输出的数据与卷积核进行运算。
实施例2
图2为一种二值卷积神经网络的数据重用方法的输入层实施例流程图。
本申请实施例提出一种二值卷积神经网络的数据重用方法,包含以下步骤:
步骤101、读入当前卷积运算的特征图数据,判断卷积层为隐含层或输入层。
步骤104、若为输入层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的数据暂存,通过卷积核大小确定暂存的周期。
卷积运算时,n×n大小的卷积核在m×m大小的特征图上滑动截取a组n×n个数据,每行数据输送数据的通道不同,第一通道按照从左到右,从上到下的顺序每个周期输出一个数据进行计算,第二通道的第一个数据与第一通道的第n个数据相同,第二通道的第一个数据在n-1个周期后作为重用数据输入第一通道,以此类推,每一个重用数据都要暂存n-1个周期。
例如,所述卷积核大小为3×3,需要暂存的周期为2个周期。所述卷积核大小为5×5,需要暂存的周期为4个周期。
例如,一个5×5的特征图,3×3的卷积核:
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55
计算阵列:
PE<sub>1</sub> PE<sub>2</sub>
PE<sub>3</sub> PE<sub>4</sub>
数据重用是把某一行的PE的特征图数据给其上一行的PE使用。对于卷积运算来说,PE1需要的特征图数据为:
11 12 13
21 22 23
31 32 33
PE3需要的特征图数据为:
21 22 23
31 32 33
41 42 43
可以看出,31、32、33、41、42、43是两个PE之间数据重复的部分,那么对于一个3×3卷积核的卷积运算来说,需要9个周期进行卷积运算,对于PE1,其依次需要的特征图数据为:
周期 1 2 3 4 5 6 7 8 9
特征图数据 11 12 13 21 22 23 31 32 33
对于PE3,其需要的特征图数据依次为:
周期 1 2 3 4 5 6 7 8 9
特征图数据 21 22 23 31 32 33 41 42 43
可以看出,在前3个周期,两个PE需要的特征图数据是不同的,但是3个周期之后,PE1需要的数据就是PE3之前用过的数据。即PE1在第4个周期需要的数据是PE3在第1个周期时的数据。
所以,通过将PE3的特征图数据进行暂存2个周期后,再输送给PE1即可完成数据重用。
当一个卷积核的卷积完成后,卷积核在特征图上滑动时,重复上述过程完成数据重用。
步骤103、将输出的数据与卷积核进行运算。
实施例3
图3为本发明隐含层包含对数据进行保持或置0步骤的方法实施例流程图。
步骤101、读入当前卷积运算的特征图数据,判断卷积层为隐含层或输入层。
步骤102、若卷积层为隐含层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的数据重新排列组合,在下一周期重用。
步骤105、重新排列组合的数据进行保持或置0。
在步骤105中,为了进一步减少信号的翻转率,降低功耗,当卷积核都为0时,将组合好的数据都置0;当卷积核不全为0时,组合好的数据保持不变。
步骤103、将输出的数据与卷积核进行运算。
实施例4
图4为本发明输入层包含对数据进行保持或置0步骤的方法实施例流程图。
步骤101、读入当前卷积运算的特征图数据,判断卷积层为隐含层或输入层。
步骤104、若为输入层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的部分暂存,通过卷积核大小确定暂存的周期。
步骤105、重新排列组合的数据进行保持或置0。
步骤103、将输出的数据与卷积核进行运算。
实施例5
图5为一种二值卷积神经网络的数据重用装置的结构示意图。
本申请实施例还提供一种二值卷积神经网络数据重用装置,包含外部存储单元11、计算阵列12,还包含数据重组单元13和暂存单元14;
所述外部存储单元,用于存储m×m的特征图数据并输出;
所述数据重组单元,分为第一数据重组单元、最后数据重组单元和a-2个中间数据重组单元,共a个数据重组单元;
所述第一数据重组单元,用于外部存储单元的输送的数据与暂存单元或后一个数据重组单元输送的数据合路,输送至计算阵列;
所述最后数据重组单元,用于将外部存储单元的数据分路,将前一个中间数据重组单元的重用数据输送至暂存单元或前一个数据存储单元,将全部数据输送至计算阵列;
所述中间数据重组单元,既用于将外部存储单元的输送的数据与暂存单元或后一个数据重组单元输送的数据合路,又用于将外部存储单元的数据分路;
所述暂存单元,仅在卷积层为输入层时使用,用于接收后一个数据重组单元的数据,暂存n-1周期后输送给对应的数据重组单元,共a-1个暂存单元;
所述计算阵列,接收数据重组单元输送的特征图数据与n×n的卷积核进行卷积运算,计算出的数据按顺序每n×n个进入一个计算单元,组成一个a×a的计算阵列;
所述a=m-n+1;m>n。
例如,5×5的计算阵列,卷积核为3×3;数据重组装置与计算阵列的行数一致,暂存单元装置的个数为数据重组装置的个数减1。在此例中,数据重组装置为5个,暂存单元装置的个数为4个。特别的,数据重组装置1~5各自对应计算阵列中的1~5行,即数据重组装置1负责第1行计算单元所需的数据,依次类推。
对于输入层的卷积运算,此时数据通路1、2、5、6工作。在前3个计算周期中,数据重组单元接收来自外部存储装置输入的图像数据,随后输出给权重控制装置。3个周期后,数据重组装置1~4仅接收来自暂存单元装置的数据,不再接收外部存储装置的数据,此时仅数据重组装置5接收外部存储装置的数据。
对于后续各隐含层的卷积运算,此时数据通路1、3、4、5、6工作。即各数据重组装置不再通过暂存单元装置传递数据,而是直接互相传递数据,进而完成数据的重用。此时在卷积运算的第一个周期,每个数据重组单元接收来自外部存储装置输入的特征图数据,随后输出给权重控制装置。此后的每个运算周期,只有数据重组单元4、5需要从外部存储装置接收数据。
在全部运算过程中,数据通路7、8始终工作。
进一步地,还包含权重控制单元15;
所述权重控制单元,用于接收数据重组单元的输出数据,根据权重对其进行保持或置0操作,并传输至计算阵列。
所述权重控制装置,包含两个输入端口,一端接收来自数据重组单元输出的数据,另一端接收权重作为控制信号。所述权重控制装置接收的权重都为0时,将接收的数据置0后输出至计算阵列,所述权重控制装置接收的权重不全为0,则将接受而数据直接输出至计算阵列。
需要说明的是,所述输入层的卷积运算接收来自暂存单元的数据,所述后续隐含层的卷积运算不接收来自暂存单元的数据。
实施例6
图6为另一种二值卷积神经网络的数据重用装置的结构示意图;
例如,所述卷积核为2×2的卷积核,特征图为3×3的特征图。根据公式:
a=m-n+1 (1)
计算阵列为2×2的阵列。因此有两个数据重组单元,一个暂存单元。
所述外部存储单元将卷积核与特征图的第一行计算数据传输至第一数据重组单元,将卷积核与特征图的第二行计算数据传输至第二数据重组单元,第二数据重组单元将数据传输至暂存单元和计算阵列。第一数据重组单元接收暂存单元的数据,并将数据传输至计算阵列。
图7为二值卷积神经网络的卷积计算实施例示意图。
图a为卷积核在特征图上截取的第一组数据;图b为卷积核在特征图上截取的第二组数据;图c为卷积核在特征图上截取的第三组数据;图d为卷积核在特征图上截取的第四组数据。
实施例
图8为二值卷积神经网络的隐含层数据重用装置时序图;
所述特征图数据为F11、F12、F13...F1m、F21...Fmm共m×m个数据,用于卷积层为隐含层的时序为:
第一周期,外部存储单元输送包括F11在内的8个数据至第一数据存储模块,输送F21在内的8个数据至第二数据存储模块,以此类推,输送Fa1在内的8个数据至最后数据重组单元。
第二周期,第一数据重组单元将包括F11在内的8个数据输送至计算阵列,第二数据重组单元将F21在内的8个数据输送至计算阵列,第三数据重组单元将F31在内的8个数据模块输送至计算阵列,第二数据重组单元和第三数据重组单元中的数据能被第一数据重组单元重用的数据输送至第一数据重组单元。以此类推,最后数据重组单元将Fa1在内的8个数据输送至上计算阵列,将这些数据中与第a-2数据重组单元下一周期输送数据相同的数据输送至第a-2数据重组单元,将与a-1数据重组单元下一周期输送的数据相同的数据输送至第a-1数据重组单元,外部存储单元将包括第9个数据在内的后8个数据输送至最后数据重组单元,所述数据重组单元将接收的数据排列组合;所述排列组合是将不同数据重组单元输入的数据按照特征图的顺序排列。
第三周期第一数据重组单元将第二周期排列组合后的8个数据输送至计算阵列,以此类推;第二数据重组单元和第三数据重组单元中的数据能被第一数据重组单元重用的数据输送至第一数据重组单元。以此类推。
数据重组单元输送数据的的周期为n×n/8,不计算余数;所述最后数据重组单元需要外部存储单元每周期输送一字节数据,所述第a-1数据重组单元需要外部存储单元输送部分数据,直至第n×n/8周期。
例如,一字节为一个字节的数据,5×5的卷积核与7×7的特征图,其隐含层时序图关系为:
周期1,外部存储单元输送F11、F12、F13、F14、F15、F21、F22、F23至第一数据重组单元;输送F21、F22、F23、F24、F25、F31、F32、F33至第二数据重组单元;输送F31、F32、F33、F34、F35、F41、F42、F43至第三数据重组单元。
周期2第一数据重组单元将F11、F12、F13、F14、F15、F21、F22、F23输送至计算阵列;第二数据重组单元将F24、F25、F31、F32、F33输送至第一数据重组单元,将F21、F22、F23、F24、F25、F31、F32、F33输送至计算阵列,外部存储单元输送F44、F45、F51至第二数据重组单元;第三数据重组单元将F34、F35、F41输送至第一数据重组单元,将F34、F35、F41、F42、F43输送至第二数据重组单元,将F31、F32、F33、F34、F35、F41、F42、F43输送至计算阵列,外部存储单元输送F44、F45、F51、F52、F53、F54、F55、F61至第三数据重组单元。
周期3第一数据重组单元将F24、F25、F31、F32、F33、F41、F42、F43输送至计算阵列;第二数据重组单元将F42、F43、F44、F45、F51输送至第一数据重组单元,将F34、F35、F41、F42、F43、F44、F45、F51输送至计算阵列,外部存储单元输送F62、F63、F64至第二数据重组单元;第三数据重组单元将F52、F53、F54输送至第一数据重组单元,将F52、F53、F54、F55、F61输送至第二数据重组单元,将F44、F45、F51、F52、F53、F54、F55、F61输送至计算阵列,外部存储单元输送F62、F63、F64、F65、F71、F72、F73、F74至第三数据重组单元。
周期4第一数据重组单元将F42、F43、F44、F45、F51、F52、F53、F54输送至计算阵列;第二数据重组单元将F55、F61、F62、F63、F64输送至第一数据重组单元,将F52、F53、F54、F55、F61、F62、F63、F64输送至计算阵列,第三数据重组单元将F65、F71、F72输送至第一数据重组单元,将F65、F71、F72、F73、F74输送至第二数据重组单元,将F62、F63、F64、F65、F71、F72、F73、F74输送至计算阵列,外部存储单元输送F75至第三数据重组单元。
周期5第一数据重组单元将F55输送至计算阵列;第二数据重组单元将F65输送至计算阵列;第三数据重组单元将F75输送至计算阵列。
图9为二值卷积神经网络的输入层数据重用装置时序图。
所述特征图数据为F11、F12、F13...F1m、F21...Fmm共m×m个数据,用于卷积层为输入层的时序为:
第一周期,外部存储单元输送特征图数据F11至第一数据重组单元,以此类推,送Fa1至第a数据重组单元。
第n周期,外部存储单元输送特征图数据F1n至第一数据重组单元,以此类推,送Fan至第a数据重组单元。
除了第一数据重组单元以外所有数据重组单元得到外部存储单元输送的特征图数据在一周期后均输送至前一个暂存单元。
第n+1周期,外部存储单元输送特征图F(a+1)1至第a数据重组单元;第一暂存单元输送F21至第一数据重组单元,以此类推,第a-1暂存单元输送Fa1至第a-1数据重组单元。
接下来每周期,外部存储单元按顺序输送特征图F(a+1)2...F(a+1)n、F(a+2)1...Fmn至第a数据重组单元,直至第n×n周期。
在数据重组单元得到特征图数据的下一周期,将该特征图数据输送至计算阵列。
例如,根据图6所述卷积神经网络的数据重用装置的结构,其输入层的时序图关系为:
周期1,外部存储单元通过接口1将F11输送至第一数据重组单元,通过接口2将F21输送至第二数据重组单元。
周期2,外部存储单元通过接口1将F12输送至第一数据重组单元,通过接口2将F22输送至第二数据重组单元。第二数据重组单元通过接口4将F21输送至暂存单元。第一数据重组单元通过接口5将F11输送至计算阵列。第二数据重组单元通过接口6将F21输送至计算阵列。
周期3,外部存储单元通过接口2将F31输送至第二数据重组单元。暂存单元通过接口3将F21输送至第一数据重组单元。第二数据重组单元通过接口4将F22输送至暂存单元。第一数据重组单元通过接口5将F12输送至计算阵列。第二数据重组单元通过接口6将F22输送至计算阵列。
周期4,外部存储单元通过接口2将F32输送至第而数据重组单元。暂存单元通过接口3将F22输送至第一数据重组单元。第二数据重组单元通过接口5将F21输送至计算阵列。第而数据重组单元通过接口6将F31输送至计算阵列。
周期5,第二数据重组单元通过接口5将F22输送至计算阵列。
第二数据重组单元通过接口6将F32输送至计算阵列。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (9)

1.一种二值卷积神经网络的数据重用方法,其特征在于,包含以下步骤:
读入当前卷积运算的特征图数据,判断卷积层为隐含层或输入层;
若卷积层为隐含层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的部分重新排列组合,在下一周期重用;
所述重用,是指后一组或后几组本周期输送的部分数据直接输送或经过暂存后输送至前一组在后续周期使用;
所述一周期为一字节数据输出的时间,一字节数据的个数为8个;
卷积运算时,n×n大小的卷积核在m×m大小的特征图上滑动截取a组n×n个数据,每行数据输送数据的通道不同,第一通道按照从左到右,从上到下的顺序每个周期输出一字节,截取第二通道和第三通道第一周期的数据,重新排列组合后,在一周期后作为第一通道的第二组数据重用,以此类推,在第一周期所有通道的数据输入后,只需要每周期补充第a通道的全部后续数据和第a-1通道的部分后续数据,其他通道的数据通过数据重用获得;所述每行,卷积核在特征图上平移为同一行,下移为换行;
将输出的数据与卷积核进行运算。
2.根据权利要求1所述二值卷积神经网络数据重用方法,其特征在于,若为输入层,卷积运算时,将卷积核在特征图上滑动截取的多组数据中重用的数据暂存,通过卷积核大小确定暂存的周期;
卷积运算时,n×n大小的卷积核在m×m大小的特征图上滑动截取a组n×n个数据,每行数据输送数据的通道不同,第一通道按照从左到右,从上到下的顺序每个周期输出一个数据进行计算,第二通道的第一个数据与第一通道的第n个数据相同,第二通道的第一个数据在n-1个周期后作为重用数据输入第一通道,以此类推,每一个重用数据都要暂存n-1个周期。
3.根据权利要求1和2所述二值卷积神经网络数据重用方法,其特征在于,在将数据输送至计算单元进行运算之前,所述方法还包括:对重新排列组合的数据进行保持或置0。
4.一种二值卷积神经网络数据重用装置,使用权利要求1~3所述方法,包含外部存储单元、计算阵列,其特征在于,还包含数据重组单元和暂存单元;
所述外部存储单元,用于存储m×m的特征图数据并输出;
所述数据重组单元,分为第一数据重组单元、最后数据重组单元和a-2个中间数据重组单元,共a个数据重组单元;
所述第一数据重组单元,用于外部存储单元的输送的数据与暂存单元或后一个数据重组单元输送的数据合路,输送至计算阵列;
所述最后数据重组单元,用于将外部存储单元的数据分路,将前一个数据重组单元的重用数据输送至暂存单元或前一个数据存储单元,将全部数据输送至计算阵列;
所述中间数据重组单元,既用于将外部存储单元的输送的数据与暂存单元或后一个数据重组单元输送的数据合路,又用于将外部存储单元的数据分路;
所述暂存单元,仅在卷积层为输入层时使用,用于接收后一个数据重组单元的数据,暂存n-1周期后输送给对应的数据重组单元,共a-1个暂存单元;
所述计算阵列,接收数据重组单元输送的特征图数据与n×n的卷积核进行卷积运算,计算出的数据按顺序每n×n个进入一个计算单元,组成一个a×a的计算阵列;
所述a=m-n+1;m>n。
5.根据权利要求4所述二值卷积神经网络数据重用装置,所述特征图数据为F11、F12、F13...F1m、F21...Fmm共m×m个数据,其特征在于,用于卷积层为隐含层的时序为:
第一周期,外部存储单元输送包括F11在内的8个数据至第一数据存储模块,输送F21在内的8个数据至第二数据存储模块,以此类推,输送Fa1在内的8个数据至最后数据重组单元;
第二周期,第一数据重组单元将包括F11在内的8个数据输送至计算阵列,第二数据重组单元将F21在内的8个数据输送至计算阵列,第三数据重组单元将F31在内的8个数据模块输送至计算阵列,第二数据重组单元和第三数据重组单元中的数据能被第一数据重组单元重用的数据输送至第一数据重组单元。以此类推,最后数据重组单元将Fa1在内的8个数据输送至上计算阵列,将这些数据中与第a-2数据重组单元下一周期输送数据相同的数据输送至第a-2数据重组单元,将与a-1数据重组单元下一周期输送的数据相同的数据输送至第a-1数据重组单元,外部存储单元将包括第9个数据在内的后8个数据输送至最后数据重组单元,所述数据重组单元将接收的数据排列组合;所述排列组合是将不同数据重组单元输入的数据按照特征图的顺序排列;
第三周期第一数据重组单元将第二周期排列组合后的8个数据输送至计算阵列,以此类推;第二数据重组单元和第三数据重组单元中的数据能被第一数据重组单元重用的数据输送至第一数据重组单元,以此类推;
数据重组单元输送数据的的周期为n×n/8,不计算余数;所述最后数据重组单元需要外部存储单元每周期输送一字节数据,所述第a-1数据重组单元需要外部存储单元输送部分数据,直至第n×n/8周期。
6.根据权利要求4所述二值卷积神经网络数据重用装置,所述特征图数据为F11、F12、F13...F1m、F21...Fmm共m×m个数据,其特征在于,用于卷积层为输入层的时序为:
第一周期,外部存储单元输送特征图数据F11至第一数据重组单元,以此类推,送Fa1至第a数据重组单元;
第n周期,外部存储单元输送特征图数据F1n至第一数据重组单元,以此类推,送Fan至第a数据重组单元;
除了第一数据重组单元以外所有数据重组单元得到外部存储单元输送的特征图数据在一周期后均输送至前一个暂存单元;
第n+1周期,外部存储单元输送特征图F(a+1)1至第a数据重组单元;第一暂存单元输送F21至第一数据重组单元,以此类推,第a-1暂存单元输送Fa1至第a-1数据重组单元;
接下来每周期,外部存储单元按顺序输送特征图F(a+1)2...F(a+1)n、F(a+2)1...Fmn至第a数据重组单元,直至第n×n周期;
在数据重组单元得到特征图数据的下一周期,将该特征图数据输送至计算阵列。
7.根据权利要求4所述二值卷积神经网络数据重用装置,其特征在于,还包含权重控制单元;
所述权重控制单元,用于接收数据重组单元的输出数据,根据权重对其进行保持或置0操作,并传输至计算阵列。
8.根据权利要求7所述二值卷积神经网络数据重用装置,其特征在于,所述权重控制装置,包含两个输入端口,一端接收来自数据重组单元输出的数据,另一端接收权重作为控制信号。
9.根据权利要求8所述二值卷积神经网络数据重用装置,其特征在于,所述权重控制装置接收的权重都为0时,将接收的数据置0后输出至计算阵列,所述权重控制装置接收的权重不全为0,则将接受而数据直接输出至计算阵列。
CN201910696328.4A 2019-07-30 2019-07-30 一种二值卷积神经网络数据重用方法及装置 Active CN110555512B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910696328.4A CN110555512B (zh) 2019-07-30 2019-07-30 一种二值卷积神经网络数据重用方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910696328.4A CN110555512B (zh) 2019-07-30 2019-07-30 一种二值卷积神经网络数据重用方法及装置

Publications (2)

Publication Number Publication Date
CN110555512A true CN110555512A (zh) 2019-12-10
CN110555512B CN110555512B (zh) 2021-12-03

Family

ID=68737190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910696328.4A Active CN110555512B (zh) 2019-07-30 2019-07-30 一种二值卷积神经网络数据重用方法及装置

Country Status (1)

Country Link
CN (1) CN110555512B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111401543A (zh) * 2020-06-08 2020-07-10 深圳市九天睿芯科技有限公司 一种全片上存储的神经网络加速器及其实现方法
CN112614040A (zh) * 2020-12-16 2021-04-06 上海壁仞智能科技有限公司 用于卷积计算的方法、计算设备和计算机可读存储介质
CN115035384A (zh) * 2022-06-21 2022-09-09 上海后摩智能科技有限公司 数据处理方法、装置和芯片

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN106959937A (zh) * 2017-03-30 2017-07-18 中国人民解放军国防科学技术大学 一种面向gpdsp的反卷积矩阵的向量化实现方法
KR20180012439A (ko) * 2016-07-27 2018-02-06 삼성전자주식회사 회선 신경망에서 가속기 및 이의 동작 방법
CN107862650A (zh) * 2017-11-29 2018-03-30 中科亿海微电子科技(苏州)有限公司 加速计算二维图像cnn卷积的方法
CN108229671A (zh) * 2018-01-16 2018-06-29 华南理工大学 一种降低加速器外部数据存储带宽需求的系统和方法
CN108492286A (zh) * 2018-03-13 2018-09-04 成都大学 一种基于双通路u型卷积神经网络的医学图像分割方法
CN108537331A (zh) * 2018-04-04 2018-09-14 清华大学 一种基于异步逻辑的可重构卷积神经网络加速电路
CN108629406A (zh) * 2017-03-24 2018-10-09 展讯通信(上海)有限公司 用于卷积神经网络的运算装置
CN109948719A (zh) * 2019-03-26 2019-06-28 天津工业大学 一种基于残差密集模块网络结构的眼底图像质量自动分类方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180012439A (ko) * 2016-07-27 2018-02-06 삼성전자주식회사 회선 신경망에서 가속기 및 이의 동작 방법
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN108629406A (zh) * 2017-03-24 2018-10-09 展讯通信(上海)有限公司 用于卷积神经网络的运算装置
CN106959937A (zh) * 2017-03-30 2017-07-18 中国人民解放军国防科学技术大学 一种面向gpdsp的反卷积矩阵的向量化实现方法
CN107862650A (zh) * 2017-11-29 2018-03-30 中科亿海微电子科技(苏州)有限公司 加速计算二维图像cnn卷积的方法
CN108229671A (zh) * 2018-01-16 2018-06-29 华南理工大学 一种降低加速器外部数据存储带宽需求的系统和方法
CN108492286A (zh) * 2018-03-13 2018-09-04 成都大学 一种基于双通路u型卷积神经网络的医学图像分割方法
CN108537331A (zh) * 2018-04-04 2018-09-14 清华大学 一种基于异步逻辑的可重构卷积神经网络加速电路
CN109948719A (zh) * 2019-03-26 2019-06-28 天津工业大学 一种基于残差密集模块网络结构的眼底图像质量自动分类方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
KARTIK HEGDE ET AL.: "UCNN: Exploiting Computational Reuse in Deep Neural Networks via Weight Repetition", 《2018 ACM/IEEE 45TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE》 *
SHUANG LIANG ET AL.: "FP-BNN:Binarizaed neural network on FPGA", 《NEUROCOMPUTING 2018》 *
余子健: "基于FPGA的卷积神经网络加速器", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *
张军阳 等: "二维矩阵卷积在向量处理器中的设计与实现", 《国防科技大学学报》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111401543A (zh) * 2020-06-08 2020-07-10 深圳市九天睿芯科技有限公司 一种全片上存储的神经网络加速器及其实现方法
WO2021248941A1 (zh) * 2020-06-08 2021-12-16 深圳市九天睿芯科技有限公司 一种全片上存储的神经网络加速器及其实现方法
CN112614040A (zh) * 2020-12-16 2021-04-06 上海壁仞智能科技有限公司 用于卷积计算的方法、计算设备和计算机可读存储介质
CN112614040B (zh) * 2020-12-16 2021-09-21 上海壁仞智能科技有限公司 用于卷积计算的方法、计算设备和计算机可读存储介质
CN115035384A (zh) * 2022-06-21 2022-09-09 上海后摩智能科技有限公司 数据处理方法、装置和芯片
CN115035384B (zh) * 2022-06-21 2024-05-10 上海后摩智能科技有限公司 数据处理方法、装置和芯片

Also Published As

Publication number Publication date
CN110555512B (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
CN109635944B (zh) 一种稀疏卷积神经网络加速器及实现方法
CN110555512B (zh) 一种二值卷积神经网络数据重用方法及装置
CN110543934B (zh) 一种用于卷积神经网络的脉动阵列计算结构及方法
CN112257844B (zh) 一种基于混合精度配置的卷积神经网络加速器及其实现方法
CN112286864B (zh) 加速可重构处理器运行的稀疏化数据处理方法及系统
US20140040700A1 (en) Multicore type error correction processing system and error correction processing apparatus
CN105262493B (zh) 低密度奇偶校验码的译码方法
US9727531B2 (en) Fast fourier transform circuit, fast fourier transform processing method, and program recording medium
CN111340198A (zh) 基于fpga的数据高度复用的神经网络加速器
CN115186802A (zh) 基于卷积神经网络的块稀疏方法、装置及处理单元
CN106911336A (zh) 多核调度的高速并行低密度奇偶校验译码器及其译码方法
CN114116557A (zh) 基于硬件加速器与数字信号处理器的信道估计装置及方法
CN113705803B (zh) 基于卷积神经网络的图像硬件识别系统及部署方法
CN112862091B (zh) 一种基于快速卷积的资源复用型神经网络硬件加速电路
CN100384090C (zh) 一种用于纠正数据帧中错误比特的快速循环crc校验方法
CN113313244B (zh) 面向加法网络的近存储神经网络加速器及其加速方法
CN111008691A (zh) 一种权值和激活值都二值化的卷积神经网络加速器架构
CN114676629A (zh) 多手段复合的调制类型识别模型轻量化处理方法
CN116306840A (zh) 神经网络运算方法、装置、芯片、电子设备和存储介质
CN116167424B (zh) 基于cim的神经网络加速器、方法、存算处理系统与设备
CN111626410B (zh) 一种稀疏卷积神经网络加速器及计算方法
KR20160116980A (ko) Ldpc 복호기의 vss 알고리즘을 위한 h 행렬의 스케줄링 장치 및 그 방법
US20130046806A1 (en) Fast fourier transform circuit
CN116882455A (zh) 一种Pointwise卷积计算装置与方法
CN112561943B (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