CN111742331A - 神经网络加速器 - Google Patents

神经网络加速器 Download PDF

Info

Publication number
CN111742331A
CN111742331A CN201980014141.XA CN201980014141A CN111742331A CN 111742331 A CN111742331 A CN 111742331A CN 201980014141 A CN201980014141 A CN 201980014141A CN 111742331 A CN111742331 A CN 111742331A
Authority
CN
China
Prior art keywords
activation
weight
tile
channel
values
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.)
Pending
Application number
CN201980014141.XA
Other languages
English (en)
Inventor
A·莫霍沃斯
A·德尔马斯拉斯科兹
Z·普洛斯
D·马龙斯图尔特
P·贾德
S·沙丽
M·马哈茂德
M·尼科利奇
K·C·M·小
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.)
Samsung Electronics Co Ltd
Original Assignee
University of Toronto
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 Toronto filed Critical University of Toronto
Publication of CN111742331A publication Critical patent/CN111742331A/zh
Pending legal-status Critical Current

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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

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

Abstract

描述了一种用于利用输入稀疏性的神经网络加速器瓦片。所述瓦片包括:权重存储器,所述权重存储器用于向每个权重通道供应权重和权重选择元数据;激活选择单元,所述激活选择单元用于接收输入激活值集合并重排所述输入激活值集合以向每个激活通道供应重排的激活值集合;多路复用器集合,所述多路复用器集合包括每对激活通道和权重通道至少一个多路复用器,其中每个多路复用器被配置为基于所述权重通道权重选择元数据针对所述激活通道从重排的激活值的激活通道集合中选择组合激活值;以及组合单元集合,所述组合单元集合包括每个多路复用器至少一个组合单元,其中每个组合单元被配置为将所述激活通道组合值与所述权重通道权重组合以输出权重通道乘积。

Description

