CN107239823A - 一种用于实现稀疏神经网络的装置和方法 - Google Patents

一种用于实现稀疏神经网络的装置和方法 Download PDF

Info

Publication number
CN107239823A
CN107239823A CN201610663175.XA CN201610663175A CN107239823A CN 107239823 A CN107239823 A CN 107239823A CN 201610663175 A CN201610663175 A CN 201610663175A CN 107239823 A CN107239823 A CN 107239823A
Authority
CN
China
Prior art keywords
sparse
matrix
unit
weight
calculation
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
CN201610663175.XA
Other languages
English (en)
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.)
Xilinx Inc
Original Assignee
Beijing Insight Technology Co Ltd
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 Insight Technology Co Ltd filed Critical Beijing Insight Technology Co Ltd
Priority to CN201610663175.XA priority Critical patent/CN107239823A/zh
Priority to US15/242,625 priority patent/US20180046895A1/en
Priority to US15/390,660 priority patent/US10832123B2/en
Priority to US15/390,556 priority patent/US10984308B2/en
Priority to US15/390,563 priority patent/US10698657B2/en
Priority to US15/390,559 priority patent/US10762426B2/en
Priority to US15/390,744 priority patent/US10810484B2/en
Publication of CN107239823A publication Critical patent/CN107239823A/zh
Pending legal-status Critical Current

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
    • 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
    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

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*N个计算单元、控制单元和输出缓存单元。本发明还提出了一种用于该装置的并行计算方法,不仅可以在输入向量维度上做共享,也可以在稀疏神经网络的权值矩阵维度上做共享。本发明提出的装置和方法,大大降低了内存访问量,减少了片上缓存数量,有效地平衡了片上缓存、I/O访问以及计算之间的关系,提高了计算模块性能。

Description