神经网络加速器
技术领域
本说明书总体上涉及用于神经网络的硬件架构,并且更具体地涉及神经网络硬件加速器。
背景技术
深度学***台上执行。鉴于DNN工作负载的重要性与日俱增以及其高计算和存储器需求,已经出现了专用的硬件加速器。
存在几种类型的DNN,诸如卷积神经网络(CNN),所述CNN支配着基于图像的应用。例如,CNN可被用于推断图像或视频帧,并且经常期望使用CNN特别是倾向于支配CNN中的执行时间的卷积层来加速推断。
神经网络加速领域的最近发展包括推动硬件实现。例如,已经开发了电路,所述电路被设计为更接近地模仿神经元的行为,诸如具有高网络连接性或其他特征。
发明内容
根据本发明的实施方案,提供了一种用于利用输入稀疏性的神经网络加速器瓦片(tile),所述瓦片限定了权重通道(lane)集合和激活通道集合,每个权重通道对应于激活通道,所述瓦片包括:权重存储器,所述权重存储器用于向所述权重通道集合中的每个权重通道供应权重和权重选择元数据;激活选择单元,所述激活选择单元用于接收输入激活值集合并重排所述输入激活值集合以向每个激活通道供应重排的激活值集合;多路复用器集合,所述多路复用器集合包括每对激活通道和权重通道至少一个多路复用器,每个多路复用器被配置为基于所述权重通道权重选择元数据针对所述激活通道从重排激活值的激活通道集合中选择组合激活值;以及组合单元集合,所述组合单元集合包括每个多路复用器至少一个组合单元,每个组合单元被配置为将所述激活通道组合值与所述权重通道权重组合以输出权重通道乘积。
根据本发明的另一个实施方案,提供了一种加速器瓦片,所述加速器瓦片包括:激活选择单元,所述激活选择单元用于接收激活值集合并将所述激活值集合重排成至少一个多路复用器输入值集合;权重值接收器集合,所述权重值接收器集合用于接收至少一个权重和至少一个权重选择元数据;至少一个多路复用器,所述至少一个多路复用器用于接收所述至少一个多路复用器输入值集合中的至少一个和至少一个权重选择元数据,所述至少一个多路复用器被配置为应用所述至少一个权重选择元数据来从所述至少一个多路复用器输入值集合选择至少一个组合激活值;至少一个组合器,所述至少一个组合器用于将所述至少一个组合激活值施加至所述至少一个权重以产生至少一个乘积;以及至少一个乘积输出分配器,所述至少一个乘积输出分配器用于输出所述至少一个乘积。
在结合附图阅读以下对本发明的实施方案的描述时,根据本申请的其他方面和特征将变得对于本领域的普通技术人员来说明显。
附图说明
参考附图可以更好地理解本发明的原理,所述附图是通过结合本发明的原理和各方面对一个或多个示例性实施方案进行说明提供的,并且在附图中:
图1是示例性卷积层的示意图;
图2是示例性伪代码卷积层计算;
图3是密集神经网络加速器瓦片的示意图;
图4A至图4B是CNN功能的示例性示意图;
图5A至图5C是根据实施方案的先行(lookahead)功能的示意图;
图6A至图6B是根据实施方案的后备(lookaside)功能的示意图;
图7A至图7C是根据实施方案的权重跳跃加速器瓦片架构的示意图;
图8是根据实施方案的添加了跳过无效激活位的能力的加速器瓦片架构的示意图;
图9是根据实施方案的多瓦片加速器的示意图;
图10是示出根据三个实施方案的对AlexNet-ES的性能改进的图;
图11是示出根据三个实施方案的对GoogLeNet-Es的性能改进的图;
图12是示出根据仅具有权重跳跃的实施方案的使用稀疏促进窗口的性能的图;
图13A和图13B是比较两个实施方案的配置的能量效率的图;
图14是示出五个压缩方案实施方案的性能的图;并且
图15是其中将复用选择表(Mux Select Table,MST)引入每个过滤器通道的实施方案的示意图。
在附图中,相同的附图标记指示相同或对应的元件。
具体实施方式
以下描述和其中描述的实施方案是通过对具有本发明原理的特定实施方案的一个或多个示例进行说明而提供的。提供这些示例是为了解释而非限制这些原理和本发明的目的。在以下描述中,相同部分在整个说明书和附图中使用相同的相应参考数字来标记。附图不一定是按比例绘制的,并且在一些情况下可能会放大比例以便更清楚地描绘本发明的某些特征。
该描述涉及用于神经网络的硬件加速器,并且是特别参考用于使用卷积神经网络(CNN)进行推断的配置进行描述的。
CNN往往包括一系列层或有向非循环图,其中卷积层(CVL)支配着许多图像相关应用的执行时间。在图1所示的实施方案中,卷积层1000接收Ax×Ay×C激活阵列1100,将所述激活阵列与K个权重过滤器阵列的集合1200进行卷积,所述集合1200是F0至FK-1个Fx×Fy×C过滤器阵列的集合,从而产生Ox×Oy×K输出激活阵列1300。输出激活阵列1300的每个输出激活o(x,y,k)是过滤器Fk与输入激活阵列1100的Fx×Fy×C子阵列窗口的点积。窗口是使用步长S均匀间隔开的,从而导致[Ax/S]×[Ay/S]=Ox×Oy。将激活函数(诸如整流器线性单元(ReLU))应用于每个输出激活。通常,一层(诸如图1所描绘的实施方案)需要进行100s至1000s的点积计算才能产生输出激活阵列,所述100s至1000s中的每一者具有输入权重和激活对。
如图2所描绘,在实施方案中,CVL可被实现为6嵌套循环。在一些实施方案中,循环的乘法是独立的,并且循环的不同排列产生相同的输出激活阵列,并且在一些排列中,计算可以同时执行。
虽然CVL通常被视为特定类型的神经网络中的特定类型的层,但是其他类型的层也可以实现为CVL的变体。例如,可以将全连接层实现为具有单个窗口的CVL,并且其中过滤器和输入具有相同的维度。
由图2的6嵌套循环实现的CVL如同处理密集CNN一样处理激活和权重,因为它处理所有的权重和激活。然而,在实践中,一些权重是零并且一些激活是零或足够接近零而被视为零,且因此是无效的。许多神经网络由于各种原因而是稀疏的,例如经常需要重新训练CNN的权重修剪也可能导致权重稀疏性。
硬件加速器的实施方案利用稀疏性,诸如权重和激活中的一者或两者的稀疏性。在本发明的实施方案中,直接利用权重稀疏性,并且间接利用激活稀疏性。即使对于有效激活,实施方案也能够产生益处。
在图3中描绘了用于处理密集CNN(诸如用于处理图1所描绘的CVL)的数据并行硬件加速器3000的示例。数据并行硬件加速器3000按周期处理权重和激活,并且每个周期产生k个部分输出激活。数据并行硬件加速器3000包括k个内积单元(IPU)3100,所述k个内积单元在N个激活的同一集合上并行操作。如下将每个输入激活与k个权重相乘,过滤器集合1200中的每个过滤器有一个:每个IPU 3100每个周期接受N个权重的向量,每个输入激活一个,计算N个乘积,通过加法器树将该N个乘积缩减,以及将结果累加到输出寄存器中。一旦已经处理了整个窗口(通常是经过多个周期),输出寄存器就会包含对应的输出激活。
数据并行硬件加速器3000包括权重存储器3200和激活存储器3300,所述权重存储器和所述激活存储器分别向加速器3000提供权重和激活。在所描绘的实施方案中,类似于在Y.Chen、T.Luo、S.Liu、S.Zhang、L.He、J.Wang、L.Li、T.Chen、Z.Xu、N.Sun和O.Temam,“Dadiannao:A machine-learning supercomputer”,微架构(MICRO),2014年第47届年度IEEE/ACM国际研讨会,第609-622页,2014年12月中公开的实施方案,权重存储器3200和激活存储器3300大到足够一次保持整个层,权重存储器3200可通过单个宽读取端口每周期供应N×k个权重,激活存储器3300可通过宽读取端口每周期供应N个激活,权重和激活缓冲器隐藏权重存储器3200和激活存储器3300的等待时间,并且输出激活缓冲器收集结果,然后将所述结果写回到激活存储器3300以供用于神经网络中的下一层。如所描绘,与推断加速器的许多实施方案一样,加速器3000使用16位定点格式来表示激活和权重。在图3中描绘的实施方案假设如果存在多个瓦片,则它们全部都连接到同一激活存储器3300,所述激活存储器每个周期向所有瓦片广播具有N个激活的块。
图4A和图4B描绘了图3的加速器3000的IPU 3100将如何处理激活和步骤的示例,并且其中N设置为4且k设置为1。激活表示为
Figure BDA0002639709390000041
并且权重表示为
Figure BDA0002639709390000042
其中通道表示出现激活和权重的激活列和权重行,并且步骤指定激活和权重相乘的时间顺序。假设每个步骤需要单个周期,则加速器3000将在4个周期中处理16个乘积,而不管权重的集合是如图4A中那样密集还是如图4B中那样稀疏。尽管事实上如果乘积是自由调度的,则在图4B的示例中需要的6个乘积可以在2个周期内完成,但是会发生这种情况。本发明的实施方案消除了具有无效权重的乘积,同时避免了对权重和激活的不受限制调度的复杂性。
本发明的实施方案通过及时静态地提升有效权重,通过在原本将处理无效权重时处理有效权重来消除无效权重。软件调度过程会在处理之前将权重重排,以使所述权重在运行时间被提取时出现在正确的通道和步骤处。因此,此类实施方案的瓦片可以使用对相关联的权重存储器的单次宽访问在每个步骤访问其所需的所有k×N个权重。每个有效权重都带有一小段元数据以标识其在原始密集权重调度中的位置,以便所述每个有效权重可以在运行时间处与适当的激活进行匹配。
在实施方案中,权重调度灵活性可以与能量和区域效率相平衡,诸如通过允许其中仅允许两个过滤器内权重移动的调度:先行移动和后备移动。先行移动允许有效权重在步骤上提前以代替无效权重,诸如使有效权重w[通道,步骤]提前以代替无效权重w[通道,步骤-h],其中h是先行深度,所述先行深度与加速器架构中必须变得可用的激活值的数量有关。后备移动允许有效权重代替不同通道中的无效权重,例如有效权重w[通道,步骤]可以提前一个时间步骤,并移位d个通道以代替无效权重w[(通道+d)MOD(N-1),步骤-1]。
图5A至图5C示出了应用图4B所描绘的稀疏过滤器的加速器5000的先行权重调度的示例的示意图。如图5A至图5C所示,设置h=1使执行时间从4个周期缩减至3个周期。如同图4A至图4B的加速器实施方案一样,图5A至图5C的加速器5000可以每个周期处理4个乘积。先行的使用允许加速器5000建立h+1的滑动窗口,在所述滑动窗口内可以将有效权重提升成超过在同一通道中出现的无效权重。
在图5A所描绘的周期0处,先行窗口5100未能利用权重通道2,单个权重w[2,2]是先行距离2并且h被设置为1。在图5B中在周期1处,有效权重w[1,1]正在被处理,因此先行窗口5100将加速器5000的到达扩展至步骤1=h或2。这使加速器5000提升有效权重w[2,2]以代替无效权重w[2,1],但是权重w[3,3]保持在先行窗口5100之外。然而,由于在步骤3处不再处理任何权重,因此加速器5000则将两个步骤前进到步骤=3,使得如图5C所示,在周期2处,权重w[3,3]被处理。
如图5A至图5C所描绘,通道内权重的静态提升要求加速器5000在运行时间有权访问对应的激活。如所描绘,为了允许该配对,加速器5000必须访问针对整个先行窗口5100的所有激活。当h设置为1时,每个周期中有2个激活通道可供加速器5000使用。加速器5000通过每权重通道2对1多路复用器选择适当的激活,当针对先行函数修改权重调度时,静态地确定了用于多路复用器的控制信号,并且将控制信号与对应的权重一起存储。
加速器5000使用h个额外激活通道(h+1)对1多路复用器来为先行窗口h选择适当的激活,其中h如所描绘的被设置为1。在各种实施方案中,对更广泛的激活组的支持导致加速器构造的成本和实用性的变化。由于在加速器的其他实施方案中激活通道在每个瓦片的k个过滤器之间共享,因此包括激活通道的成本通常可以在多个权重通道上分摊。在许多情况下,当h小于或等于2时,将先行结构应用于加速器的益处是可得的。
图6A至图6B是采用后备结构的加速器6000的示意图。加速器5000的先行结构所允许的循环缩减受限于具有最多有效权重的通道中的有效权重的数量。加速器6000的后备结构允许加速器6000在另一个通道中处理一个通道的权重,从而允许加速器6000在相邻较不密集分布的通道的时间和通道步骤中处理原始权重结构的更密集分布的通道的权重。
加速器6000采用后备结构,在所述后备结构中d已被设置为1。如在图6A中所描绘,在周期0处,通道2处理来自通道1的权重w[1,1],从而允许加速器6000的通道2处理权重而不是在步骤0处保持闲置。这还允许加速器6000分两步处理所述权重集合,因为其能够前进到步骤2并在周期1处在还采用h=1的先行时处理权重w[2,2]和权重w[3,3]两者。因此,加速器6000能够通过采用先行和后备结构以及设置h=d=1来以最小周期数处理图4B的权重集合。
由于加速器6000采用了h=1的先行结构,所述加速器在每个时间步骤处有两个激活通道可用于每个权重通道。因此,采用d=1的后备结构不需要向加速器6000提供任何附加的激活通道,加速器6000仅需要具有更多输入的激活多路复用器。对于后备设置为h并且先行设置为d,加速器6000采用(h+d+1)对1多路复用器。这些多路复用器的数据输入连接是静态确定的并且是规则的。与加速器5000一样,加速器6000的多路复用器的控制信号是静态确定的,并与权重一起存储,并且其需要lg(h+d+1)位。在加速器变化中,增大的d值可允许更大的调度灵活性,但是可增加互连成本。
图7A至图7C描绘了权重跳跃加速器瓦片7000的结构。加速器瓦片7000针对k个过滤器中每个过滤器并行处理N个产生。瓦片7000包括激活选择单元(ASU)7100,当激活存储器7200提供激活时,所述激活选择单元缓冲所述激活。ASU 7100将激活重排,以便权重跳跃单元(WSU)7300可以直截了当地选择适当的激活。
WSU 7300的WSU切片7310在图7B中进一步详细示出。WSU 7300包括针对每个瓦片总共k个切片的每个过滤器一个切片。加速器7000的WSU切片7310经由单个权重存储器7400端口读取一列预调度的权重以及它们的多路复用器选择元数据。WSU 7300每次访问读取N×k个权重和元数据对加以及激活通道控制(ALC)字段。如所描绘,加速器瓦片7000每个WSU切片7310处理N个权重,并且所有权重以一个步骤被处理。
WSU切片7310取N个权重w1至wN,所述权重各自映射到单独的权重通道,在所述单独的权重通道中其馈入乘法器7311的输入中的一个。(h+d+1)对1多路复用器选择乘法器7311的第二输入。多路复用器控制信号来自WSU 7300从权重存储器7400读取的权重选择(ws)元数据7312。(h+d+1)对1多路复用器7313允许输入足够的激活值以允许乘法器7311访问可能的激活。
对于瓦片7000所处理的每个权重wi,都有h+1个激活Ai,0至Ai,h,所述h+1个激活对应于h个激活的先行窗口。例如,对于w1,A1,2是先行2处的激活,而对于wN,AN,h是先行h处的激活。ASU 7200对激活进行排序以使符合其逻辑先行顺序,从而通过将Ai,j个信号静态分配给多路复用器输入来允许WSU 7300实现先行和后备。例如,针对w2的后备1连接是至A3,1,并且其先行2连接是至A2,2。所有WSU切片7310共享相同的(h+1)×N个激活。
如图7B所描绘,加速器瓦片7000的WSU切片7310每个周期产生N个16b×16b乘积,输出为t1至tN。将这些乘积馈入加法器树,加法器树的输出在多个周期中累加为输出激活。在一些实施方案中,本加速器瓦片7000的变型可以用与门或移位器代替乘法器7311以利用激活性质。
如图7C所描绘,ASU 7200生成WSU 7300所使用的A通道先行信号。提供ASU 7200,以将对应的权重通道所需的输入激活和步距先行供应给乘法器7311。ASU 7200包括h+1个激活块寄存器(ABR)7210,每个激活块寄存器保持N个输入激活。每个ABR 7210以某一特定的先行距离l=0至h保持所有权重通道所需的N个激活。ABR 7210逻辑上作为循环队列操作,其中头部寄存器指向ABR,从而将激活保持在先行=l=0。h+1个多路复用器的阵列7220,每个多路复用器为(h+1)对1多路复用器,将ABR输出按适当的顺序进行置乱,从而生成A通道先行个信号,这些信号沿着权重列分布,如图7C底部附近所示。将WSU 7300从WM7400读取的ALC元数据与每个N×k权重列一起用于推进头部寄存器并实现滑动先行窗口。
当激活被从激活存储器(AM)7100中读取时,激活缓冲器(AB)7230缓冲所述激活。AB 7230具有h+1个存储体,每个存储体通过专用的单个读取端口连接至一个ABR 7210。以此方式,每个周期可以同时更新任意数量的ABR 7210,从而按照ALC元数据的指示有效地推进先行窗口。这种布置允许加速器瓦片7000也跳过仅包括无效权重的列。
虽然权重跳跃利用权重稀疏性,但它没有利用输入激活的任何潜在有价值的性质。在本发明的一些实施方案中,加速器或加速器瓦片可以被构造为利用输入激活的性质,或者利用输入激活和权重两者的性质。本发明的实施方案提供了不同的面积、性能和能效的折衷。一些实施方案利用激活的有效位内容并确定性能的优先级。一些实施方案利用细粒度动态激活精度可变性并确定能效的优先级。一些实施方案为所有激活提供益处,无论是否有效。下面详细讨论的实施方案并不试图消除无效激活,而使两个实施方案均利用无效激活。
输入到神经网络的一层的输入激活的平均集合中的许多激活位是零(即使激活的一部分是非零)且因此在乘法运算期间是无效的。本发明的实施方案单独地或与利用权重稀疏性组合地利用无效激活位。
如图8所描绘,加速器8000被构造为随时间推移按位串行仅处理激活的有效位。例如,加速器8000在3个周期中处理激活值{0000 0000 1000 1111b},从而分别将对应的权重乘以以下2的带符号幂:{+27,-24,+20}。这些幂是激活值的Booth编码表示。该结构允许加速器8000在与有效激活位的数量成比例的执行时间处理输入激活。然而,由于现在对激活进行位串行处理,因此如果加速器8000每个周期仅处理N×N个权重和激活对,则总体吞吐量将较低。加速器8000通过并行处理16个激活窗口来补偿这种吞吐量损失,从而提高总体吞吐量。因此,可以在16个窗口上重复使用相同的权重,并且将WM接口保持为与先前的实施方案中一样。然而,加速器8000保持所有通道,馈送跨激活组同步的共用加法器树,也就是说,所述所有通道都等待一个对具有最多有效位的激活的处理完成,然后再进行到下一组激活值。设计人员可以选择不同数量的激活窗口进行并行处理,以实现所需的性能、面积、能效目标。
在设计中,图8的加速器8000反映了用于处理激活的实用加速器(PRA)设计的许多元素(关于PRA设计的讨论,请参见:J.Albericio、A.Delmás、P.Judd、S.Sharify、G.O’Leary、R.Genov和A.Moshovos,“Bit-pragmatic deep neural network computing,”,第50届年度IEEE/ACM微架构国际研讨会论文集,MICRO-50'17,第382-394页,2017,该文献据此以引用方式并入)。PRA设计针对密集CNN,并利用无效激活位来递送与有效激活位内容成比例的执行时间。PRA设计按位串行处理激活,一次一个有效位。在应用经修改的Booth编码后,每个瓦片单元将激活转换为2的有效幂或oneffset的流。由于PRA设计在每个周期将权重乘以2的幂,因此代之移位器足够了。oneffset符号用于通过加法器树加上或减去移位的权重。为了保持等效位并行设计的吞吐量,PRA设计并行处理多个激活窗口,从而允许该设计在窗口处理过程中重复使用相同的权重。
在一些加速器实施方案中,可以修改实用加速器(PRA)设计的后端。在一些实施方案中,类似于PRA,加速器实施方案一次一个有效幂地按位串行处理激活。在应用经修改的Booth编码后,每个ABR单元将激活转换为2的有效幂或oneffset的流。在一些实施方案中,本发明的加速器使用移位器来将权重与oneffset相乘,并且根据oneffset符号经由加法器树将结果相加或相减。为了保证本发明的加速器总是匹配或超过等效的位并行设计的吞吐量,这些加速器可以同时处理16个激活窗口。这使这些加速器能在16个IP单元上重复使用相同的权重。
图8示出了加速器8000的瓦片。图3的k个内积(IP)单元已扩展为具有16×k个较简单IP单元8100的网格。实用设计的主要修改是包括WSU和ASU切片以及使用每行环将部分和移动一列的能力。具体地,将关于图7A至图7C讨论的原始WSU切成16个列8200,即WSU/0至WSU/15,每列具有k个IP 8100。这16列中的每一列都对应不同的窗口。每个IP 8100都有16输入加法器树,并且具有N个移位器来代替N个乘法器。这些中的每一个都按照激活oneffset输入的指示来移位16b权重输入。沿同一行的所有IP 8100共享相同的w(权重)和ws(权重选择)信号,并且它们都执行完全相同的先行和后备激活选择。与图6不同,此处的多路复用器选择4b激活oneffset,从而大大减小了面积。这些oneffset编码最多3个位置的移位加上符号和赋能。对于每一列,对应的ASU切片,即ASU 8300的ASU/0至ASU/15,如前所述提供了N个激活组的数据,每个权重通道一个激活组,每个都包含h个激活的数据以支持先行。与图6不同,ASU提供4b oneffset。由于所有WSU列8200执行相同的权重调度,因此所有16个ASU片均一前一后地访问激活缓冲器,并共享相同的激活选择逻辑和信号。
在实用加速器设计中,由于每个列都计算不同的窗口并且在窗口重叠的情况下,每个输入激活最终都必须出现在不同的列处。结果,简单地扩展实用加速器设计将需要AM与每个瓦片的激活缓冲器之间的交叉开关。TCL将输入激活空间静态地交错到16个IP列,因此不需要交叉开关。具体地,所有激活a(c,x,y)映射到列(x×S)MOD 16。使用此修改,就不再可能在IP处完全计算每个输出激活。加速器实施方案使用图8所示的环8400将部分和水平地滑动一列。实用加速器设计已经包括相邻列IP之间的连接,所述连接用于一旦完成就读出结果并提高具有较少信道的层的利用率。只要有必要,就使部分和停留在某一列处,以累加映射到该列的激活的所有和。然后,所有部分和都一前一后地前进到下一列。表1显示了在JaZe中如何进行处理的示例。
Figure BDA0002639709390000091
表1:处理:采用9个步骤在具有16个信道的输入激活阵列上处理具有3×3过滤器的16个窗口。在步骤0中,输出o(0,0,0)在第0列处开始,并分别在步骤3和6中移至第1列和第2列。激活a(c,x,y)仅出现在列x MOD 16处。在此示例中,坐标为a(信道,x,y)。
在一些实施方案中,可以不同地利用无效的激活或激活位。例如,在一些实施方案中,通过利用精度要求来利用激活的有效位内容。精度激活需要在网络上和在各层上是不同的,并且可以诸如通过剖析来确定。在实施方案中,与基线精度16b相比,执行时间可以缩减16/p,其中p是激活使用的精度。例如,可以采用条纹(STR)加速器瓦片设计。在P.Judd、J.Albericio、T.Hetherington、T.Aamodt和A.Moshovos,“Stripes:Bit-serial DeepNeural Network Computing,”第49届年度IEEE/ACM微架构国际研讨会论文集、MICRO-49、2016和多伦多大学管理委员会(The Governing Council of the University ofToronto)标题为“Accelerator for Deep Neural Networks”的美国专利申请公布号US2017/0357891A1(发明人:Patrick Judd、Jorge Albericio、Alberto Delmas Lascorz、Andreas Moshovos和Sayeh Sharify)中公开了该STR加速器瓦片设计,这两篇文献据此以引用方式并入。
STR设计按位串行处理激活,且因此需要p个周期来处理以p位表示的激活。与PRA设计一样,为了补偿与位并行设计相比的计算带宽损失,采用STR设计的实施方案并行处理多个窗口,诸如并行处理16个窗口。STR设计采用与门而不是乘法器。STR设计的块级描述与图8所描绘的PRA设计的块级描述相似。然而,STR设计采用的ASU一次发送单个位的激活,而不是一次发送单个oneffset,并且不需要将激活编码为oneffset。在典型的STR设计中,与PRA设计相比,每个激活需要更少的电线,没有移位器,并且加法器树的输入宽度为16b。
在使用权重稀疏性利用结构的所有情况下,可不需要使用输入激活利用加速器结构。例如,虽然STR使用了配置文件导出的精度要求,但是已经观察到,对于某一层来说配置文件导出的精度是悲观的,因为该精度必须适应任何可能的输入,并且该精度必须适应该层的所有激活。然而,实际上,在一些实施方案中,将在运行时间同时仅处理针对一个特定输入的有限激活集合。此外,由于在一些实施方案中大多数激活接近零,因此该途径显著降低了每组同时处理的激活所需的精度。当从激活存储器中读取精度并将精度与激活值一起进行传送时,检测每个激活组所需的精度。或者,可以在存储到存储器之前在输出处检测每个激活组的精度。可以检测无符号和无符号数字的精度要求,以适应除ReLU以外的权重和激活函数。对于采用STR结构的上述实施方案,动态精度缩减减少了执行时间,而对于采用STR结构的上述实施方案和采用PRA结构的实施方案两者,它减少了从激活存储器读取激活后需要发送的位数。回想一下,采用PRA结构的上述实施方案在每个瓦片处本地地生成oneffset。
已经发现,需要正确操作的数值精度神经网络在各网络之间以及同一网络的各层之间存在很大差异。例如,在P.Judd、J.Albericio、T.H.Hetherington、T.M.Aamodt、N.D.Enright Jerger、R.Urtasun和A.Moshovos“Reduced-Precision Strategies forBounded Memory in Deep Neural Nets,”CoRR abs/1511.05236(2015)(‘Judd等人’)中提出了一种使用剖析来确定每层数值精度的方法,该文献据此以引用方式并入。然而,在A.Delmas、P.Judd、S.Sharify和A.Moshovos,“Dynamic Stripes:Exploiting the DynamicPrecision Requirements of Activation Values in Neural Networks,”CoRR abs/1706.00504(2017)(‘Delmas等人’)中观察到在比层粒度甚至更小的粒度上,精度的这种可变性变得更加明显,该文献据此以引用方式并入。数值精度是指安全地表示数字所需的位数。在定点表示的情况下,这将恰好是整数的位数。对于其他表示,表示的不同组成部分可能需要单独的位计数,诸如浮点数的指数或尾数。
所描述的加速器的实施方案利用精度要求来减少处理乘法运算所需的周期数。然而,除了计算之外,通信和存储对于深度学习计算也是主要的挑战。因此,提出了一种利用激活和权重的精度要求可变性的方法来减少存储和通信需求。下面描述一种具体的实现方式。首先,应注意,Delmas等人的动态精度检测方法也适用于负值,其中必须寻找前导0,并向最终精度长度加1,而不是寻找前导1。或者,负数可以变换为符号数值表示,并且符号位可以放在最低有效位置。该第二途径适应不会将所有负值都转换为零的激活函数和权重。
以下描述假定所有数字均采用16位定点表示,然而,所描述的机制直接适用于其他表示长度和类型。压缩方案将输入值、权重或激活考虑为具有固定数量(诸如例如16个或256个)的元素的组。然后,在每个组内,通过扫描所有值中最高有效1位的位置来确定所需的最大精度。将负值转换为符号数值表示。权重的处理可以离线进行,而激活则在每一层的输出处进行处理。然后通过使用4位存储所需的精度,然后使用等于该组精度的位数存储每个值来打包所述值。对于此处描述的加速器,将根据权重通道和激活通道进行分组,并且使用Judd等人的虚拟列途径将数据存储在存储器中。例如,可以使用Judd等人的方法并使用针对权重的16b至16b交叉开关来解开到数据路径中。激活可以沿着位平面存储在存储器中,从而避免了对交叉开关的需要。下表2显示了每个虚拟列的组存储格式。精度可最好单独存储在存储器中。在一些实施方案中,将多个连续组的精度一起存储到单个存储器块中,从而在多个组上分摊了这种额外的存储器访问的成本。
Figure BDA0002639709390000111
表2
替代方案包括位图,在所述位图中每个位代表该组内的值是等于还是不同于零,如表3所示。如果该值等于零,则根本不会对其进行编码。因此,每组的编码元素的数量不同。对于具有大量零的数据,这允许更高的压缩率。解开是通过读取打包的组,然后根据需要使用位向量在必要时***零来连续扩展所述组而完成的。通过同时提取和解开足够数量的组,可以维持加速器的带宽要求。
Figure BDA0002639709390000112
表3
图14指示了在使用和不使用上述零增强途径的情况下,AlexNet-ES和GoogLeNet-ES中的权重和激活数据两者的两个压缩方案的有效性,一起显示了使用固定的每层位数可实现的比率。值为2指示缩减到原始大小的一半。两个每组方案都在权重和激活方面优于每层压缩方案。零增强压缩方案进一步提高了压缩率,尤其是对于权重而言。当网络稀疏时,这可能是特别期望的。
在将权重性质利用结构与激活性质利用结构结合在一起时,加速瓦片可能会因增加的先行结构而经历激活优化的有效性降低。具体地,在STR结构和PRA结构两者中,一组并行处理的激活必须等待最慢的激活处理才能前进到下一组。例如,在PRA结构中,具有最高oneffset数量的激活确定整个组将需要多少个周期。随着先行程度的提高,采用STR或PRA激活性质利用结构的本发明的实施方案必须考虑先行窗口内的所有激活。在许多实施方案中,先行窗口越宽,则这种“瓶颈”激活的影响就越大。通常,后备没有进一步的效应,因为如上所述,其在先行至少为1时使用同步组中包含的在先行距离为1下的激活。
在其他实施方案中,激活性质利用结构可以不采用STR或PRA结构。例如,STR或PRA结构都不会直接攻击无效激活,这可能似乎与直觉相反,因为已经证明,在CNN中经常有将近一半的激活倾向于无效。但是,STR结构和PRA结构都为无效激活和有效激活带来了益处,并且这种结构通常可以提供优于仅直接攻击无效激活的结构的改善功能。具体地,采用STR结构或PRA结构的加速器结构将对于任何有效激活都是有利的,而可以跳过无效激活的结构将对于无效激活是有利的,然而采用STR结构或PRA结构的加速器的机会损失将通常是每一次无效激活都远远少于1。
例如,在被采用PRA结构的加速器处理为一组的所有激活恰好为零的情况下,加速器将在单个周期内处理所述激活,这表示与可以跳过无效激活的加速器相比机会损失为仅1/16,这是因为采用PRA结构的加速器按位串行而非位并行地处理每个激活。通常,当采用PRA结构的加速器在p个周期内处理无效激活时,机会损失为p/16,并且考虑到平均只有不到10%的位有效,未完全跳过无效激活的机会损失预计会低。类似的推理适用于采用STR结构的加速器。
通常,无效激活、动态精度可变性和无效激活位是激活值在诸如CNN之类的网络中分布的结果:通常,大多数激活聚集在零附近,并且少数激活的峰值在远离零的值处。对于图像分类CNN,即使每层降低激活的精度,约45%的激活通常仍为零,而经常发现激活位的超过90%为零,表明如果针对无效位内容,则性能提升的潜力要高得多。如此,本发明的许多实施方案可以采用直接或间接地利用无效位内容的技术。
如图9所描绘,加速器9000包括多个瓦片9100。每个瓦片9100具有其自己的AM局部切片9110、局部WM(未示出)、输入激活缓冲器(未示出)和输出激活缓冲器(未示出)。每个AM切片9110的分派器9120读取如在STR和PRA结构中的适当的激活,同时还适应本发明的先行实施方案的结构的先行需求。在一些实施方案中,为了减少能量和带宽要求,分派器9120使用配置文件导出的每层精度来仅从AM 9110读取所需数量的激活位。在将每个激活组广播到所有瓦片之前,分派器9110通过动态地检测给定它们的值所必需的精度来进一步修剪激活。局部地,每个瓦片9100以其自己的步调消耗其激活。缓冲器确定瓦片可以在激活空间中间隔开多远。局部地,每个瓦片9100可以执行进一步的处理,例如对于采用PRA架构的结构,瓦片可以进行对2的幂的编码。
在一些实施方案中,每个瓦片具有其自己的AM局部切片、局部WM、输入激活缓冲器和输出激活缓冲器。AM和WM被存储以维持计算核心所需的带宽。将数据从片外存储器加载并复制到单独的AM或WM瓦片,或多播到多个AM或WM瓦片。实施方案使用压缩来减少片外和片上业务量。对于片上和片外数据传输两者,加速器实施方案均使用每组精度对激活和权重进行编码,所述每组精度是在前一层的输出处动态检测(激活)或静态检测的(权重)。将权重打包在存储器和WM中与权重通道匹配的虚拟列中。另外,不存储零值,而是每个组的位向量标识非零值的位置。在一些实施方案中,可以使用一组16个激活或权重来提供压缩率与元数据开销之间的良好平衡。对于每个组,精度以位和零值位向量存储,对于256位未压缩的激活或权重,开销分别为4位和16位。在复制激活之前,激活缓冲器对值进行解压缩。
表4报告了此处研究的配置。表4给出了示例加速器实施方案的配置的示例:
Figure BDA0002639709390000131
表4:加速器实施方案的配置
在实践中,采用上述架构的各个方面和特征的加速器实施方案已经显示为提供执行益处。
使用循环级模拟器,通过对卷积层和完全连接层的执行时间进行建模来评估一些实施方案的相对性能。表5报告了所使用的CNN,所述CNN是稀疏的(有关它们的进一步讨论,请参见:Yang、Tien-Ju和Chen、Yu-Hsin和Sze,Vivienne,“Designing Energy-EfficientConvolutional Neural Networks using Energy-Aware Pruning,”IEEE计算机视觉和模式识别会议(CVPR),2017,该文献据此以引用方式并入)。所有面积和能量的测量都是在布局上使用代表性数据输入的电路活动来完成的。布局使用Cadence Innovus针对TMSC 65mm技术生成,然后使用SynopsysDesignCompiler将它们合成。使用了典型的案例设计库,因为它针对所测试的设计产生了更为悲观的结果。所有测试设计均在1GHz下操作。通过CACTI对SRAM进行建模(有关进一步讨论,请参见:J.Park、S.Li、W.Wen、P.T.P.Tang、H.Li、Y.Chen和P.Dubey,“Faster CNNs with Direct Sparse Convolutions and Guided Pruning,”第5届学习表示法国际会议(ICLR),2017,该文献据此以引用方式并入),并且通过Destiny对eDRAM进行建模(有关进一步讨论,请参见:N.Muralimanohar和R.Balasubramonian,“Cacti6.0:A tool to understand large caches,”HP技术报告HPL-2009-85,ht中://www.hpl.hp.com/techreports/2009/HPL-2009-85.html,该文献据此以引用方式并入。
网络 缩写
<u>AlexNet-Eyeriss</u> <u>AlexNet-ES</u>
<u>GoogLeNet-Eyeriss</u> <u>GoogLeNet-ES</u>
表5:所研究的网络
下面包括对权重跳跃与权重和激活利用的比较的讨论。以下包括对各种实施方案的性能、能效和面积的评估。
在所测试的实施方案中,已经测试了各种先行值和后备值,并且性能比拟参考结构。结果指示,无论先行和后备混合,使用更大的多路复用器都会导致更好的性能。在下面讨论的实施方案中,先行h和后备d的组合被认为使得h+d+1=2n并且n={8}。图10和图11指示相对于不使用权重跳跃并且不构造成利用激活值的性质的加速器结构的加速。图10和图11指示对于将先行和后备设置为(先行,后备)或(h,d)的加速,如每个图形化结果集合的基部所指示。图10指示当处理ES-AlexNet时的加速,而图11指示当处理ES-GoogLeNet时的加速。如所指示,测试了三种加速器结构实施方案,一种实施方案仅采用权重跳跃结构,一种实施方案采用权重跳跃和STR结构,和一种实施方案采用权重跳跃和PRA结构。
如图10和图11所指示,通过牺牲先行输入来添加少量后备输入,在测试仅采用权重跳跃结构的实施方案时提供了显著的性能边际增益,如在从(7,0)到(4,3)的转变中可看到的。例如,如图10所指示,对于AlexNet-ES,具有(7,0)或没有后备的加速)是2.3倍,并且具有(4,3)的加速是2.7倍。
图10和图11指示与将值设置为零相比,已观察到具有后备或先行值的变化的趋势中的一些。从概念上讲,后备允许致密分布了有效权重的权重通道将其负载分配给相邻的权重通道,从而减轻了权重通道的不平衡。但是,一些权重通道通常不太可能具有多个相邻的致密分布的通道。因此,可预期任意扩展后备窗口导致返回递减,这与针对给定实施方案描述的结果相匹配。类似地,可以理解的是,添加大的先行会影响如上所述的激活处理后端的有效性。结果指示,对于相同总数量的多路复用输入(h+d+1),并且只要有一些后备选项,则先行越多,性能就越好。
总体而言,差异似乎相对减弱,然而,如图所指示,当与利用激活性质的结构(诸如使用STR结构或PRA结构)组合时,益处成倍增加。因此,在实施方案中,与仅进行权重跳跃相比的相对较小性能差异为最终设计带来了大得多的益处。
不同的配置也会导致不同的益处。虽然在面积方面配置之间的差异小,但通常先行越小,则用于实现权重跳跃结构的电线计数就越少。因此,对于许多实施方案和情况,将先行和后备对设置为(2,5)或(4,3)可能是合理的折衷配置。
如图10和图11所指示,添加激活性质利用结构增加了权重跳跃结构的益处。可以设计各种配置以平衡成本和期望的性能,诸如在激活存储器和互连的设计中。
如图10和图11所指示,添加利用精度可变性的能力主要是对无效权重跳跃进行补充。对于AlexNet-ES和GoogLeNet-ES而言,甚至所示出的最无能配置(1,6)也分别将性能提高了7.2倍和4.3倍。Alexnet-ES集合只有几层,所述几层与GoogLeNet-ES集合相比更大。如所指示,使用利用无效激活位内容的激活性质利用结构诸如PRA结构比使用利用精度的激活性质利用结构诸如STR结构产生了更好的性能。在总体性能益处低于无效位内容所建议的总体性能益处的情况下,元凶可能是交叉激活通道同步,因为先行窗口内的所有激活通道必须等待具有最多oneffset的激活通道完成才能前进到下一个先行窗口。如所指示,所测试的最佳配置是将先行和后备设置为(4,3),这分别针对AlexNet-ES和GoogLeNet-ES将性能提高了15.8倍和8.4倍。
尽管上面的描述聚焦于假设先行和后备模式必须在时间和通道方向上构成连续窗口的权重提升,但过滤器内权重提升的概念并不限于先行和后备方向上的连续窗口,而是可能来自由先行和后备两者的组合的任意坐标。也就是说,在给定先行距离为h的情况下,有可能实现后备模式,该后备模式允许从此窗口中具有16×h个位置的任何子集进行提升,其中16是过滤器通道宽度。
在这种配置的变型中,可以采用稀疏提升模式,所述稀疏提升模式允许从权重流中的任意位置提升权重。此处的术语‘稀疏’是指事实:例如可以从位置[通道+d,步骤+h]窃取的权重w[通道,步骤]可能不一定与从位置[通道+d-1,步进+h]或[通道+d,步骤+h-1]窃取有关联。
在图12中比较的三种配置的集合中,左侧呈现了基本配置,其中如上所述采用了(2,5)权重跳跃配置。其他两种配置是从原始配置创建的稀疏配置,其中先行被设置为2并且后备被设置为5,其中后备限制于7个通道的距离,总共有2+2*7=16个可能的提升站点。出于功率和面积的考虑,则将整个连接性缩减为h+d=7个提升站点,从而产生与左侧基础设计相同大小的8输入多路复用器。对于右侧的网络优化设计,反复地去除连接站点,以使给定网络具有最小的性能降级;从而产生为两个测试网络中的每个网络定制的连接模式。对于在图12的中心呈现的Checkers配置,直接采用固定的棋盘状连接模式,而无需要反复选择要去除的连接。如所指示,Checkers配置提供了按网络优化模式的加速益处中的许多。如从下面的描述所预期的,可以预期添加激活性质利用结构使加速益处加倍。
各种因素可以驱动总体优选结构的确定。例如,尽管在许多实施方案中使用PRA结构似乎胜过使用STR结构,但是由于每次激活都需要更多的电线,所以使用PRA结构可能更昂贵。例如,在确定性能增益是否值得时,可以考虑相对面积和能效考量。
图13A和图13B指示与不采用权重跳跃或激活性质利用架构的加速器相比,权重跳跃与STR架构和权重跳跃与PRA架构的能效。图13A描绘了当在AlexNet-ES上运行时的能效,而图13B描述了当在GoogLeNet-ES上运行时的能效。如所指示,在每种情况下,设计都比基线具有更高的能效,因为性能益处超过了附加的硬件功率成本。除了采用(1,6)配置之外,使用STR结构比使用PRA结构更具能效,所述PRA结构在上下文上与低成本设计不相匹配。所测试的最具能效的设计是包括STR结构并采用(4,3)配置的实施方案,这对于AlexNet-ES和GoogLeNet-ES分别导致了5.6倍和2.9倍的相对能效。
表6指示了各种加速器实施方案的面积,并详细说明了(1,6)配置。面积与性能之间的折衷是亚线性的,这表明即使针对不采用权重跳跃或激活性质利用结构的基线结构的性能可以线性扩展,它的单位面积性能仍会落后。测试结果指示,基线结构的性能与面积成亚线性关系地按比例缩放,因为典型的过滤器计数、典型的过滤器维度以及输入和输出导致对基线结构的较宽配置的较高未充分利用。由于以下三种配置(1,6)、(2,5)和(4,3)中的每一种的先行和后备的和相同,因此配置之间的面积差可忽略不计。总体而言,这些实施方案的大部分面积在存储器中。
Figure BDA0002639709390000161
表6:用于使用PRA和STR结构的面积分解
下表7将本文公开的权重跳跃和激活性质利用加速器的实施方案与其他可用加速器进行了比较。表7突出显示了这些设计的几个相关特性:1)对哪些输入数据跳过了乘法累加计算,2)对哪些输入数据避免了存储器引用,3)对哪些输入数据执行了成本降低的乘法累加;4)对哪些输入数据执行了成本降低的存储器访问;5)如何将输入数据路由到适当的计算单元或存储单元;以及6)用于计算内积的排序。
Cnvlutin(参见:J.Albericio、P.Judd、T.Hetherington、T.Aamodt、N.EnrightJerger和A.Moshovos,“Cnvlutin:Ineffectual-neuron-free deep neural networkcomputing,”2016年IEEE/ACM计算机架构国际会议(ISCA),2016和多伦多大学管理委员会所有的标题为“Accelerator for Deep Neural Networks”的PCT专利申请公布号WO 2017/214728A1(发明人:Patrick Judd、Jorge Albercio、Andreas Moshovos、Sayeh Sharify和Alberto Delmas Lascorz),这两篇文献都据此以引用方式并入)跳过了针对无效激活(IA)的计算和存储器访问两者。除了与每次激活配对的每组权重要有独立权重端口外,它不需要特殊的输入或输出路由机制。
Cambricon-X(参见S.Zhang、Z.Du、L.Zhang、H.Lan、S.Liu、L.Li、Q.Guo、T.Chen和Y.Chen,“Cambricon-x:An accelerator for sparse neural networks,”第49届年度IEEE/ACM微架构国际研讨会,MICRO 2016,台湾台北,2016年10月15日至19日,第1-12页,2016,该文献据此以引用方式并入)在基于内乘的加速器中利用无效权重(IW)。将非零权重压缩到存储器中,并标记为增量(权重之间的距离)。每个周期,一个PE(等效于我们的内积单元)提取16个权重并从具有256的向量中选择对应的16个激活。使用链式加法器将增量解码为绝对偏移量。它使用256宽的输入激活交叉开关将激活与对应的权重配对。该途径类似于本发明的具有非常大的16×16先行窗口和经编码的复用选择的权重跳跃加速器。这需要用于256个激活的存储器接口。作者讨论了这种激活带宽使他们的途径对于可扩展加速器来说不切实际。
SCNN(参见:A.Parashar、M.Rhu、A.Mukkara、A.Puglielli、R.Venkatesan、B.Khailany、J.Emer、S.W.Keckler和W.J.Dally,“Scnn:An accelerator for compressed-sparse convolutional neural networks”,第44届年度计算机架构国际研讨会论文集,ISCA'17,(美国纽约州纽约市),第27-40页,ACM,2017,该文献据此以引用方式并入)跳过了无效权重和无效激活两者的计算和存储器访问。它将权重和激活压缩在存储器中,在所述存储器中仅存储了有效元素,每个有效元素后是已被忽略的无效元素的数量。16×32输出交叉开关将乘法运算结果路由到32个累加器存储体。SCNN被设计用于最小化输入读取带宽。由于SCNN使用4×4笛卡尔乘积,因此对于FCL来说仅能使用16个乘法器中的4个,所述FCL没有权重重复使用。
本发明的权重跳跃加速器跳过了无效权重的计算和存储器访问,尽管程度不同于SCNN或Cambricon-X。它减少了无效激活和有效激活(EA)两者的存储器访问的带宽和能量成本。它使用混合输入权重-静态/激活-动态途径来匹配激活和权重,因为它针对输入激活利用稀疏置乱网络并且针对权重利用受限的静态调度。
为了捕获稀疏性,SCNN和Cambricon-X使用密集的硬件互连。SCNN使用输出交叉开关,而Cambricon-X使用输入交叉开关。本发明的权重跳跃加速器使用稀疏输入互连来捕获足够数量的无效权重,并通过替代地针对所有激活来补偿机会损失。
Figure BDA0002639709390000171
Figure BDA0002639709390000181
表7:CNN加速器的比较
如图7B的实施方案中所呈现,前端使用每权重多路复用器信号(图7B中的ws),这允许每个权重通道独立于其他权重通道执行权重提升。然而,这些信号代表存储器开销。减少此开销是优选的,并且越是如此,权重数据宽度越窄。为此,我们进行以下观察:1)使用每权重ws信号到超量配置,因为当考虑每个PE的所有ws信号时,并非所有组合都是有效的;以及2)甚至消除有效的组合中的一些(例如,从未发生或不频繁的组合)可能不会不利影响TCL充分利用稀疏性的能力。因此,我们可以限制TCL前端所支持的权重移动的组合,从而减少指定在每个步骤中使用哪个调度表所需的位数。例如,我们可以存储每组权重的调度选择字段(SS)。TCL可以将SS扩展为瓦片中每权重ws信号,这是对设计的外科修改。例如,每个具有16个权重的组的4位SS字段可以支持2S S=16种不同的调度模式,每种调度模式映射到3b 16=包括16个ws信号的48b向量。SS信号到ws的映射可以是静态的或可编程的。在后一种情况下,它可以以适当的粒度(诸如每过滤器或每层)提供。对于我们的示例,16×48b表格可以每过滤器将这些SS信号映射到16个调度步骤的集合。剖析显示,此类布置不会明显影响所研究网络的性能(例如,其覆盖了GoogleNet-ES中所有调度步骤的96%)。
图15示出了前述途径的实现方式。在该实现方式1500中,将复用选择表(MST)1520引入到每个过滤器通道1540。或者,可以在多个通道之间共享MST。MST只能用于加载复用选择信号的一些最频繁使用的组合。可以按方便的时间间隔进行加载,诸如每个过滤器每层一次、每几层一次、或甚至以子过滤器粒度。在此实现方式中,每行权重的小ws字段可用于指定要在每个步骤中使用的调度。因此,可以大大减少选择信号的开销。
只要存在稀疏性,前端实施方案就也可以用来加速训练。例如,在仅执行更新中的一些的选择性反向传播方法中就是这种情况。这种方法有效地将权重更新值中的一些转换为零,从而在反向传播阶段期间引入了稀疏性。在反向传播期间在每一层的输出处,调度器(最优选贪婪调度器且在硬件中)的轻量级实现可以在将更新发送给处理元件之前将所述更新重排。前端是数据类型不可知的,因此可以在正向和反向传播阶段中一样地与浮点、定点或混合表示一起使用。
如本领域技术人员将理解的,在操作中,上述部件可以由控制器控制,该控制器可以例如是可编程有限状态机或可以控制作为功能单元的加速器的可编程处理器。根据实施方案,可编程有限状态机可以具有若干个控制和数据寄存器以及可能的程序和数据存储器,并且将各种控制信号输出到神经网络***中本文所述的其他部件。
本发明可以其它特定形式来体现而不会脱离其精神或基本特性。对于本领域技术人员而言,本发明的某些调适和修改将是明显的。因此,当前讨论的实施方案被认为是说明性的而不是限制性的,本发明的范围由所附权利要求而不是前述描述来指示,并且因此落入权利要求的等效含义和范围内的所有改变旨在于被权利要求包含。

Claims (39)

1.一种用于利用输入稀疏性的神经网络加速器瓦片,所述瓦片限定权重通道集合和激活通道集合,每个权重通道对应于激活通道,所述瓦片包括:
权重存储器,所述权重存储器用于为所述权重通道集合中的每个权重通道供应权重和权重选择元数据;
激活选择单元,所述激活选择单元用于接收输入激活值集合并重排所述输入激活值集合以向每个激活通道供应重排的激活值集合;
多路复用器集合,所述多路复用器集合包括每对激活通道和权重通道至少一个多路复用器,每个多路复用器被配置为基于所述权重通道权重选择元数据针对所述激活通道从重排的激活值的激活通道集合选择组合激活值;以及
组合单元集合,所述组合单元集合包括每个多路复用器至少一个组合单元,每个组合单元被配置为将所述激活通道组合值与所述权重通道权重组合以输出权重通道乘积。
2.根据权利要求1所述的瓦片,所述瓦片还包括激活存储器,所述激活存储器用于将所述输入激活值集合供应给所述激活选择单元。
3.根据权利要求1所述的瓦片,其中所述多路复用器集合中的每个多路复用器被配置为从所述对应的重排的激活值集合和从附加的通道激活值集合中选择所述组合激活,所述附加的通道激活值集合由至少一个附加激活通道的至少一个重排的激活值形成。
4.根据权利要求1所述的瓦片,所述瓦片还包括加法器树,所述加法器树用于接收至少两个八通道乘积。
5.根据权利要求1所述的瓦片,其中所述权重通道集合的所述权重通道权重限定至少一个神经网络过滤器。
6.根据权利要求1所述的瓦片,其中所述组合单元是乘法器、加法器和移位器中的一者。
7.一种神经网络加速器,所述神经网络加速器包括根据权利要求1所述的至少两个瓦片。
8.根据权利要求1所述的瓦片,其中每个重排的激活值集合包括标准权重激活值和至少一个先行激活值。
9.根据权利要求1所述的瓦片,所述瓦片在激活效率利用加速器结构上实现。
10.根据权利要求1所述的瓦片,其中初始激活值集合是激活位。
11.根据权利要求1所述的瓦片,其中所述初始激活值集合是2的有符号幂。
12.根据权利要求3所述的瓦片,其中所述多路复用器集合是具有统一大小的多路复用器集合。
13.根据权利要求12所述的瓦片,其中所述统一大小是2的幂。
14.根据权利要求13所述的瓦片,其中所述重排的激活值集合的大小大于所述附加通道激活值集合的大小。
15.根据权利要求12所述的瓦片,其中所述重排的激活值集合和所述附加的通道激活值集合用于激活值的组合集合,并且所述激活值的组合集合包含8个激活。
16.根据权利要求3所述的瓦片,其中所述附加的通道激活值集合由来自至少两个附加的激活通道中的每一者的至少一个重排的激活值形成。
17.根据权利要求16所述的瓦片,其中所述至少两个附加的激活通道是非连续的激活通道。
18.根据权利要求1所述的瓦片,其中所述瓦片被配置为接收作为至少一个打包的激活值集合的所述输入激活值集合,所述至少一个打包的激活值集合逐位存储至由精度值限定的所需精度,所述瓦片被配置为解开所述至少一个打包的激活值集合。
19.根据权利要求18所述的瓦片,其中所述至少一个打包的激活值集合包括第一打包的激活值集合和第二打包的激活值集合,所述第一打包的激活值集合逐位存储到由第一精度值限定的第一所需精度,并且所述第二打包的激活值集合逐位存储到由第二精度值限定的第二所需精度,所述第一精度值与所述第二精度值无关。
20.根据权利要求18所述的瓦片,其中所述瓦片被配置以接收位向量集合,所述位向量集合包括与所述输入激活值集合的每一个打包的激活值集合对应的位向量,所述瓦片被配置为将每一个打包的激活值集合解开以如对应的位向量所指示的***零值。
21.根据权利要求1所述的瓦片,其中所述瓦片被配置为接收作为至少一个打包的权重通道权重集合的所述权重通道集合的所述权重通道权重,所述至少一个打包的权重通道权重集合逐位存储至由精度值限定的所需精度,所述瓦片被配置为解开所述至少一个权重通道权重集合。
22.根据权利要求1所述的瓦片,其中所述激活通道集合是至少两个列激活通道集合,每个列激活通道集合形成其中每个激活通道对应于权重通道的列,所述瓦片还包括在至少两个列之间的至少一个连接以在所述列之间转移至少一个权重通道乘积。
23.一种用于神经网络中的位串行计算的***,所述***包括:
一个或多个位串行瓦片,所述一个或多个位串行瓦片根据权利要求1被配置用于在神经网络中执行位串行计算,每个位串行瓦片接收输入神经元和突触,所述输入神经元包括至少一个输入激活值集合,并且所述突触包括至少一个权重集合和至少一个权重选择元数据集合,所述一个或多个位串行瓦片生成输出神经元,每个输出神经元是使用至少一个权重通道乘积形成的;
激活存储器,所述激活存储器用于存储神经元并通过分派器和缩减器与所述一个或多个位串行瓦片通信,
其中所述分派器从所述激活存储器读取神经元,并通过第一接口将所述神经元传送至所述一个或多个位串行瓦片,
并且其中所述分派器从存储器读取突触,并且通过第二接口将所述突触传送至所述一个或多个位串行瓦片;
并且其中所述缩减器从所述一个或多个位串行瓦片接收所述输出神经元,并且经由第三接口将所述输出神经元传送至所述激活存储器;
并且其中所述第一接口和所述第二接口中的一者将所述神经元或所述突触位串行地传送至所述一个或多个位串行瓦片,并且所述第一接口和所述第二接口中的另一者将所述神经元或所述突触位并行地传送至所述一个或多个位串行瓦片。
24.一种用于神经网络中各层的计算的***,所述***包括:
一个或多个瓦片,所述一个或多个瓦片根据权利要求1被配置用于在神经网络中执行计算,每个瓦片接收输入神经元和突触,所述输入神经元各自包括至少一个偏移,每个偏移包括至少一个激活值,并且所述突触包括至少一个权重集合和至少一个权重选择元数据集合,所述一个或多个瓦片生成输出神经元,每个输出神经元是使用至少一个权重通道乘积形成的;
激活存储器,所述激活存储器用于存储神经元并通过分派器和编码器与所述一个或多个瓦片通信,
其中所述分派器从所述激活存储器读取神经元,并将所述神经元传送到所述一个或多个瓦片,并且其中所述分派器从存储器读取突触并将所述突触传送到所述一个或多个瓦片,
并且其中所述编码器从所述一个或多个瓦片接收所述输出神经元,对所述输出神经元进行编码,并将所述输出神经元传送至所述激活存储器;
并且其中所述偏移由所述瓦片处理以便仅对非零神经元执行计算。
25.一种加速器瓦片,所述加速器瓦片包括:
激活选择单元,所述激活选择单元用于接收激活值集合并将所述激活值集合重排成至少一个多路复用器输入值集合;
权重值接收器集合,所述权重值接收器集合用于接收至少一个权重和至少一个权重选择元数据;
至少一个多路复用器,所述至少一个多路复用器用于接收所述至少一个多路复用器输入值集合中的至少一个和至少一个权重选择元数据,所述至少一个多路复用器被配置为应用所述至少一个权重选择元数据来从所述至少一个多路复用器输入值集合选择至少一个组合激活值;
至少一个组合器,所述至少一个组合器用于将所述至少一个组合激活值施加至所述至少一个权重以产生至少一个乘积;以及
至少一个乘积输出分配器,所述至少一个乘积输出分配器用于输出所述至少一个乘积。
26.一种神经网络加速器,所述神经网络加速器包括根据权利要求25所述的瓦片中的至少一个。
27.根据权利要求25所述的加速器瓦片,所述加速器瓦片还包括激活存储器,所述激活存储器用于将所述激活值集合供应给所述激活选择单元。
28.根据权利要求25所述的加速器瓦片,其中所述至少一个多路复用器输入值集合是至少两个多路复用器输入值集合,并且所述至少一个多路复用器被配置为接收所述至少两个多路复用器输入值集合中的至少一者以及来自至少另一个多路复用器输入值集合的至少一个激活值。
29.根据权利要求25所述的加速器瓦片,其中所述组合器是乘法器、加法器和移位器中的至少一者。
30.根据权利要求25所述的加速器瓦片,其中每一个多路复用器输入值集合包括标准激活值和至少一个先行激活值。
31.根据权利要求25所述的加速器瓦片,所述加速器瓦片在激活效率利用加速器结构上实现。
32.根据权利要求25所述的加速器瓦片,其中所述激活值集合是激活位。
33.根据权利要求25所述的加速器瓦片,其中所述激活值集合是2的有符号幂。
34.根据权利要求25所述的加速器瓦片,其中所述至少一个多路复用器中的每个多路复用器的大小是2的幂。
35.根据权利要求34所述的加速器瓦片,其中所述至少一个多路复用器中的每个多路复用器的大小是8。
36.根据权利要求1所述的神经网络加速器瓦片用于训练的用途。
37.根据权利要求25所述的加速器瓦片用于训练的用途。
38.根据权利要求1所述的瓦片,其中所述权重通道权重选择元数据为指定多路复用器选择信号的表编索引。
39.根据权利要求25所述的加速器瓦片,其中所述权重选择元数据为指定多路复用器选择信号的表编索引。
CN201980014141.XA 2018-02-16 2019-02-15 神经网络加速器 Pending CN111742331A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862710488P 2018-02-16 2018-02-16
US62/710,488 2018-02-16
US201862664190P 2018-04-29 2018-04-29
US62/664,190 2018-04-29
PCT/CA2019/050187 WO2019157599A1 (en) 2018-02-16 2019-02-15 Neural network accelerator