一种用于实现稀疏神经网络的装置和方法
技术领域
本发明的目的在于提供一种稀疏神经网络加速器的实现装置和方法,以便达到提高运算效率的目的。
背景技术
人工神经网络(Artificial Neural Networks,ANN)也简称为神经网络(NNs),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。近年来神经网络发展很快,被广泛应用于很多领域,包括图像识别、语音识别,自然语言处理,天气预报,基因表达,内容推送等等。
如图1所示,神经元的积累的刺激是由其他神经元传递过来的刺激量和对应的权重之和,用Xj表示这种积累,Yi表示某个神经元传递过来的刺激量,Wi表示链接某个神经元刺激的权重,得到公式:
Xj=(y1*W1)+(y2*W2)+...+(yi*Wi)+...+(yn*Wn) (1)
当Xj完成积累后,完成积累的神经元本身对周围的一些神经元传播刺激,将其表示为yj得到如下所示:
yj=f(Xj) (2)
神经元根据积累后Xj的结果进行处理后,对外传递刺激yj。用f函数映射来表示这种处理,将它称之为激活函数。
在近几年里,神经网络的规模不断增长,公开的比较先进的神经网络都有数亿个链接,属于计算和访存密集型应用。
现有技术方案中通常是采用通用处理器(CPU)或者图形处理器(GPU)来实现,随着晶体管电路逐渐接近极限,摩尔定律也将会走到尽头。在神经网络逐渐变大的情况下,模型压缩就变得极为重要。
模型压缩可以将稠密神经网络变成稀疏神经网络,可以有效减少计算量、降低访存量。然而,CPU与GPU无法充分享受到稀疏化后带来的好处,取得的加速极其有限。而传统稀疏矩阵计算架构并不能够完全适应于神经网络的计算。
发明内容
本发明提出一种用于实现稀疏神经网络的装置,包括:输入单元,用于接收多个输入向量a0,a1,…;稀疏矩阵读取单元,用于读取所述稀疏神经网络的权重矩阵W,其中所述稀疏矩阵W被用于表示所述稀疏神经网络中的一层的权重;M*N个计算单元PExy,x取值0,1,…M-1,y取值0,1,…N-1,x表示第x组PE,y表示某组PE中的第y个PE;控制单元,用于进行:把M个输入向量ai提供给对应的M组计算单元PE,以及把稀疏矩阵W的一部分Wp提供给各组计算单元中的第j个计算单元,j取值0,1,…N-1,其中各个计算单元PE对所分配的输入向量ai和稀疏矩阵的一部分Wp进行计算;输出缓存模块,用于把多个计算单元的计算结果进行累加并输出多个输出向量b0,b1…。
根据本发明的实施例,其中所述控制单元被进一步配置为:把M个输入向量ai提供给对应的M组计算单元PE,其中i的选取方式为:i(MOD M)=0,1,…M-1。
根据本发明的实施例,其中所述控制单元被进一步配置为:把稀疏矩阵W的所述部分Wp提供给各组计算单元中的第j个计算单元PExj,其中对应于该j个计算单元PExj的稀疏矩阵W的所述部分Wp的选取方式为:p(MOD N)=j,p取值为0,…,P-1,j=0,1,…N-1,所述矩阵W的大小为P*Q。
根据本发明的实施例,输出缓存单元中,可以使用乒乓结构或类似方法来实现数据缓存。通过减少运算数据准备时间,达到提高运算效率的目的。
根据本发明的实施例,还可以在位置信息模块、译码模块使用乒乓结构或类似方法来实现数据缓存。
根据本发明的另一方面,提出了一种用于实现稀疏神经网络的方法,包括:接收多个输入向量a0,a1,…;读取所述稀疏神经网络的权重矩阵W,其中所述稀疏矩阵W被用于表示所述稀疏神经网络中的一层的权重;把所述输入向量和权重矩阵W输入给M*N个计算单元PExy,x取值0,1,…M-1,y取值0,1,…N-1,x表示第x组PE,y表示某组PE中的第y个PE,其中把M个输入向量ai提供给对应的M组计算单元PE,把稀疏矩阵W的一部分Wp提供给各组计算单元中的第j个计算单元,j取值0,1,…N-1,使用各个计算单元PE对所分配的输入向量ai和稀疏矩阵的一部分Wp进行计算;把多个计算单元的计算结果进行累加并输出多个输出向量b0,b1…。
根据本发明的实施例,其中所述把M个输入向量ai提供给对应的M组计算单元PE包括:i的选取方式为i(MOD M)=0,1,…M-1。
根据本发明的实施例,其中把稀疏矩阵W的所述部分Wp提供给各组计算单元中的第j个计算单元PExj包括:对应于该j个计算单元PExj的稀疏矩阵W的所述部分Wp的选取方式为,p(MOD N)=j,p取值为0,…,P-1,j=0,1,…N-1,所述矩阵W的大小为P*Q。
本发明提出的并行计算结构,可以同时支持多路运算,也可以根据需求进行一路运算,该发明提高了计算效率也具有一定的灵活度。
本发明提出的并行计算方法,不仅可以在输入向量维度上做共享,也可以在稀疏神经网络的权值矩阵维度上做共享,这大大降低了内存访问量,同时也减少了片上缓存数量。本发明有效地平衡了片上缓存、I/O访问以及计算之间的关系,较好提高了计算模块的性能。
附图说明
图1示出了神经网络中神经元的积累和激励的原理图。
图2示出了一种高效推理引擎(EIE),适用于用于机器学习应用的压缩深度神经网络模型。
图3示出了矩阵W和向量a和b在4个计算单元PE之间交错。
图4示出了以CCS格式保存权重矩阵W的一部分,其对应图3的PE0
图5示出了图2的EIE架构中解码器部分的更详细结构图。
图6示出了根据本发明实施例的实现神经网络的硬件架构。
图7示出了本发明实施例提出的硬件架构的简化图。
图8示出了本发明实施例提出的硬件架构在使用4个计算单元(PE)时的示意图。
图9示出了基于图8的本发明实施例的计算矩阵W和输入向量a时的示意图。
图10示出了基于图9的实施例来以CCS格式保存权重矩阵W。
具体实施方式
深度神经网络(DNN)的压缩和计算
DNN的FC层执行计算如下:
b=f(Wa+v) (3)
其中a是输入激励向量,b是输出激励向量,υ是偏置,W是权重矩阵,f是非线性函数,在CNN和一些RNN中典型的线性纠正单元(ReLU)。有时候通过添加额外的给向量a,将υ与W结合,因此在以下段落中忽略偏置。
对于典型的FC层,像VGG-16或AlexNet的FC7,激励向量长4k,权重矩阵是4K×4K(16M权重)。权重表示为单精度浮点数,所以这样的一层需要64MB的存储。方程(3)的输出激励是逐个元素计算的,如:
韩松等人的“Deep compression:Compressing deep neural networks withpruning,trained quantization and Huffman coding”一文介绍了一种方法,通过结合修剪和权重共享不损失精度地压缩DNNs。修剪使得矩阵W稀疏,我们基准层的密度D范围从4%到25%。使用4位索引Iij,具有16种可能权重值的共享表S,权重共享取代权重Wij
随着深度压缩,方程(4)的每个激励计算变成:
其中,Xi是Wij≠0的列j的集合,Y是aj≠0的索引j的集合,Iij是替代Wij的共享权重索引,S是共享权重的表。
这里Xi代表W的静态稀疏,Y表示a的动态稀疏。对于给定的模型,集合Xi是固定的。集合Y随着各个输入各不相同。
加速方程(5)用来加速实现压缩DNN。执行索引S[Iij],乘-加那些Wij和aj为非零的列,这样矩阵和向量的稀疏性质都得到了利用。这导致了一个动态不规则计算。执行索引本身包含了一些位处理,用于提取4位Iij和额外负载。
CRS和CCS
对于稀疏矩阵的处理,为了减少内存,往往需要对矩阵进行压缩存储,比较经典的存储方法包括:行压缩(Compressed Row Storage CRS)和列压缩存储(Compressed ColumnStorage CCS)。
为了利用激励函数的稀疏性,我们将编码稀疏权重矩阵W存入压缩列存储(CCS)格式的变量中。
对于W矩阵每列Wj,我们存储一个包含非零权重的向量v,以及等长向量z,向量z用于编码v的相应条目之前零的个数,v和z各自由一个四位数值表示。如果超过15个零出现在一个非零的条目,在向量v中添加一个零。例如,以下列被编码为:
[0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3]
v=[1,2,0,3],z=[2,0,15,2]。
所有列的v和z的都存储在一对大阵列中,其中指针向量p指向每个列的向量的开始。p指针向量中的最后一项指向超过最后一个向量元素,这样pj+1-pj给出了第j列中的非零数(包括填补的零)。
通过压缩列存储格式(CCS format)中列存储稀疏矩阵,使得利用激励函数的稀疏性变得容易。只需要用每个非零激励与其相应列中的所有非零元素相乘。
美国专利US Patent 9317482“UNIVERSAL FPGA/ASIC MATRIX-VECTORMULTIPLICATION ARCHITECTURE”中更详细地披露了如何使用Compressed Sparse Row(CSR)在基于CPU和GPU的方案中,其中也采用Compressed Variable Length Bit Vector(CVBV)format。
采用EIE并行处理压缩DNN
本发明的发明人之一曾经提出了一种高效的推理引擎(EIE)。为了更好的理解本发明,在此简要介绍EIE的方案。
图2显示了一种高效的推理引擎(EIE),适用于用于机器学习应用的压缩深度神经网络模型,尤其是采用上述CCS或CRS格式存储的压缩DNN。
中央控制单元(CCU)控制PEs的阵列,每个PEs计算压缩网络中的一片(slice)。CCU从分布式前置零检测网络接收非零输入激励,并把它们广播给PEs。
上述方案中,几乎所有EIE中的计算对于PEs是局部的,除了向所有PEs广播的非零输入激励的集合。然而,激励集合和广播的时间并不是关键的,因多数PEs需要多种周期来完成每个输入激励的计算。
激励队列和负载平衡
输入激励向量aj的非零元素和相应的指标索引j被CCU广播到每个PE中的激励队列。如果任何一个PE有一个完整的队列,广播失效。在任何时间,每个PE处理在其队列头部的激励。
激励队列:允许每个PE建立一个工作队列,以消除可能出现的过载不平衡。因为在一个给定列j中的非零的数量可能对于不同PE会有所不同。
指针读取单元:在激励队列头部的条目的索引j被用来查找开始和结束的指针Pj和Pj+1,对应于第j列的v和x阵列。为了允许在一个周期中读取两个指针且使用单口SRAM阵列,在两SRAM内存库中存储指针,使用地址的LSB在内存库之间进行选择。pj,pj+1总会在不同的内存库中。EIE指针的长度是16位。
稀疏矩阵读取单元:稀疏矩阵读取单元使用指针的pj,pj+1从稀疏矩阵SRAM读Ij列的该PE片(slice)的非零元素(如果有的话)。SRAM中的每个条目是8位长度,包含v的4位数据和x的4位数据。
为了效率,编码的稀疏矩阵I的PE的片(slice)被存储在64位宽的SRAM中。因此,每次从SRAM读取8条。当前指针p的高13位用于选择SRAM行,低3位选择该行中的八条之一。单个(v,x)条被提供给每个周期的算术单元。
运算单元:算术单元从稀疏矩阵读取单元接收(v,x)条,执行乘法累加操作bx=bx+v×aj。索引x是用来索引一个累加器阵列(目的地激励寄存器),而v乘以在激励队列头部的激励值。因为v以4位编码形式存储,它首先通过查表(codebook)扩展成16位定点数。如果在两个相邻的周期上选择相同的累加器,则提供旁路通路,将加法器的输出导向其输入。
激励读/写:激励读/写单元包含两个激励寄存器文件,分别容纳一轮FC层计算期间的源激励值和目的地激励值。在下一层,源和目标寄存器文件交换它们的角色。因此,不需要额外的数据传输来支持多层前馈计算。
每个激励寄存器文件拥有64个16位激励。这足以容纳64PEs的4K激励向量。更长的激励向量可容纳在2KB的激励SRAM中。当激励向量大于4K长度时,M×V将分批次(batch)完成,其中每个批次的长度是4K或更少。所有本地减法是在寄存器完成,SRAM只在批次的开始时被读取、在结束时被写入。
分布式前置非零检测:输入激励分层次地分布于各个PE。为了利用输入向量稀疏性,我们使用前置非零检测逻辑来选择第一个正向(positive)的结果。每一组4PEs进行输入激励的局部前置非零检测。结果被发送到前置非零检测节点(lnzd节点),如图2所示。4个lnzd节点找到下一个非零激励,并发送结果给lnzd节点树。这样的布线不会因为添加PEs而增加。在根lnzd节点,正向激励是通过放置在H树的单独导线被广播给所有PEs。
中央控制单元:中央控制单元(CCU)是根lnzd节点。它与主控器,如CPU通讯,通过设置控制寄存器来监控每个PE的状态。中央单元有两种模式:I/O和计算。
在I/O模式,所有的PEs闲置,每个PE的激励和权重可以通过与中央单元连接的DMA访问。
在计算模式,CCU会持续地从源激励存储库顺序收集和发送数值,直到输入长度溢出。通过设置指针阵列的输入长度和起始地址,EIE将被指示执行不同的层。
图3显示了如何使用多个处理单元(PEs),交织计算矩阵W的各个行,分配矩阵W和并行化矩阵向量计算。
对于N个PEs,PEk拥有所有列Wi,输出激励bi和输入激励ai,因子i(mod N)=k。PEk中的列Wj的部分被存储为CCS格式,但计数的零仅指这个PE的列的子集的零。每个PE有自己的v,x和p阵列,v,x和p阵列用于编码其所计算的稀疏矩阵的一部分。
图3中,显示了矩阵W和向量a和b在4PEs交错。相同颜色的元素都存储在相同的PE里。
图3中,将输入激励向量(长度为8)乘以一个16×8权重矩阵W产生一个输出激励向量b(长度为16)在n=4的PES上。a,b和W的元素根据他们的PE配置情况进行颜色编码。每一个PE拥有W的4行,a的2个元素,和b的4个元素。
通过扫描向量a以找到它的下一个非零值aj,依据索引j向所有PEs广播aj,进行稀疏矩阵×稀疏向量运算。每个PE再将aj乘以在列Wj部分的非零元素,在累加器中累加各个部分和,以输出激励向量b中的每个元素。在CCS表示中,这些非零权重被连续存储,每个PE只需沿着其v阵列从位置pj到pj+1-1加载权重。为了寻址输出累加器,通过保持x阵列条目的运行总和,产生对应于每个权重Wij的行数i。
在图3的例子中,第一个非零是PE2上的a2。a2的值和其列索引2向所有PEs广播。每个PE将a2乘以其列2部分中的每个非零值。PE0将a2乘以W0,2和W12,2;PE1在列2中全为零,故不执行乘法;PE2将a2乘以W2,2和W14,2,等等。将每个点积的结果相加到相应的行累加器。例如,PE0计算b0=b0+W0,2a2和b12=b12+W12,2a2。在每层的计算前,累加器被初始化为零。
交错(interleaved)CCS表示法有助于利用激励向量a的动态稀疏性,权重矩阵W的静态稀疏性。
通过仅广播输入激励a的非零元素,利用了输入激励的稀疏性。a中对应于零的列被完全跳过。交错(interleaved)CCS表示法允许每个PE迅速在每列找到非零并乘以aj。这种组织方式也保持了所有的计算在本地PE,除了广播输入激励以外。
图3中的矩阵的交错CCS表示法如图4所示。
图4显示了对应图3的PE0的相对索引的存储器布局、间接加权和交错的CCS格式。
相对行索引(relative row index):当前非零权值与前一个非零权值之间的零元素的个数;
列位置(column pointer):当前“列位置”与前一个“列位置”之差=本列的非零权值的个数。
基于图4的编码方式来读取非零权值方式:
(1)读取2个连续的“列位置”,求差,该差值=本列的非零权重的个数;
(2)利用相对行索引,获得该列的非零权重的行位置,从而获得非零权重的行、列位置信息。
此外,图4所示的权重值是被进一步压缩后得到的虚拟权重(virtual weight)。
图5示出了根据EIE的硬件结构中的解码器(weight decoder)部分。
如图5所示,权重查找表(weight look-up)和索引(index Accum)对应于图2的权重解码器(weight decoder)。通过权重查找表和索引,解码器把虚拟权重(例如,4bit)解码为真实权重(例如,16bit)。
这是因为压缩DNN模型具有稀疏性,以索引方式存储和编码。在对输入数据进行处理时,压缩DNN的编码权重被解码,通过权重查找表被转换为真实权重,再进行计算。
对EIE方案的改进
近年来随着神经网络规模的增大,对高并发计算需求也越来越强烈。依某些应用为例,权值维度2048*1024,输入向量为1024,非稀疏化的计算量为2048*1024*2。随着技术的提高芯片计算性能也在提高,中等规模定制芯片计算核也有上千甚至几千。
如果使用前述EIE的方案,存在如下问题:
首先,根据EIE设计方案,在计算单元(PE)数量增加时,指针向量(PointerVector,具体而言,图2的Even Ptr SRAM Bank和Odd Ptr SRAM Bank)占用太多SRAM资源。所占用的存储量也会线性增长。如果采用1024个PE,EIE的设计就需要1024*2=2048存储单元;
其次,随着PE数量的增加,权值译码模块采用的查找表(codebook)个数也线性增加,如采用1024个PE也需要1024个存储表。
在定制芯片中,上述两个问题随着PE量的增加都是很大的挑战。如何解决上述方案的上述两个问题?
本发明的实施例中,不仅把输入向量广播,还广播Wi(W的一部分)。上述方案的EIE仅把输入向量x0广播给多个PE。
本发明提出了一种用于实现稀疏神经网络的装置。根据本发明实施例的基本结构图如图6所示。
如图6所示的装置包括如下各个模块。
输入激励队列(Act),用于接收多个输入向量a0,a1,…。
根据本发明的实施例,所述输入激励队列还包括多个先进先出缓存(FIFO)单元,各个先进先出缓存(FIFO)单元与各组计算单元相对应。
多组计算单元(ArithmUnit),每组的计算单元编号为0,1,…N-1,
多个指针读取单元(Ptrread),用于读取被存储的权重矩阵W的指针信息(即,位置信息),并输出给稀疏矩阵读取单元。
多个稀疏矩阵读取单元(SpmatRead),基于指针信息,读取所述稀疏神经网络的权重矩阵W中的非零值,所述稀疏矩阵W被用于表示所述稀疏神经网络中的一层的权重。
根据本发明的一个实施例,所述稀疏矩阵读取单元进一步包括解码单元,用于编码权重矩阵进行解码,以获得稀疏矩阵中的非零权重值。
控制单元(未示出),用于多个输入向量广播给多组计算单元,以及把稀疏矩阵的一部分广播给各组计算单元中的相应计算单元。
具体而言,假设有总数256个计算单元PEmn,被分组为M*N。假设M=8,N=32,m取0,1,…7,n取0,1,…31,则有8组计算单元,每组有32个计算单元。
控制单元控制输入激励队列每次输入8个输入向量给8组计算单元,例如分别编号为a0,a1,…a7。
控制单元还控制多个稀疏矩阵读取单元(SpmatRead),每次输入权重矩阵的一部分Wp给8组计算单元中的各个计算单元PExj,j取0,1…N-1。其中假设矩阵W的大小为1024*512(P*Q),则PExj对应的Wj的选取方式为:p(MOD 32)=j,p=0,…1023,n=0,1,…31。
这种选取Wj的方式的优点在于,每隔N行抽选W中的1行以组成Wj。当稀疏矩阵步均匀时,即,稀疏矩阵的非零权重不是均匀分布时,这种分配方式尽可能地把非零权重均匀地分配给各个PE,从而避免了各个PE之间的负载不均衡。
当然,上述选取Wj的方式仅仅是示意性而非限制性的。本发明还可以采用其他分配方式。例如,Wj可以是从W中连续选取N行。或者,Wj可以是以其他间隔从W中抽选相应的行。
此外,还可以采用不同的方式对多个计算单元进行分组。例如4*64,M=4,N=64,每次算4个输入向量a1,…,a4。还例如,2*128,M=2,N=128,每次算2个输入向量a1,a2。
简言之,控制单元把M个输入向量广播给对应的M组计算单元PE,以及把稀疏矩阵W的一部分Wj广播给各组计算单元中的第j个计算单元,j取值0,1,…N-1。
随后,各个计算单元PE对所分配的输入向量ai和稀疏矩阵的一部分Wj进行计算。
图6所示的架构还包括输出缓存模块(ActBuf),用于把多个计算单元的计算结果进行累加并输出。
根据本发明的另一方面,还包括前置零检测单元(图6未示出),用于检测所述输入向量中的非零值,并输出给所述输入单元。
根据本发明的实施例,所述输出缓存模块采用乒乓结构(ping-pang)。输出缓存模块具有第一输出缓冲器和第二输出缓冲器,所述第一、第二输出缓冲器交替地接收并输出各个计算结果,其中在一个输出缓冲器接收当前计算结果时,另一个输出缓冲器输出前一个计算结果。
图7的模块是对图6的硬件结构的简化示图。
图7的位置模块对应图6的指针读取单元(PtrRead),图7的译码模块对应图6的多个稀疏矩阵读取单元(SpmatRead),图的计算单元PE对应图6的计算单元(ArithmUnit),图7的输出缓存对应图6的ActBuf。
基于本发明实施例提出的并行计算方法,不仅可以在输入向量维度上做共享,也可以在稀疏神经网络的权值矩阵维度上做共享,这大大降低了内存访问量,同时也减少了片上缓存数量。有效地平衡了片上缓存、I/O访问以及计算之间的关系,较好提高了计算模块的性能。
依1024个计算核为例,本设计发明可以采用32个PE做一个WX运算,同时计算32个WX(32*32=1024),其中位置模块需要32个,译码模块需要32,上述两个模块都没有随PE数量的增加也线性增加。
根据本发明的另一实施例,也可以采用16个PE计算一个矩阵向量乘,可以同时计算64个矩阵向量乘(16*64=1024),其中位置模块16个,译码模块16个,位置和译码模块被64个矩阵向量运算共享。
上述的两种配置32*32和16*64区别在于,单个矩阵向量乘的并发度,前者是32个PE计算一个WX,后者是16个PE计算一个WX,前者单个计算并发度比较高,单路延时较短。前者同时运算32路,后者同时计算64路。综上具体设计可以根据实际业务诉求、IO访问瓶颈、芯片资源等来具体配置。
例子1
为了简单说明本发明实施例的基本思路,依权重矩阵W为8*8、输入向量x为8为例,4个计算单元(2*2)对该设计发明进行详细描述。
本发明实施例以2个计算单元(process element PE)为一组计算单元来计算一个矩阵向量乘,可以同时处理两个输入向量,采用列存储(ccs)为例进行详细说明。
参见图8,显示了该例子的硬件结构示意图。
位置模块0(pointer):存储奇数行非零元素的列位置信息,其中P(j+1)-P(j)为第j列中非零元素的个数。
译码模块0:存储奇数行非零元素的权值和相对行索引。如果权值做编码,该模块完成权值的解码。
权值矩阵W的奇数行元素(在译码模块0中存储)会广播给两组PE00和PE10。权值矩阵W的偶数行元素(在译码模块1中存储)会广播给两组PE01和PE11。同时计算Y0=WX0和Y1=WX1。
输入缓存0:存储输入向量X0。
为了平衡计算单元间元素稀疏度的差异,每个计算单元的入口都添加先进先出缓存(FIFO)来提高计算效率。
控制模块:实现计算控制,使得各模块间信号同步,从而实现权值与对应输入向量的元素做乘,对应行值做累加。
计算单元PE00:完成权值矩阵奇数行元素与输入向量X0对应元素的乘累加。
输出缓存00:存放中间计算结果以及最终Y0的奇数元素。
与上类似,位置模块1、译码模块1、计算单元PE01、输出缓存01,计算Y0的偶数元素。
位置模块0、译码模块0、计算单元PE10、输出缓存10,计算Y1的奇数元素。
位置模块1、译码模块1、计算单元PE11、输出缓存11,计算Y1的偶数元素。
图9显示了图8的硬件结构如何操作进行计算矩阵W和输入性向量a。
如图9所示,奇数行元素由PEx0完成,偶数行元素由PEx1完成,输出向量的奇数元素由PEx0计算所得,输出向量的偶数元素由PEx1计算所得。
如图9所示,WX0矩阵向量乘,权值矩阵W的奇数行元素(图8中W的黄色元素)与X0的运算由PE00完成,权值矩阵W的偶数行元素(图8中W的非黄色)与X0的运算PE01完成,输出向量Y0的奇数元素(图8中Y0黄色元素)由PE00计算所得,输出向量的偶数元素由PE01计算所得(图8中Y0非黄色元素)。
WX1矩阵向量乘,权值矩阵W的奇数行元素与X1的运算由PE10完成,权值矩阵W的偶数行元素由与X1的运算PE11完成,输出向量Y1的奇数元素由PE10计算所得,输出向量的偶数元素由PE11计算所得。
输入向量X0会广播给两个PE00,PE01。
输入向量X1会广播给两个PE10,PE11。
权值矩阵W的奇数行元素(在译码模块0中存储)会广播给两组PE00和PE10。
权值矩阵W的偶数行元素(在译码模块1中存储)会广播给两组PE01和PE11;
W权值矩阵的分割需要软件算法或者MATLAB的支持,拆解完的数据通过接口直接写到存储模块中。
图10为PE00和PE10对应的权重信息是如何保存的。
相对行索引:当前非零权值与前一个非零权值之间的零元素的个数;
列位置:当前“列位置”与前一个“列位置”之差=本列的非零权值的个数。
基于图10的编码方式来读取非零权值方式:首先,读取2个连续的“列位置”,求差,该差值=本列的非零权重的个数;然后,利用相对行索引,获得该列的非零权重的行位置,从而获得非零权重的行、列位置信息。
根据本发明的一个实施例,图10的列位置信息(第三行元素)存储在位置模块0中,相对行索引和对应权值(第一行和第二行)存储在译码模块0中。
性能对比
在本发明的实施例中,不会随着计算单元PE的增加导致位置模块成线性增加,IO读写需求也不会线性增长。在定制电路中,能够做到片上存储、IO访问带宽、计算能力等之间的有效平衡。
例如,上述例子1如果采用EIE方案:完成矩阵向量乘,4个PE计算一个矩阵向量乘需要4个位置模块,4个译码模块,4个计算单元,4个输出缓存。
例子1使用相同计算单元,即,4个计算单元,可以同时计算两个矩阵向量乘,其中两个矩阵向量乘共享位置模块和译码模块,仅需要2个位置模块,2个译码模块,4个计算单元,4个输出缓存。
基于上述技术方案可知,根据实施例的架构,稀疏神经网络加速器的实现装置及方法具有以下有益的效果:
通过采用该方法,解决了CPU和GPU运算性能不足,计算中有效数据占比率低的问题,有效的提高了运算效率,提高了有效运算数;
通过针对稀疏神经网络的特点,采用专用片上缓存,充分挖掘了稀疏矩阵作为权值数据的重用性,避免了反复向片外存储单元读取数据,降低了对片外存储空间访问的带宽,避免了权值数据读取带宽成为稀疏神经网络的性能瓶颈。
需要说明的是,本说明书中的各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (20)

1.一种用于实现稀疏神经网络的装置,包括:
输入接收单元,用于接收多个输入向量a0,a1,…;
稀疏矩阵读取单元,用于读取所述稀疏神经网络的权重矩阵W,其中所述权重矩阵W被用于表示所述稀疏神经网络中的一层的权重;
M*N个计算单元PExy,x取值0,1,…M-1,y取值0,1,…N-1,x表示第x组PE,y表示某组PE中的第y个PE,
控制单元,用于进行:
把M个输入向量ai提供给对应的M组计算单元PE,以及
把稀疏矩阵W的一部分Wp提供给各组计算单元中的第j个计算单元,j取值0,1,…N-1,
其中各个计算单元PE对所分配的输入向量ai和稀疏矩阵的一部分Wp进行计算,
输出缓存单元,用于把多个计算单元的计算结果进行累加并输出多个输出向量b0,b1,…。
2.根据权利要求1的装置,其中所述控制单元被进一步配置为:
把M个输入向量ai提供给对应的M组计算单元PE,其中i的选取方式为:i(MOD M)=0,1,…M-1。
3.根据权利要求1的装置,其中所述控制单元被进一步配置为:
把稀疏矩阵W的所述部分Wp提供给各组计算单元中的第j个计算单元PExj,其中对应于该j个计算单元PExj的稀疏矩阵W的所述部分Wp的选取方式为:选择W的第p行,其中p(MODN)=j,p取值为0,…,P-1,j=0,1,…N-1,所述矩阵W的大小为P*Q。
4.根据权利要求1的装置,其中所述稀疏权重矩阵W以CCS或CRS格式压缩存储。
5.根据权利要求1的装置,其中所述稀疏权重矩阵W通过使用索引和查找表被编码。
6.根据权利要求4的装置,所述稀疏矩阵读取单元进一步包括:
位置单元,用于读取存储稀疏权重矩阵W中的各个非零权重值的位置信息。
7.根据权利要求5的装置,所述稀疏矩阵读取单元进一步包括:
解码单元,用于对编码权重矩阵进行解码,以获得权重矩阵中的非零权重值。
8.根据权利要求1的装置,还包括:
前置零检测单元,用于检测所述输入向量中的非零值,并输出给所述输入接收单元。
9.根据权利要求1的装置,所述输入接收单元还包括:
多个先进先出缓存(FIFO)单元,各个先进先出缓存(FIFO)单元与各组计算单元相对应。
10.根据权利要求1的装置,所述输出缓存单元还包括:
第一输出缓冲器和第二输出缓冲器,所述第一、第二输出缓冲器交替地接收并输出各个计算结果,其中在一个输出缓冲器接收当前计算结果时,另一个输出缓冲器输出前一个计算结果。
11.一种用于实现稀疏神经网络的方法,包括:
接收多个输入向量a0,a1,…;
读取所述稀疏神经网络的权重矩阵W,其中所述稀疏矩阵W被用于表示所述稀疏神经网络中的一层的权重;
把所述输入向量和权重矩阵W输入给M*N个计算单元PExy,x取值0,1,…M-1,y取值0,1,…N-1,x表示第x组PE,y表示某组PE中的第y个PE,其中把M个输入向量ai提供给对应的M组计算单元PE,把稀疏矩阵W的一部分Wp提供给各组计算单元中的第j个计算单元,j取值0,1,…N-1,
使用各个计算单元PE对所分配的输入向量ai和稀疏矩阵的一部分Wp进行计算,
累加并输出所述多个计算单元的计算结果为多个输出向量b0,b1…。
12.根据权利要求11的方法,其中所述把M个输入向量ai提供给对应的M组计算单元PE包括:
i的选取方式为i(MOD M)=0,1,…M-1。
13.根据权利要求11的方法,其中把稀疏矩阵W的所述部分Wp提供给各组计算单元中的第j个计算单元PExj包括:对应于该j个计算单元PExj的稀疏矩阵W的所述部分Wp的选取方式为:选择W的第p行,其中p(MOD N)=j,p取值为0,…,P-1,j=0,1,…N-1,所述矩阵W的大小为P*Q。
14.根据权利要求11的方法,其中包括,以CCS或CRS格式压缩存储所述稀疏权重矩阵W。
15.根据权利要求11的方法,其中使用索引和查找表编码所述稀疏权重矩阵W。
16.根据权利要求14的方法,所述读取步骤进一步包括:
位置读取步骤,用于读取存储稀疏权重矩阵W中的各个非零权重值的位置信息。
17.根据权利要求15的方法,所述读取步骤进一步包括:
解码步骤,用于对编码权重矩阵进行解码,以获得权重矩阵中的非零权重值。
18.根据权利要求11的方法,还包括:
前置零检测步骤,用于检测所述输入向量中的非零值,并提供给所述接收步骤。
19.根据权利要求11的方法,所述接收步骤还包括:
使用多个先进先出缓存(FIFO)单元提供把所述多个输入向量提供给相应的所述多组计算单元相对应。
20.根据权利要求11的方法,所述输出步骤还包括:
交替地把各个计算结果存储到第一输出缓冲器和第二输出缓冲器,并交替从第一输出缓冲器和第二输出缓冲器输出各个计算结果,其中在一个输出缓冲器接收当前计算结果时,另一个输出缓冲器输出前一个计算结果。
CN201610663175.XA 2016-08-12 2016-08-12 一种用于实现稀疏神经网络的装置和方法 Pending CN107239823A (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201610663175.XA CN107239823A (zh) 2016-08-12 2016-08-12 一种用于实现稀疏神经网络的装置和方法
US15/242,625 US20180046895A1 (en) 2016-08-12 2016-08-22 Device and method for implementing a sparse neural network
US15/390,660 US10832123B2 (en) 2016-08-12 2016-12-26 Compression of deep neural networks with proper use of mask
US15/390,556 US10984308B2 (en) 2016-08-12 2016-12-26 Compression method for deep neural networks with load balance
US15/390,563 US10698657B2 (en) 2016-08-12 2016-12-26 Hardware accelerator for compressed RNN on FPGA
US15/390,559 US10762426B2 (en) 2016-08-12 2016-12-26 Multi-iteration compression for deep neural networks
US15/390,744 US10810484B2 (en) 2016-08-12 2016-12-27 Hardware accelerator for compressed GRU on FPGA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610663175.XA CN107239823A (zh) 2016-08-12 2016-08-12 一种用于实现稀疏神经网络的装置和方法

Publications (1)

Publication Number Publication Date
CN107239823A true CN107239823A (zh) 2017-10-10

Family

ID=59983441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610663175.XA Pending CN107239823A (zh) 2016-08-12 2016-08-12 一种用于实现稀疏神经网络的装置和方法

Country Status (2)

Country Link
US (1) US20180046895A1 (zh)
CN (1) CN107239823A (zh)

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595211A (zh) * 2018-01-05 2018-09-28 百度在线网络技术(北京)有限公司 用于输出数据的方法和装置
CN108650201A (zh) * 2018-05-10 2018-10-12 东南大学 基于神经网络的信道均衡方法、译码方法及对应设备
CN108875956A (zh) * 2017-05-11 2018-11-23 广州异构智能科技有限公司 原生张量处理器
CN109086879A (zh) * 2018-07-05 2018-12-25 东南大学 一种基于fpga的稠密连接神经网络的实现方法
CN109245773A (zh) * 2018-10-30 2019-01-18 南京大学 一种基于块循环稀疏矩阵神经网络的编解码方法
CN109597647A (zh) * 2018-11-29 2019-04-09 龙芯中科技术有限公司 数据处理方法及设备
DE102017218889A1 (de) * 2017-10-23 2019-04-25 Robert Bosch Gmbh Unscharf parametriertes KI-Modul sowie Verfahren zum Betreiben
CN109697507A (zh) * 2017-10-24 2019-04-30 上海寒武纪信息科技有限公司 处理方法及装置
WO2019084788A1 (zh) * 2017-10-31 2019-05-09 深圳市大疆创新科技有限公司 用于神经网络的运算装置、电路及相关方法
CN109740739A (zh) * 2018-12-29 2019-05-10 北京中科寒武纪科技有限公司 神经网络计算装置、神经网络计算方法及相关产品
WO2019091020A1 (zh) * 2017-11-10 2019-05-16 中国科学院计算技术研究所 权重数据存储方法和基于该方法的神经网络处理器
CN109919826A (zh) * 2019-02-02 2019-06-21 西安邮电大学 一种用于图计算加速器的图数据压缩方法及图计算加速器
CN109961136A (zh) * 2017-12-14 2019-07-02 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109993286A (zh) * 2017-12-29 2019-07-09 深圳云天励飞技术有限公司 稀疏神经网络的计算方法及相关产品
CN109993289A (zh) * 2017-12-30 2019-07-09 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109993290A (zh) * 2017-12-30 2019-07-09 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN110059798A (zh) * 2017-11-06 2019-07-26 畅想科技有限公司 开发神经网络中的稀疏性
CN110163338A (zh) * 2019-01-31 2019-08-23 腾讯科技(深圳)有限公司 具有运算阵列的芯片运算方法、装置、终端及芯片
CN110890985A (zh) * 2019-11-27 2020-03-17 北京邮电大学 虚拟网络映射方法及其模型训练方法、装置
CN111882028A (zh) * 2020-06-08 2020-11-03 北京大学深圳研究生院 用于卷积神经网络的卷积运算装置
CN111915003A (zh) * 2019-05-09 2020-11-10 深圳大普微电子科技有限公司 一种神经网络硬件加速器
CN111937009A (zh) * 2018-04-05 2020-11-13 Arm有限公司 脉动卷积神经网络
CN112069459A (zh) * 2018-03-28 2020-12-11 英特尔公司 用于稀疏-密集矩阵乘法的加速器
WO2021196158A1 (zh) * 2020-04-03 2021-10-07 北京希姆计算科技有限公司 数据存取电路和方法
US11263292B2 (en) 2018-11-20 2022-03-01 Huawei Technologies Co., Ltd. Method, circuit, and SOC for performing matrix multiplication operation
CN114696946A (zh) * 2020-12-28 2022-07-01 郑州大学 数据编码及解码方法、装置、电子设备及存储介质
US11620490B2 (en) 2017-10-17 2023-04-04 Xilinx, Inc. Multi-layer neural network processing by a neural network accelerator using host communicated merged weights and a package of per-layer instructions
US11651202B2 (en) 2017-12-30 2023-05-16 Cambricon Technologies Corporation Limited Integrated circuit chip device and related product
CN116187408A (zh) * 2023-04-23 2023-05-30 成都甄识科技有限公司 稀疏加速单元、计算方法及稀疏神经网络硬件加速系统
US11704544B2 (en) 2017-12-30 2023-07-18 Cambricon Technologies Corporation Limited Integrated circuit chip device and related product
CN112069459B (zh) * 2018-03-28 2024-06-04 英特尔公司 用于稀疏-密集矩阵乘法的加速器

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10891538B2 (en) 2016-08-11 2021-01-12 Nvidia Corporation Sparse convolutional neural network accelerator
US10528864B2 (en) 2016-08-11 2020-01-07 Nvidia Corporation Sparse convolutional neural network accelerator
WO2018058509A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Dynamic neural network surgery
WO2018084576A1 (en) 2016-11-03 2018-05-11 Samsung Electronics Co., Ltd. Electronic device and controlling method thereof
US11562115B2 (en) 2017-01-04 2023-01-24 Stmicroelectronics S.R.L. Configurable accelerator framework including a stream switch having a plurality of unidirectional stream links
US10417304B2 (en) 2017-12-15 2019-09-17 International Business Machines Corporation Dual phase matrix-vector multiplication system
CN108256644B (zh) * 2018-01-05 2021-06-22 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
US20190332925A1 (en) * 2018-04-30 2019-10-31 International Business Machines Corporation Neural hardware accelerator for parallel and distributed tensor computations
US10644721B2 (en) 2018-06-11 2020-05-05 Tenstorrent Inc. Processing core data compression and storage system
KR20200013162A (ko) * 2018-07-19 2020-02-06 삼성전자주식회사 전자 장치 및 그의 제어 방법
EP3847590A4 (en) * 2018-09-07 2022-04-20 Intel Corporation CONVOLUTION OF NEURAL NETWORKS VIA SPARSE AND QUANTIZATION
US10834024B2 (en) 2018-09-28 2020-11-10 International Business Machines Corporation Selective multicast delivery on a bus-based interconnect
US11586417B2 (en) 2018-09-28 2023-02-21 Qualcomm Incorporated Exploiting activation sparsity in deep neural networks
CN112219210B (zh) * 2018-09-30 2024-03-29 华为技术有限公司 信号处理装置和信号处理方法
US10705967B2 (en) * 2018-10-15 2020-07-07 Intel Corporation Programmable interface to in-memory cache processor
US10846363B2 (en) * 2018-11-19 2020-11-24 Microsoft Technology Licensing, Llc Compression-encoding scheduled inputs for matrix computations
US11816563B2 (en) 2019-01-17 2023-11-14 Samsung Electronics Co., Ltd. Method of enabling sparse neural networks on memresistive accelerators
US11966837B2 (en) 2019-03-13 2024-04-23 International Business Machines Corporation Compression of deep neural networks
US11493985B2 (en) 2019-03-15 2022-11-08 Microsoft Technology Licensing, Llc Selectively controlling memory power for scheduled computations
CN110245324B (zh) * 2019-05-19 2023-01-17 南京惟心光电系统有限公司 一种基于光电计算阵列的反卷积运算加速器及其方法
CN111078189B (zh) * 2019-11-23 2023-05-02 复旦大学 用于循环神经网络自然语言处理的稀疏矩阵乘法加速器
US11935271B2 (en) * 2020-01-10 2024-03-19 Tencent America LLC Neural network model compression with selective structured weight unification
US11593609B2 (en) * 2020-02-18 2023-02-28 Stmicroelectronics S.R.L. Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks
US11521085B2 (en) 2020-04-07 2022-12-06 International Business Machines Corporation Neural network weight distribution from a grid of memory elements
US11500644B2 (en) 2020-05-15 2022-11-15 Alibaba Group Holding Limited Custom instruction implemented finite state machine engines for extensible processors
US11531873B2 (en) 2020-06-23 2022-12-20 Stmicroelectronics S.R.L. Convolution acceleration with embedded vector decompression
US11481214B2 (en) 2020-07-14 2022-10-25 Alibaba Group Holding Limited Sparse matrix calculations untilizing ightly tightly coupled memory and gather/scatter engine
US20230267310A1 (en) * 2020-07-17 2023-08-24 Sony Group Corporation Neural network processing apparatus, information processing apparatus, information processing system, electronic device, neural network processing method, and program
CN112085195B (zh) * 2020-09-04 2022-09-23 西北工业大学 一种基于x-admm的深度学习模型环境自适应方法
CN112214326B (zh) * 2020-10-22 2022-10-21 南京博芯电子技术有限公司 一种面向稀疏递归神经网络的均衡运算加速方法与系统
CN113743249B (zh) * 2021-08-16 2024-03-26 北京佳服信息科技有限公司 一种违章识别方法、装置、设备及可读存储介质
CN115828044B (zh) * 2023-02-17 2023-05-19 绍兴埃瓦科技有限公司 基于神经网络双重稀疏性矩阵乘法运算电路、方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389505A (zh) * 2015-10-19 2016-03-09 西安电子科技大学 基于栈式稀疏自编码器的托攻击检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389505A (zh) * 2015-10-19 2016-03-09 西安电子科技大学 基于栈式稀疏自编码器的托攻击检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SONG HAN等: ""EIE: Efficient Inference Engine on Compressed Deep Neural Network", 《ACM SIGARCH COMPUTER ARCHITECTURE NEWS》 *

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875956A (zh) * 2017-05-11 2018-11-23 广州异构智能科技有限公司 原生张量处理器
CN108875956B (zh) * 2017-05-11 2019-09-10 广州异构智能科技有限公司 原生张量处理器
US11620490B2 (en) 2017-10-17 2023-04-04 Xilinx, Inc. Multi-layer neural network processing by a neural network accelerator using host communicated merged weights and a package of per-layer instructions
DE102017218889A1 (de) * 2017-10-23 2019-04-25 Robert Bosch Gmbh Unscharf parametriertes KI-Modul sowie Verfahren zum Betreiben
CN109697507A (zh) * 2017-10-24 2019-04-30 上海寒武纪信息科技有限公司 处理方法及装置
CN109697507B (zh) * 2017-10-24 2020-12-25 安徽寒武纪信息科技有限公司 处理方法及装置
WO2019084788A1 (zh) * 2017-10-31 2019-05-09 深圳市大疆创新科技有限公司 用于神经网络的运算装置、电路及相关方法
CN110059798A (zh) * 2017-11-06 2019-07-26 畅想科技有限公司 开发神经网络中的稀疏性
CN110059798B (zh) * 2017-11-06 2024-05-03 畅想科技有限公司 开发神经网络中的稀疏性
US11907830B2 (en) 2017-11-06 2024-02-20 Imagination Technologies Limited Neural network architecture using control logic determining convolution operation sequence
US11531889B2 (en) 2017-11-10 2022-12-20 Institute Of Computing Technology, Chinese Academy Of Sciences Weight data storage method and neural network processor based on the method
WO2019091020A1 (zh) * 2017-11-10 2019-05-16 中国科学院计算技术研究所 权重数据存储方法和基于该方法的神经网络处理器
CN109961136A (zh) * 2017-12-14 2019-07-02 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109993286A (zh) * 2017-12-29 2019-07-09 深圳云天励飞技术有限公司 稀疏神经网络的计算方法及相关产品
US11704544B2 (en) 2017-12-30 2023-07-18 Cambricon Technologies Corporation Limited Integrated circuit chip device and related product
CN109993290A (zh) * 2017-12-30 2019-07-09 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
US11734548B2 (en) 2017-12-30 2023-08-22 Cambricon Technologies Corporation Limited Integrated circuit chip device and related product
US11710031B2 (en) 2017-12-30 2023-07-25 Cambricon Technologies Corporation Limited Parallel processing circuits for neural networks
US11651202B2 (en) 2017-12-30 2023-05-16 Cambricon Technologies Corporation Limited Integrated circuit chip device and related product
CN109993289B (zh) * 2017-12-30 2021-09-21 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993290B (zh) * 2017-12-30 2021-08-06 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993289A (zh) * 2017-12-30 2019-07-09 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN108595211B (zh) * 2018-01-05 2021-11-26 百度在线网络技术(北京)有限公司 用于输出数据的方法和装置
CN108595211A (zh) * 2018-01-05 2018-09-28 百度在线网络技术(北京)有限公司 用于输出数据的方法和装置
CN112069459B (zh) * 2018-03-28 2024-06-04 英特尔公司 用于稀疏-密集矩阵乘法的加速器
CN112069459A (zh) * 2018-03-28 2020-12-11 英特尔公司 用于稀疏-密集矩阵乘法的加速器
CN111937009A (zh) * 2018-04-05 2020-11-13 Arm有限公司 脉动卷积神经网络
CN108650201A (zh) * 2018-05-10 2018-10-12 东南大学 基于神经网络的信道均衡方法、译码方法及对应设备
CN108650201B (zh) * 2018-05-10 2020-11-03 东南大学 基于神经网络的信道均衡方法、译码方法及对应设备
CN109086879A (zh) * 2018-07-05 2018-12-25 东南大学 一种基于fpga的稠密连接神经网络的实现方法
CN109245773B (zh) * 2018-10-30 2021-09-28 南京大学 一种基于块循环稀疏矩阵神经网络的编解码方法
CN109245773A (zh) * 2018-10-30 2019-01-18 南京大学 一种基于块循环稀疏矩阵神经网络的编解码方法
US11397791B2 (en) 2018-11-20 2022-07-26 Huawei Technologies Co., Ltd. Method, circuit, and SOC for performing matrix multiplication operation
US11263292B2 (en) 2018-11-20 2022-03-01 Huawei Technologies Co., Ltd. Method, circuit, and SOC for performing matrix multiplication operation
US11860970B2 (en) 2018-11-20 2024-01-02 Huawei Technologies Co., Ltd. Method, circuit, and SOC for performing matrix multiplication operation
CN109597647A (zh) * 2018-11-29 2019-04-09 龙芯中科技术有限公司 数据处理方法及设备
CN109740739A (zh) * 2018-12-29 2019-05-10 北京中科寒武纪科技有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN109740739B (zh) * 2018-12-29 2020-04-24 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN110163338A (zh) * 2019-01-31 2019-08-23 腾讯科技(深圳)有限公司 具有运算阵列的芯片运算方法、装置、终端及芯片
CN110163338B (zh) * 2019-01-31 2024-02-02 腾讯科技(深圳)有限公司 具有运算阵列的芯片运算方法、装置、终端及芯片
WO2020156508A1 (zh) * 2019-01-31 2020-08-06 腾讯科技(深圳)有限公司 基于具有运算阵列的芯片的运算方法、装置及芯片
CN109919826A (zh) * 2019-02-02 2019-06-21 西安邮电大学 一种用于图计算加速器的图数据压缩方法及图计算加速器
CN109919826B (zh) * 2019-02-02 2023-02-17 西安邮电大学 一种用于图计算加速器的图数据压缩方法及图计算加速器
CN111915003A (zh) * 2019-05-09 2020-11-10 深圳大普微电子科技有限公司 一种神经网络硬件加速器
CN111915003B (zh) * 2019-05-09 2024-03-22 深圳大普微电子科技有限公司 一种神经网络硬件加速器
CN110890985A (zh) * 2019-11-27 2020-03-17 北京邮电大学 虚拟网络映射方法及其模型训练方法、装置
WO2021196158A1 (zh) * 2020-04-03 2021-10-07 北京希姆计算科技有限公司 数据存取电路和方法
CN111882028A (zh) * 2020-06-08 2020-11-03 北京大学深圳研究生院 用于卷积神经网络的卷积运算装置
CN111882028B (zh) * 2020-06-08 2022-04-19 北京大学深圳研究生院 用于卷积神经网络的卷积运算装置
CN114696946A (zh) * 2020-12-28 2022-07-01 郑州大学 数据编码及解码方法、装置、电子设备及存储介质
CN116187408A (zh) * 2023-04-23 2023-05-30 成都甄识科技有限公司 稀疏加速单元、计算方法及稀疏神经网络硬件加速系统

Also Published As

Publication number Publication date
US20180046895A1 (en) 2018-02-15

Similar Documents

Publication Publication Date Title
CN107239823A (zh) 一种用于实现稀疏神经网络的装置和方法
WO2021004366A1 (zh) 基于结构化剪枝和低比特量化的神经网络加速器及方法
CN107229967A (zh) 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法
CN107704916A (zh) 一种基于fpga实现rnn神经网络的硬件加速器及方法
CN107689948A (zh) 应用于神经网络硬件加速系统的高效数据访存管理装置
CN106529670B (zh) 一种基于权重压缩的神经网络处理器、设计方法、芯片
CN108805266A (zh) 一种可重构cnn高并发卷积加速器
CN111062472B (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
CN110390383A (zh) 一种基于幂指数量化的深度神经网络硬件加速器
CN107844322A (zh) 用于执行人工神经网络正向运算的装置和方法
CN110516801A (zh) 一种高吞吐率的动态可重构卷积神经网络加速器架构
CN110059798A (zh) 开发神经网络中的稀疏性
CN109472350A (zh) 一种基于块循环稀疏矩阵的神经网络加速系统
CN101717817B (zh) 对基于随机上下文无关文法的rna二级结构预测进行加速的方法
JP2021524082A (ja) ニューラル・ネットワーク処理要素
CN110263925A (zh) 一种基于fpga的卷积神经网络前向预测的硬件加速实现架构
CN109245773A (zh) 一种基于块循环稀疏矩阵神经网络的编解码方法
CN109840585B (zh) 一种面向稀疏二维卷积的运算方法和系统
CN110851779B (zh) 用于稀疏矩阵运算的脉动阵列架构
Li et al. VBSF: a new storage format for SIMD sparse matrix–vector multiplication on modern processors
CN108629406A (zh) 用于卷积神经网络的运算装置
Cevahir et al. Site-based partitioning and repartitioning techniques for parallel pagerank computation
CN110069444A (zh) 一种计算单元、阵列、模块、硬件系统及实现方法
CN108491924B (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
CN114201287B (zh) 一种基于cpu+gpu异构平台协同处理数据的方法

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: 20180604

Address after: 100083, 17 floor, 4 Building 4, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant after: Beijing deep Intelligent Technology Co., Ltd.

Address before: 100084 Wang Zhuang Road, 1, Haidian District, Beijing, Tsinghua Tongfang Technology Plaza, block D, 1705

Applicant before: Beijing insight Technology Co., Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190927

Address after: 2100 San Jose Rojack Avenue, California, USA

Applicant after: XILINX INC

Address before: 100083, 17 floor, 4 Building 4, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant before: Beijing Shenjian Intelligent Technology Co., Ltd.

TA01 Transfer of patent application right