Publications (1)

Publication Number Publication Date
CN111742331A true CN111742331A (zh) 2020-10-02

Family

ID=67619691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980014141.XA Pending CN111742331A (zh) 2018-02-16 2019-02-15 神经网络加速器

Country Status (7)

Country Link
US (1) US20210004668A1 (zh)
JP (1) JP7349438B2 (zh)
KR (1) KR20200118815A (zh)
CN (1) CN111742331A (zh)
CA (1) CA3090329C (zh)
SG (1) SG11202007532TA (zh)
WO (1) WO2019157599A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113269316A (zh) * 2021-03-26 2021-08-17 复旦大学 支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块
CN113592066A (zh) * 2021-07-08 2021-11-02 深圳市易成自动驾驶技术有限公司 硬件加速方法、装置、设备、计算机程序产品及存储介质
CN113692592A (zh) * 2021-07-08 2021-11-23 香港应用科技研究院有限公司 动态瓦片并行神经网络加速器

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966835B2 (en) * 2018-06-05 2024-04-23 Nvidia Corp. Deep neural network accelerator with fine-grained parallelism discovery
US11769040B2 (en) 2018-09-10 2023-09-26 Nvidia Corp. Scalable multi-die deep learning system
CN109543816B (zh) * 2018-09-20 2022-12-06 中国科学院计算技术研究所 一种基于权重捏合的卷积神经网络计算方法和***
US11747205B2 (en) * 2019-02-27 2023-09-05 Deep Smart Light Ltd. Noninvasive, multispectral-fluorescence characterization of biological tissues with machine/deep learning
US11270197B2 (en) 2019-03-12 2022-03-08 Nvidia Corp. Efficient neural network accelerator dataflows
US20210110243A1 (en) * 2019-10-10 2021-04-15 Hewlett Packard Enterprise Development Lp Deep learning accelerator system interface
KR102410166B1 (ko) * 2019-11-27 2022-06-20 고려대학교 산학협력단 이종 곱셈-누셈 유닛을 이용하는 심층 신경망의 가속기
CN110991609B (zh) * 2019-11-27 2023-12-26 天津大学 用于数据传输的行缓存器
US11610104B1 (en) * 2019-12-30 2023-03-21 Ali Tasdighi Far Asynchronous analog accelerator for fully connected artificial neural networks
US11615256B1 (en) * 2019-12-30 2023-03-28 Ali Tasdighi Far Hybrid accumulation method in multiply-accumulate for machine learning
US20210303987A1 (en) * 2020-03-26 2021-09-30 Advanced Micro Devices, Inc. Power reduction for machine learning accelerator background
US11175844B1 (en) * 2020-05-13 2021-11-16 International Business Machines Corporation Optimal placement of data structures in a hybrid memory based inference computing platform
US20210357748A1 (en) * 2020-05-14 2021-11-18 Samsung Electronics Co., Ltd. Hierarchical weight preprocessing for neural network accelerator
US11500811B2 (en) * 2020-06-12 2022-11-15 Alibaba Group Holding Limited Apparatuses and methods for map reduce
JP2023534314A (ja) * 2020-07-21 2023-08-08 ザ ガバニング カウンシル オブ ザ ユニバーシティ オブ トロント 深層学習ネットワークのトレーニングを加速させるためのシステム及び方法
KR102464508B1 (ko) * 2020-12-31 2022-11-09 주식회사 메이아이 인공 신경망 모델을 경량화하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
KR20220147398A (ko) * 2021-04-27 2022-11-03 삼성전자주식회사 인공 지능 모델에 기반하여 데이터를 처리하는 전자 장치 및 그 동작 방법
US11797270B2 (en) 2021-06-17 2023-10-24 International Business Machines Corporation Single function to perform multiple operations with distinct operation parameter validation
US11669331B2 (en) 2021-06-17 2023-06-06 International Business Machines Corporation Neural network processing assist instruction
US11269632B1 (en) 2021-06-17 2022-03-08 International Business Machines Corporation Data conversion to/from selected data type with implied rounding mode
US11734013B2 (en) 2021-06-17 2023-08-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution
US11693692B2 (en) 2021-06-17 2023-07-04 International Business Machines Corporation Program event recording storage alteration processing for a neural network accelerator instruction
US11675592B2 (en) 2021-06-17 2023-06-13 International Business Machines Corporation Instruction to query for model-dependent information
US20210319317A1 (en) * 2021-06-24 2021-10-14 Intel Corporation Methods and apparatus to perform machine-learning model operations on sparse accelerators
WO2023004570A1 (en) * 2021-07-27 2023-02-02 Qualcomm Incorporated Activation buffer architecture for data-reuse in a neural network accelerator

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751913A (en) * 1996-07-29 1998-05-12 Industrial Technology Research Institute Reconfigurable neural network and difference-square neuron
US6199057B1 (en) * 1996-10-23 2001-03-06 California Institute Of Technology Bit-serial neuroprocessor architecture
US20150310311A1 (en) * 2012-12-04 2015-10-29 Institute Of Semiconductors, Chinese Academy Of Sciences Dynamically reconstructable multistage parallel single instruction multiple data array processing system
WO2017214728A1 (en) * 2016-06-14 2017-12-21 The Governing Council Of The University Of Toronto Accelerator for deep neural networks
CN107533667A (zh) * 2015-05-21 2018-01-02 谷歌公司 神经网络处理器中的向量计算单元
US20180046900A1 (en) * 2016-08-11 2018-02-15 Nvidia Corporation Sparse convolutional neural network accelerator

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417555B2 (en) * 2015-05-29 2019-09-17 Samsung Electronics Co., Ltd. Data-optimized neural network traversal
CA2990709C (en) * 2016-05-26 2018-09-04 The Governing Council Of The University Of Toronto Accelerator for deep neural networks
US20180046898A1 (en) * 2016-08-11 2018-02-15 Vivante Corporation Zero Coefficient Skipping Convolution Neural Network Engine
US10360163B2 (en) * 2016-10-27 2019-07-23 Google Llc Exploiting input data sparsity in neural network compute units
US10175980B2 (en) * 2016-10-27 2019-01-08 Google Llc Neural network compute tile
US11003985B2 (en) * 2016-11-07 2021-05-11 Electronics And Telecommunications Research Institute Convolutional neural network system and operation method thereof
KR102224510B1 (ko) * 2016-12-09 2021-03-05 베이징 호라이즌 인포메이션 테크놀로지 컴퍼니 리미티드 데이터 관리를 위한 시스템들 및 방법들
US10521488B1 (en) * 2016-12-30 2019-12-31 X Development Llc Dynamic partitioning
US10096134B2 (en) * 2017-02-01 2018-10-09 Nvidia Corporation Data compaction and memory bandwidth reduction for sparse neural networks
US10467795B2 (en) * 2017-04-08 2019-11-05 Intel Corporation Sub-graph in frequency domain and dynamic selection of convolution implementation on a GPU
WO2019108963A1 (en) * 2017-12-01 2019-06-06 MemSQL Inc. Accelerated filtering, grouping and aggregation in a database system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751913A (en) * 1996-07-29 1998-05-12 Industrial Technology Research Institute Reconfigurable neural network and difference-square neuron
US6199057B1 (en) * 1996-10-23 2001-03-06 California Institute Of Technology Bit-serial neuroprocessor architecture
US20150310311A1 (en) * 2012-12-04 2015-10-29 Institute Of Semiconductors, Chinese Academy Of Sciences Dynamically reconstructable multistage parallel single instruction multiple data array processing system
CN107533667A (zh) * 2015-05-21 2018-01-02 谷歌公司 神经网络处理器中的向量计算单元
WO2017214728A1 (en) * 2016-06-14 2017-12-21 The Governing Council Of The University Of Toronto Accelerator for deep neural networks
US20180046900A1 (en) * 2016-08-11 2018-02-15 Nvidia Corporation Sparse convolutional neural network accelerator

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113269316A (zh) * 2021-03-26 2021-08-17 复旦大学 支持稀疏神经网络计算加速器的稀疏数据选择逻辑模块
CN113592066A (zh) * 2021-07-08 2021-11-02 深圳市易成自动驾驶技术有限公司 硬件加速方法、装置、设备、计算机程序产品及存储介质
CN113692592A (zh) * 2021-07-08 2021-11-23 香港应用科技研究院有限公司 动态瓦片并行神经网络加速器
CN113692592B (zh) * 2021-07-08 2022-06-28 香港应用科技研究院有限公司 动态瓦片并行神经网络加速器
CN113592066B (zh) * 2021-07-08 2024-01-05 深圳市易成自动驾驶技术有限公司 硬件加速方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2019157599A1 (en) 2019-08-22
JP7349438B2 (ja) 2023-09-22
CA3090329C (en) 2021-07-27
JP2021515300A (ja) 2021-06-17
US20210004668A1 (en) 2021-01-07
CA3090329A1 (en) 2019-08-22
KR20200118815A (ko) 2020-10-16
SG11202007532TA (en) 2020-09-29

Similar Documents

Publication Publication Date Title
CN111742331A (zh) 神经网络加速器
CN109416754B (zh) 用于深度神经网络的加速器
JP7474586B2 (ja) テンソル計算データフロー加速器半導体回路
JP7266065B2 (ja) ディープニューラルネットワーク用のシステム、コンピュータ実装方法及びコンピュータプログラム
JP7134955B2 (ja) ニューラルネットワーク計算ユニットにおける入力データのスパース性の活用
Delmas et al. Bit-tactical: Exploiting ineffectual computations in convolutional neural networks: Which, why, and how
Liu et al. A precision-scalable energy-efficient convolutional neural network accelerator
Umuroglu et al. Optimizing bit-serial matrix multiplication for reconfigurable computing
Chen et al. An efficient accelerator for multiple convolutions from the sparsity perspective
Tao et al. Lw-gcn: A lightweight fpga-based graph convolutional network accelerator
Morad et al. Efficient dense and sparse matrix multiplication on GP-SIMD
JP2023534314A (ja) 深層学習ネットワークのトレーニングを加速させるためのシステム及び方法
Shabani et al. Hirac: A hierarchical accelerator with sorting-based packing for spgemms in dnn applications
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法
US20230259282A1 (en) Core group memory processsing unit architectures and configurations
CN111522776B (zh) 一种计算架构
KR100722428B1 (ko) 리소스 공유 및 파이프 라이닝 구성을 갖는 재구성가능배열구조
Gunzinger et al. Achieving super computer performance with a DSP array processor
Gondimalla et al. Eureka: Efficient Tensor Cores for One-sided Unstructured Sparsity in DNN Inference
Mamiya et al. Data Rearrange Unit for Efficient Data Computation
Stuart An Efficient Hardware Architecture for Exploiting Sparsity in Neural Networks
Gondimalla ACCELERATING SPARSE MACHINE LEARNING INFERENCE
CN117688995A (zh) 一种卷积运算加速器及相关方法
Gebotys Optimizing energy during systems synthesis of computer intensive realtime applications

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
TA01 Transfer of patent application right

Effective date of registration: 20210208

Address after: Toronto, Ontario, Canada

Applicant after: Datan artificial intelligence Co.,Ltd.

Address before: Ontario, Canada

Applicant before: THE GOVERNING COUNCIL OF THE University OF TORONTO

TA01 Transfer of patent application right
CB03 Change of inventor or designer information

Inventor after: A. Mohovos

Inventor after: A. Delmas Laskoz

Inventor after: Z. Poulos

Inventor after: D. Malonstart

Inventor after: P Judd

Inventor after: S. Sharif mogadam

Inventor after: M Mahmoud

Inventor after: M nycoli

Inventor after: K. C.M. small

Inventor before: A. Mohovos

Inventor before: A. Delmas Laskoz

Inventor before: Z. Poulos

Inventor before: D. Malonstart

Inventor before: P Judd

Inventor before: S. Sally

Inventor before: M Mahmoud

Inventor before: M nycoli

Inventor before: K. C.M. small

CB03 Change of inventor or designer information
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40039282

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20220330

Address after: Gyeonggi Do Korea Suwon

Applicant after: SAMSUNG ELECTRONICS Co.,Ltd.

Address before: Toronto, Ontario, Canada

Applicant before: Datan artificial intelligence Co.,Ltd.

TA01 Transfer of patent application right