CN107704916B - 一种基于fpga实现rnn神经网络的硬件加速器及方法 - Google Patents

一种基于fpga实现rnn神经网络的硬件加速器及方法 Download PDF

Info

Publication number
CN107704916B
CN107704916B CN201611107809.XA CN201611107809A CN107704916B CN 107704916 B CN107704916 B CN 107704916B CN 201611107809 A CN201611107809 A CN 201611107809A CN 107704916 B CN107704916 B CN 107704916B
Authority
CN
China
Prior art keywords
vector
unit
matrix
data
fpga
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611107809.XA
Other languages
English (en)
Other versions
CN107704916A (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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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
Priority claimed from US15/242,625 external-priority patent/US20180046895A1/en
Priority claimed from US15/242,624 external-priority patent/US20180046903A1/en
Application filed by Xilinx Inc filed Critical Xilinx Inc
Priority to US15/390,563 priority Critical patent/US10698657B2/en
Publication of CN107704916A publication Critical patent/CN107704916A/zh
Application granted granted Critical
Publication of CN107704916B publication Critical patent/CN107704916B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Nonlinear Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提出一种实现循环神经网络(RNN)的方法,所述方法包括步骤:初始化步骤,完成数据的初始化,即,将计算Whxx所需的数据读入FPGA片上内存,包括输入向量x,和输入向量x对应权重矩阵Whx的所有信息;步骤1,计算单元开始计算Whxx,同时将计算Whhx所需的数据读入FPGA片上内存;步骤2,计算单元计算Whhht‑1,其中ht‑1是隐含层对上一个输入向量的激励值,同时将计算下一个Whxx所需的数据读入FPGA片上内存;迭代重复执行上述步骤1和步骤2。本发明另外提出一种用于实现RNN神经网络的装置,包括输入接收单元,用于接收多个输入向量或隐含层激励值向量;多个计算单元PE,每个计算单元包括稀疏矩阵读取单元,运算单元和运算缓存单元;数据组合单元,用于接收从各个计算单元中的缓存单元输出的矩阵运算的结果,并将其组合成一个完整的矩阵运算结果输出至加法器;控制单元,用于对所述多个计算单元进行全局控制。

Description

一种基于FPGA实现RNN神经网络的硬件加速器及方法
本申请要求于2016年8月22日提交的美国专利申请No.15/242,622、于2016年8月22日提交的美国专利申请No.15/242,624、于2016年8月22日提交的美国专利申请15/242,625的优先权。
技术领域
本申请涉及人工智能领域,特别涉及一种基于FPGA实现RNN神经网络的硬件加速器及方法。
背景技术
RNN简介
循环神经网络(RNN)是一类人工神经网络,其中单元之间的连接形成有向循环。这创建了网络的内部状态,其允许其展现动态的时间行为。RNN可以通过具有循环隐藏状态来处理可变长度序列,其中每个时刻的激活依赖于先前时刻的激活。
传统地,标准RNN以如下方式计算下一步骤的隐藏层:
ht=f(W(hh)ht-1+W(hx)xt)
其中f是平滑的有界函数,例如逻辑S形函数(logistic sigmoid function)或双曲正切函数。W(hh)是状态到状态的循环权重矩阵,W(hx)是输入到隐藏权重矩阵。
输入序列是x=(x1,...,xT)。我们可以将任意长度的序列的概率分解为:
p(x1,...,xT)=p(x1)p(x2|x1)p(x3|x1,x2)...p(xT|x1,...,xT-1)
然后,如图1所示,我们可以训练RNN来对该概率分布建立模型,给定隐藏状态ht,使其预测下一个符号xt+1的概率。其中ht是所有先前符号x1,x2,...xt的函数:
p(xt+1|x1,...,xt)=f(ht)
隐藏层激活通过从t=1到T和从n=2到N重复以下等式来计算:
Figure BDA0001171344080000011
Figure BDA0001171344080000012
其中W项表示权重矩阵(例如Wih n是将输入连接到第n个隐藏层的权重矩阵,Wh 1 h 1是第一隐藏层的循环连接,等等),b项表示偏置向量(例如by是输出偏置向量),H是隐藏层函数。
Figure BDA0001171344080000021
Figure BDA0001171344080000022
给定隐藏序列,输出序列的计算如下:
其中Y是输出层函数。因此,完整网络定义了这样一个函数,由权重矩阵作为参数,从输入历史序列x(1:t)到输出向量yt
图2示出了RNN的基本网络框架,其中上一次隐藏层的输出作为这一次隐藏层的输入,即当前层的输出仅和上一层的隐藏层、当前层的输入有关。
神经网络的压缩
近年来,神经网络的规模不断增长,公开的比较先进的神经网络都有数亿个连接,属于计算和访存密集型应用。现有方案这些算法通常是在通用处理器(CPU)或者图形处理器(GPU)上实现。随着晶体管电路逐渐接近极限,摩尔定律也受到了极大的挑战。在神经网络逐渐变大的情况下,模型压缩就变得极为重要。模型压缩将稠密神经网络变成稀疏神经网络,可以有效减少计算量、降低访存量。
CRS和CCS
如前所述,对于稀疏矩阵的处理,为了减少内存,往往需要对矩阵进行压缩存储,比较经典的存储方法包括:行压缩(Compressed Row Storage CRS)和列压缩存储(Compressed Column Storage 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 Bi t Vector(CVBV)format。
稀疏神经网络存储需要编码,计算之前需要解码。但是,现有通用处理器(例如GPU或CPU)并不能从稀疏化技术中获得较好的收益。已公开实验表明模型压缩率较低时,现有通用处理器的加速比有限。
因此,希望专有定制电路(例如FPGA)可以解决上述问题,以使得处理器在较低压缩率下获得更好的加速比。
本发明的目的之一是采用高并发流水线设计来设计专有定制电路,从而能够有效处理稀疏神经网络,从而获得更好的计算效率,更低的处理延时。
发明内容
为了实现发明目的,本发明提出一种实现循环神经网络(RNN)的方法,所述RNN神经网络的权重矩阵包括:Whh,Whh隐含层之间的权重矩阵,以及Whx,Whx是输入到隐含层权值矩阵,输入序列是x=(x1,x2...,xT),所述方法包括步骤:初始化步骤:完成数据的初始化,即,将计算Whxx所需的数据读入FPGA片上内存,包括输入向量x,和输入向量x对应权重矩阵Whx的所有信息;步骤1,计算单元(PEs)开始计算Whxx,同时将计算Whhx所需的数据读入FPGA片上内存;步骤2,计算单元(PEs)计算Whhht-1,其中ht-1是隐含层对上一个输入向量的激励值,同时将计算下一个Whxx所需的数据读入FPGA片上内存;迭代重复执行上述步骤1和步骤2。
此外,上述步骤1和步骤2还包括:在计算当前输入向量的矩阵向量乘法的同时,计算上一个输入向量的激励值和RNN网络输出。
另一方面,本发明提出一种用于实现RNN神经网络的装置,该装置包括:输入接收单元(ActQueue),用于接收多个输入向量或隐含层激励值向量,并将多个其分配到多个计算单元;多个计算单元PE,每个计算单元包括:稀疏矩阵读取单元(PtrRead、SpmatRead),用于读取所述神经网络的权重矩阵W,其中所述权重矩阵W被用于表示所述神经网络中的权重;运算单元(ALU),用于执行所述神经网络矩阵运算中的乘法运算和加法运算;运算缓存单元(Act Buffer),用于存储从运算单元(ALU)中输出的矩阵运算的中间结果以及最终计算结果,并将矩阵运算最终计算结果输出至数据组合单元;数据组合单元,用于接收从各个计算单元(PE)中的缓存单元(Act Buffer)输出的矩阵运算的结果,并将其组合成一个完整的矩阵运算结果输出至加法器;控制单元(controller),用于对所述多个计算单元(PE)进行全局控制。
此外,上述装置还可以包括以下装置:函数模块(function),连接到所述加法器,用于实现所述RNN神经网络中的激活函数。
此外,上述装置还可以包括以下装置:向量缓存单元(Buffer Group),从函数模块接收所属RNN神经网络中的隐含层激励值向量,存储所述RNN神经网络中的隐含层的激励值向量和偏置等。
此外,上述装置还可以包括以下装置:加法树,针对数据组合单元输出的结果向量、向量缓存单元输出的矩阵运算结果向量和偏置向量,完成RNN神经网络算法中的向量累加操作。
此外,输入接收单元(ActQueue)还包括多个先进先出缓存(FIFO)单元,各个先进先出缓存(FIFO)单元与各个计算单元相对应。
此外,所述稀疏矩阵读取单元包括:位置单元,用于读取存储稀疏权重矩阵W中的各个非零权重值的位置信息;解码单元,用于编码权重矩阵进行解码,以获得稀疏矩阵中的非零权重值。
此外,所述运算单元(ALU)包括:多个乘法器,其中所述乘法器读取输入向量和权重值以进行对应的乘法计算;多个加法器,对所述乘法运算的结果进行加法计算。
此外,所述缓存单元还包括第一输出缓冲器和第二输出缓冲器,所述第一、第二输出缓冲器交替地接收并输出各个计算结果,其中在一个输出缓冲器接收当前计算结果时,另一个输出缓冲器输出前一个计算结果。
此外,所述向量缓存单元(Buffer Group)还包括多个子缓存单元,用于存储各个隐含层的计算结果ht
附图说明
通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本发明内容的上述和其他特征。可以理解,这些附图仅描绘了本发明内容的若干实施方式,因此不应认为是对本发明内容范围的限定。通过采用附图,本发明内容将会得到更加明确和详细地说明。
图1显示了包含隐藏状态的神经网络的模型的例子。
图2显示了包含隐藏状态的RNN神经网络的模型例子。
图3显示了一种用于实现压缩神经网络的高效的硬件设计。
图4进一步显示了基于图3所示的硬件设计方案来把工作任务分配到多个计算单元。
图5显示了对应图4的某个计算单元(PE0)的矩阵压缩(例如CCS)格式。
图6显示了图3的硬件设计方案中的解码器(weight decoder)部分,用于对编码的矩阵进行解码。
图7显示了根据本发明实施例的在一个信道的多个计算单元(PE)的布置。
图8显示了根据本发明的实施例的状态机的状态转移。
图9显示了矩阵稀疏性不平衡对计算资源利用的影响。
图10显示了根据本发明一个实施例的特定硬件设计来实施神经网络运算的例子。
具体实施方式
发明人之前的研究成果:采用EIE并行处理压缩神经网络
本发明的发明人之一曾经提出了一种高效的推理引擎(EIE)。为了更好的理解本发明,在此简要介绍EIE的方案。
图3显示了一种高效的推理引擎(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节点),如图3所示。4个lnzd节点找到下一个非零激励,并发送结果给lnzd节点树。这样的布线不会因为添加PEs而增加。在根lnzd节点,正向激励是通过放置在H树的单独导线被广播给所有PEs。
中央控制单元:中央控制单元(CCU)是根lnzd节点。它与主控器,如CPU通讯,通过设置控制寄存器来监控每个PE的状态。中央单元有两种模式:I/O和计算。
在I/O模式,所有的PEs闲置,每个PE的激励和权重可以通过与中央单元连接的DMA访问。
在计算模式,CCU会持续地从源激励存储库顺序收集和发送数值,直到输入长度溢出。通过设置指针阵列的输入长度和起始地址,EIE将被指示执行不同的层。
图4显示了如何使用多个处理单元(PEs),交织计算矩阵W的各个行,分配矩阵W和并行化矩阵向量计算。
对于N个PEs,PEk拥有所有列Wi,输出激励bi和输入激励ai,因子i(mod N)=k。PEk中的列Wj的部分被存储为CCS格式,但计数的零仅指这个PE的列的子集的零。每个PE有自己的v,x和p阵列,v,x和p阵列用于编码其所计算的稀疏矩阵的一部分。
图4中,显示了矩阵W和向量a和b在4PEs交错。相同颜色的元素都存储在相同的PE里。
图4中,将输入激励向量a(长度为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。
在图4的例子中,第一个非零是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,除了广播输入激励以外。
图4中的矩阵的交错CCS表示法如图5所示。
图5显示了对应图4的PE0的相对索引的存储器布局、间接加权和交错的CCS格式。
相对行索引(relative row index):当前非零权值与前一个非零权值之间的零元素的个数;
列位置(column pointer):当前“列位置”与前一个“列位置”之差=本列的非零权值的个数。
基于图5的编码方式来读取非零权值方式:
(1)读取2个连续的“列位置”,求差,该差值=本列的非零权重的个数
(2)利用相对行索引,获得该列的非零权重的行位置,从而获得非零权重的行、列位置信息。
此外,图5所示的权重值是被进一步压缩后得到的虚拟权重(virtual weight)。
图6示出了根据EIE的硬件结构中的解码器(weight decoder)部分。
如图6所示,权重查找表(weight look-up)和索引(index Accum)对应于图3的权重解码器(weight decoder)。通过权重查找表和索引,解码器把虚拟权重(例如,4bit)解码为真实权重(例如,16bi t)。
这是因为压缩DNN模型具有稀疏性,以索引方式存储和编码。在对输入数据进行处理时,压缩DNN的编码权重被解码,通过权重查找表被转换为真实权重,再进行计算。
本发明提出的改进
如上文所述,现有技术方案中稠密RNN网络需要较大IO带宽、较多存储和计算资源。为了适应算法需求,模型压缩技术变得越来越流行。
模型压缩后的稀疏神经网络存储需要编码,计算需要解码。但是,现有通用处理器(例如GPU或CPU)并不能充分利用从稀疏化技术的优势。已公开实验表明模型压缩率较低时,现有通用处理器的加速比有限。
因此,本发明的目的在于提供一种稀疏神经网络(例如RNN)加速器的实现装置和方法,以便达到提高计算性能、降低响应延时的目的。
为了实现上述目的,本发明提出一种支持稀疏化RNN网络的定制电路,其针对稀疏化RNN网络的结构设计状态机,采用ping-pong缓存并行化流水线设计,有效平衡IO带宽和计算效率,实现较好的性能功耗比。
EIE实现对神经网络局部运算的加速,及对矩阵与向量间乘法的加速,本发明在此基础上实现了对整个RNN网络的运算的加速,除了矩阵和向量间乘法的运算外,还实现了加法树运算和激活函数运算。
图7示出了根据本发明实施例的硬件布局。其中图7示出在一个信道的多个计算单元(PE)的布置。
如图7所示,每个计算单元(PE)主要包括如下模块:
输入接收单元110:该模块用于接收并存储稀疏神经网络的输入向量,并把输入向量发送至运算单元140。
该模块还包含多个先进先出缓存(FIFO),每个计算单元PE对应一个FIFO,从而在相同输入向量的情况下能够有效平衡多个计算单元之间计算量的差异。
多个计算单元PE可以共享输入向量。
FIFO深度的设置可以选取经验值,FIFO深度过大会造成浪费资源,过小又不能有效地平衡不同PE之间的计算差异。
位置单元(PtrRead模块)120:该模块用于读取并存储压缩后的稀疏神经网络的指针信息,并将指针信息输出至解码单元(SpmatRead)130。
例如,如果稀疏矩阵采用CCS存储格式,那么位置单元120存储列指针向量(即图5中的第3行)。其中,在输入接收单元110(ActQueue)头部的条目的索引j被用来查找开始和结束的列指针Pj和Pj+1。向量中的Pj+1-Pj值表示第j列中非零元素的个数。在本发明的一个实施例中,包括两个乒乓结构缓存(ping-pong buffer)。
解码单元(SpmatRead模块)130:该模块用于存储压缩后的稀疏神经网络的权重信息,并将其输出至运算单元(ALU模块)140。
在本发明的一个实施例中,权重信息包括相对索引值和权重值等(即图5中的前两行)。
在本发明的一个实施例中,信息的读取和处理也由两个乒乓结构缓存(ping-pongbuffer)并行处理。此外,该模块基于位置单元120输出的Pj+1和Pj值读取权重矩阵中对应的权重值,系统从指针Pj移动至Pj+1-1即可加载j列的权重值。
运算单元(ALU模块)140:该模块用于实现乘累加计算,其根据输入接收单元(ActQueue模块)110输出的数据和解码单元(SpmatRead模块)130输出的相对索引值以及权重值进行矩阵运算,并把运算结果输出至运算缓存单元(Act Buffer模块)150。
该模块主要进行以下两步计算:第一步,读取神经元的输入向量和权重值以进行对应的乘法计算;第二步,根据相对索引值读取运算缓存单元150(Act Buffer)中对应位置历史累加结果,再与第一步结果进行加法运算。
在本发明的另一种实施例中,为了提高并发度,在本发明的实施例中,该模块采用多个乘法和加法树来完成一列矩阵中的非零元素与向量元素的乘累加运算。如图7所示,运算单元140包括:4个乘法器,3个加法器。
运算缓存单元150:该模块用于存储从运算单元140中输出的矩阵运算的中间结果以及最终计算结果,并将矩阵运算最终计算结果输出至数据组合单元(Assemble模块)160。
在本发明的实施例中,为提高下一级的计算效率,运算缓存单元150的存储也采用乒乓结构缓存(ping-pong buffer)设计,进行流水线操作。
数据组合单元(Assemble模块)160:该模块用于接收从各个PE中运算缓存单元150输出的矩阵运算的结果,并将其组合成一个完整的运算结果输出至加法树180。
由于本发明的并行设计,每个PE都将矩阵中的部分列与输入向量进行乘累加运算,得到结果向量的一部分。数据组合单元160将这些部分组合成一个完整的结果向量。
向量缓存单元170:该模块针对RNN网络的运行特点,存储隐含层的计算结果和偏置等,加快后续运算。
如上所述,RNN网络隐藏层激活通过从t=1到T和从n=2到N重复以下等式来计算。
Figure BDA0001171344080000081
Figure BDA0001171344080000082
该模块由一组缓存组成,用于存储各个隐含层的计算结果ht
当输入接收单元110或加法树180需要ht用于运算时,便可以从向量缓存单元170快速读取。
加法树(Adder Tree模块)180:该模块用于完成RNN网络算法中的向量累加操作。
例如,当所有PE共同完成稀疏矩阵与向量的运算后,该模块将多个权重(稀疏矩阵)与向量的结果进行累加(即完成以下公式的计算),同时将累加后的结果输出给函数模块190。
Figure BDA0001171344080000091
Figure BDA0001171344080000092
函数模块190:该模块用于实现算法中的激活函数运算。
常见的激活函数包括sigmoid/tanh等。当加法树模块完成了各组权重与向量的叠加运算后,经该激活函数后可获得最终的计算结果。
控制单元模块200:该模块负责全局控制。
本发明设计RNN状态机,通过状态机的状态转移,实现RNN网络操作的高速流水运行。状态机的控制包括,控制指针向量的读取、控制输入向量与权值矩阵的信号同步、控制内部乒乓结构缓存(ping-pong buffer)的切换、控制运算单元的计算。
本发明的实施例中,定制电路的并行化流水线设计体现在对状态机的控制上,流水线设计可以有效地平衡IO带宽与计算性能。
图8示出了根据本发明的实施例的状态机的状态转移。
具体而言,在每个状态中包括数据读取和计算。
图8所示的状态机中,前三行操作是获取权重、指针、输入向量,以准备下一次计算。第四行中的操作是矩阵向量乘法,第五行中的操作是涉及求和和激活函数等的计算。水平方向上的操作必须被顺序执行,垂直方向上的操作同时执行。
根据本发明的一个实施例中,状态机包括三个状态。
在初始化状态中,完成数据的初始化,即,准备计算Whxx所需的数据。其中,x为输入向量,Whx包含向量对应权重矩阵的所有信息,例如,在采用CCS压缩时,包含指针信息、相对索引值和权重值等。
在状态1中,计算单元PEs开始计算Whxxt,同时从外部内存读取Whh,。
在状态2中,PE计算Whhht-1,同时从内存读取指针,下一个输入向量和Whx
如图8所示,状态1和状态2交替进行。
当一层对应的稀疏矩阵与向量的运算完成后,在计算下一层的矩阵运算(第4行)的同时,进行加法树和激活函数等运算(第5行),从而达到高效流水的目的。
x的准备由输入接收单元110完成,Whx的准备由位置单元120和解码单元130完成。
在本发明的一个实施例中,使用上述模块实现稀疏RNN网络加速器过程如下:
步骤1:初始化,依据全局控制信息(包括初始值等),位置单元120读取RNN权值矩阵的位置信息;
步骤2:根据步骤1的位置信息解码单元130读取稀疏神经网络的位置索引、权重值;
步骤3:根据全局控制信息,把输入接收单元110输入向量广播给多个计算单元PE;
步骤4:运算单元140把解码单元130输出的权重值与输入接收单元110输出的输入向量对应元素做乘法计算,得到矩阵运算的中间结果,存储至运算缓存单元150中;
步骤5:运算单元模块140根据步骤3的位置索引值读取运算缓存单元150中相应位置的中间结果,然后将其与步骤4的乘法结果做加法计算;
步骤6:根据步骤2的索引值把步骤5的加法结果写入运算缓存单元150中;
步骤7:分别读取运算缓存单元150中和向量缓存单元170中存储的隐藏层数据输入给加法树模块180进行累加运算;
步骤8:步骤7中输出的结果经激活函数(Function)模块190后得到RNN的全部或部分计算结果,部分运算结果存储到向量缓存单元170中。
例子
接下来,以2个计算单元(Process Element,简称PE)PE0和PE1计算一个矩阵向量乘,采用列存储(ccs)为例,简要说明基于本发明的硬件进行相应运算的基本思路。
压缩后RNN中矩阵稀疏度并不平衡,这导致计算资源的利用率降低。
如图9所示,假设输入向量a包含6个元素{a0,a1,a2,a3,a4,a5},权值矩阵包含8×6个元素。2个PE(PE0和PE1)负责计算a3×w[3],这里a3是输入向量第4个元素,w[3]是权值矩阵的第4列。
从图9中可见,PE0和PE1的工作负载并不相同,PE0进行3次乘法运算,PE1只进行一次。
现有技术中,系统会使PE1完成a3的运算后处于等待状态,直至PE0完成3次加法运算后,再开始进行a4的运算。
本发明的实施例中,在输入接收单元110加入先入先出缓存(FIFO),将输入向量a的一部分加载到FIFO中。
在本发明实施例中,PE1完成a3的运算后,会从FIFO中读取a4继续计算。这样的设计平衡了计算单元间元素稀疏度的差异,提高了计算资源的利用率。
参见图10,假设权值矩阵W和输入向量X如图10所示。奇数行元素由PE0完成,偶数行元素由PE1完成。输出向量的奇数元素由PE0计算所得,输出向量的偶数元素由PE1计算所得。输入向量X会被广播给两个计算单元PE0,PE1。
针对PE0中的操作如下:
表1为PE0对应的权重,相对索引位置和列位置信息。
权值 W00 W20 W41 W62 W43 W04 W24 W45 W26
相对行索引 0 0 4 4 2 1 0 4 2
列位置 0 2 3 4 5 7 8 9 9
表1
位置单元120(pointer):存储奇数行非零元素的列位置信息,其中P(j+1)-P(j)为第j列中非零元素的个数。
解码单元130:存储奇数行非零元素的权值和相对行索引。
输入接收单元110:存储输入向量xt,该模块把输入向量广播给两个计算单元PEO和PE1,为了平衡计算单元间元素稀疏度的差异,每个计算单元的入口都添加先进先出缓存(FIFO)来提高计算效率。
解码单元130读取矩阵元素,例如W00,将其输出至运算单元140,计算出W00·X00的结果存储在运算缓存单元150中。待本行计算完毕后,运算缓存单元150将中间结果(W00·X00和W04·X04)输出至运算单元140,计算出矩阵运算最终结果Y0并输出。
数据组合单元160将PE0输出的Y0,Y2,Y4,Y6和PE1输出的Y1,Y3,Y5,Y7组合成完整的输出向量Y。
这时系统完成了一层隐藏层的运算。
将输出向量Y存至向量缓存单元170,待系统计算出其它隐含层计算结果后,加法树180计算出最终的结果并输出。
技术效果
基于上述技术方案可知,根据本发明的稀疏RNN网络加速器的实现装置和方法,通过计算单元采用高并发设计,达到了平衡计算、片上存储、逻辑资源之间的关系等目的,从而提高了计算性能、降低了响应延时。
本发明与发明人之一以前提出的EIE硬件结构相比较。
在EIE中,一个计算单元在一个周期仅能实现一个乘加计算,而一个计算单元前后的模块却需要较多的存储和逻辑单元。因此,无论是ASIC还是FPGA可编程芯片都会存在资源相对不均衡的问题。实现过程中,并发度越高,则需要的片上存储和逻辑资源相对越多,而芯片中需要的计算资源DSP与上述两者越不均衡。
另一方面,本发明提出的方案中,计算单元采用高并发设计,在增加了DSP资源的同时,没有使得其他的逻辑电路相应的增加,达到了平衡计算、片上存储、逻辑资源之间的关系等目的。
接下来,以现有的现场可编程门阵列FPGA芯片为例,简要说明本发明通过计算单元采用高并发设计,从而实现平衡芯片资源利用率的目的。
现有FPGA中,中端芯片含有30多万查找表LUT资源、60多万寄存器FF资源、一千多个片上RAM资源,两千多个计算资源(DSP)。
例如,对于矩阵乘向量运算(其中,矩阵为2048*1024,向量为1024),采用32个计算单元PE,则需要32个位置单元(PtrRead模块)、32个解码单元(SpmatRead模块),32个运算缓存单元(Act Buffer模块)以及32个乘累加器DSP。此时,LUT应用22%的资源、FF应用15%的资源、片上RAM应用20%的资源、而DSP仅应用1.5%资源。显然,整芯片的DSP资源应用不均衡。
然而,如果使用根据本发明的装置,在每个计算单元PE中采用10个DSP用于完成解码后数据的计算,那么整芯片DSP的资源利用率会达到15%,因此,芯片的资源应用相对均衡,同时计算耗时更短,运算更高效,这对于后续的更高并发度的版本升级也有较好的意义。

Claims (13)

1.一种实现循环神经网络RNN的方法,所述RNN神经网络的权重矩阵包括:Whh,Whh隐含层之间的权重矩阵,以及Whx,Whx是输入到隐含层权值矩阵,输入序列是x=(x1,x2...,xT),所述方法包括步骤:
初始化步骤:完成数据的初始化,即,将计算Whxx所需的数据读入FPGA片上内存,包括输入向量x,和输入向量x对应权重矩阵Whx的所有信息;
步骤1,计算单元开始计算Whxx,同时将计算Whhx所需的数据读入FPGA片上内存;
步骤2,计算单元计算Whhht-1,其中ht-1是隐含层对上一个输入向量的激励值,同时将计算下一个Whxx所需的数据读入FPGA片上内存;
迭代重复执行上述步骤1和步骤2。
2.根据权利要求1所述的方法,其中步骤1和步骤2还包括:
在计算当前输入向量的矩阵向量乘法的同时,计算上一个输入向量的激励值和RNN网络输出。
3.根据权利要求1所述的方法,其中
所述初始化步骤、步骤1、步骤2是按照时钟顺序执行;
所述步骤1和步骤2被周期性地执行。
4.一种基于FPGA实现压缩后RNN神经网络的方法,包括以下步骤:
接收数据,从外部存储器将计算权值矩阵运算所需要的数据加载到FPGA片上存储器,所述数据包括输入向量,偏置向量,以及压缩后的权值矩阵数据;
解压数据,根据上述接收数据步骤读取的数据以及权值矩阵的压缩方法,利用FPGA片上处理器解压出权值矩阵原始数据,并存储至FPGA片上存储器;
矩阵运算,使用FPGA片上乘法器和加法器进行权值矩阵和向量的乘加运算,并把结果向量存储至FPGA片上存储器,所述向量包括输入向量以及隐含层的激励值向量;
向量加法运算,使用FPGA片上加法器进行向量加法运算,并将结果存储在FPGA片上存储器,所述向量包括上述矩阵运算的结果向量和偏置向量;
激活函数运算,对上述向量加法运算的结果进行激活函数运算,并将结果存储在FPGA片上存储器;
迭代上述接收数据、解压数据、矩阵运算、向量加法运算、激活函数运算步骤,算出RNN网络的激励值序列,再根据激励值序列利用FPGA片上乘法器和加法器进行矩阵运算和向量加法运算计算出RNN输出序列。
5.根据权利要求4所述方法,还包括:
在接收数据之后,将接收到权值矩阵数据分配给多个并行的矩阵运算单元进行计算,矩阵运算结束后,将各个矩阵运算单元的结果组合成完整的结果向量。
6.根据权利要求5所述方法,还包括:
在每个矩阵运算单元内部,使用FPGA片上多个乘法器和加法器同时进行乘法或加法运算。
7.根据权利要求4所述方法,所述接收数据、解压数据、矩阵运算步骤的至少一个是通过片上存储器的一对乒乓结构的缓存来实现。
8.一种用于实现RNN神经网络的装置,包括:
输入接收单元,用于接收多个输入向量或隐含层激励值向量,并将多个其分配到多个计算单元;
多个计算单元PE,每个计算单元包括:
稀疏矩阵读取单元,用于读取所述神经网络的权重矩阵W,其中所述权重矩阵W被用于表示所述神经网络中的权重;
运算单元,用于执行所述神经网络矩阵运算中的乘法运算和加法运算;
运算缓存单元,用于存储从运算单元中输出的矩阵运算的中间结果以及最终计算结果,并将矩阵运算最终计算结果输出至数据组合单元;
数据组合单元,用于接收从各个计算单元中的缓存单元输出的矩阵运算的结果,并将其组合成一个完整的矩阵运算结果输出至加法器;
控制单元,用于对所述多个计算单元进行全局控制;
函数模块,连接到加法树,用于实现所述RNN神经网络中的激活函数;
向量缓存单元,从函数模块接收所属RNN神经网络中的隐含层激励值向量,存储所述RNN神经网络中的隐含层的激励值向量和偏置;
加法树,针对数据组合单元输出的结果向量、向量缓存单元输出的矩阵运算结果向量和偏置向量,完成RNN神经网络算法中的向量累加操作。
9.根据权利要求8所述的装置,输入接收单元还包括:
多个先进先出缓存单元,各个先进先出缓存单元与各个计算单元相对应。
10.根据权利要求8所述的装置,其中所述稀疏矩阵读取单元包括:
位置单元,用于读取存储稀疏权重矩阵W中的各个非零权重值的位置信息;
解码单元,用于编码权重矩阵进行解码,以获得稀疏矩阵中的非零权重值。
11.根据权利要求8所述的装置,其中所述运算单元包括:
多个乘法器,其中所述乘法器读取输入向量和权重值以进行对应的乘法计算;
多个加法器,对所述乘法运算的结果进行加法计算。
12.根据权利要求8所述的装置,所述缓存单元还包括:
第一输出缓冲器和第二输出缓冲器,所述第一、第二输出缓冲器交替地接收并输出各个计算结果,其中在一个输出缓冲器接收当前计算结果时,另一个输出缓冲器输出前一个计算结果。
13.根据权利要求8所述的装置,所述向量缓存单元还包括:
多个子缓存单元,用于存储各个隐含层的计算结果ht
CN201611107809.XA 2016-08-12 2016-12-05 一种基于fpga实现rnn神经网络的硬件加速器及方法 Active CN107704916B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/390,563 US10698657B2 (en) 2016-08-12 2016-12-26 Hardware accelerator for compressed RNN on FPGA

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
CN201610663201 2016-08-12
US15/242,625 US20180046895A1 (en) 2016-08-12 2016-08-22 Device and method for implementing a sparse neural network
US15/242,622 2016-08-22
US15/242,622 US10621486B2 (en) 2016-08-12 2016-08-22 Method for optimizing an artificial neural network (ANN)
US15/242,625 2016-08-22
US15/242,624 2016-08-22
US15/242,624 US20180046903A1 (en) 2016-08-12 2016-08-22 Deep processing unit (dpu) for implementing an artificial neural network (ann)

Publications (2)

Publication Number Publication Date
CN107704916A CN107704916A (zh) 2018-02-16
CN107704916B true CN107704916B (zh) 2020-07-03

Family

ID=59983021

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201611107809.XA Active CN107704916B (zh) 2016-08-12 2016-12-05 一种基于fpga实现rnn神经网络的硬件加速器及方法
CN201611205336.7A Active CN107729999B (zh) 2016-08-12 2016-12-23 考虑矩阵相关性的深度神经网络压缩方法
CN201710249355.8A Active CN107239829B (zh) 2016-08-12 2017-04-17 一种优化人工神经网络的方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201611205336.7A Active CN107729999B (zh) 2016-08-12 2016-12-23 考虑矩阵相关性的深度神经网络压缩方法
CN201710249355.8A Active CN107239829B (zh) 2016-08-12 2017-04-17 一种优化人工神经网络的方法

Country Status (2)

Country Link
US (1) US10621486B2 (zh)
CN (3) CN107704916B (zh)

Families Citing this family (227)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10643126B2 (en) * 2016-07-14 2020-05-05 Huawei Technologies Co., Ltd. Systems, methods and devices for data quantization
US10643124B2 (en) * 2016-08-12 2020-05-05 Beijing Deephi Intelligent Technology Co., Ltd. Method and device for quantizing complex artificial neural network
US10802992B2 (en) 2016-08-12 2020-10-13 Xilinx Technology Beijing Limited Combining CPU and special accelerator for implementing an artificial neural network
JP2018060268A (ja) * 2016-10-03 2018-04-12 株式会社日立製作所 認識装置および学習システム
WO2018084576A1 (en) 2016-11-03 2018-05-11 Samsung Electronics Co., Ltd. Electronic device and controlling method thereof
US11003985B2 (en) * 2016-11-07 2021-05-11 Electronics And Telecommunications Research Institute Convolutional neural network system and operation method thereof
US20180181864A1 (en) * 2016-12-27 2018-06-28 Texas Instruments Incorporated Sparsified Training of Convolutional Neural Networks
US10726583B2 (en) * 2016-12-30 2020-07-28 Intel Corporation System and method of encoding and decoding feature maps and weights for a convolutional neural network
JP6540725B2 (ja) * 2017-01-30 2019-07-10 富士通株式会社 演算処理装置、方法、およびプログラム
US10491239B1 (en) * 2017-02-02 2019-11-26 Habana Labs Ltd. Large-scale computations using an adaptive numerical format
TWI607389B (zh) * 2017-02-10 2017-12-01 耐能股份有限公司 卷積神經網路的池化運算裝置及方法
US10963783B2 (en) * 2017-02-19 2021-03-30 Intel Corporation Technologies for optimized machine learning training
US10699189B2 (en) 2017-02-23 2020-06-30 Cerebras Systems Inc. Accelerated deep learning
CN107086910B (zh) * 2017-03-24 2018-08-10 中国科学院计算技术研究所 一种针对神经网络处理的权重加解密方法和系统
KR102415508B1 (ko) * 2017-03-28 2022-07-01 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
US11544545B2 (en) 2017-04-04 2023-01-03 Hailo Technologies Ltd. Structured activation based sparsity in an artificial neural network
US10387298B2 (en) * 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
US11551028B2 (en) 2017-04-04 2023-01-10 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network
US11615297B2 (en) * 2017-04-04 2023-03-28 Hailo Technologies Ltd. Structured weight based sparsity in an artificial neural network compiler
US20180293486A1 (en) * 2017-04-07 2018-10-11 Tenstorrent Inc. Conditional graph execution based on prior simplified graph execution
US11934934B2 (en) 2017-04-17 2024-03-19 Intel Corporation Convolutional neural network optimization mechanism
WO2018193370A1 (en) 2017-04-17 2018-10-25 Cerebras Systems Inc. Task activating for accelerated deep learning
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
US11164071B2 (en) * 2017-04-18 2021-11-02 Samsung Electronics Co., Ltd. Method and apparatus for reducing computational complexity of convolutional neural networks
US11017291B2 (en) * 2017-04-28 2021-05-25 Intel Corporation Training with adaptive runtime and precision profiling
US10552663B2 (en) * 2017-05-02 2020-02-04 Techcyte, Inc. Machine learning classification and training for digital microscopy cytology images
US10878273B2 (en) 2017-07-06 2020-12-29 Texas Instruments Incorporated Dynamic quantization for deep neural network inference system and method
JP6929734B2 (ja) * 2017-08-08 2021-09-01 キヤノン株式会社 判別演算装置、判別演算方法及びプログラム
US11222256B2 (en) * 2017-10-17 2022-01-11 Xilinx, Inc. Neural network processing system having multiple processors and a neural network accelerator
US11694066B2 (en) 2017-10-17 2023-07-04 Xilinx, Inc. Machine learning runtime library for neural network acceleration
CN107729895A (zh) * 2017-10-18 2018-02-23 吉林大学 一种智能车adas系统目标检测方法及装置
DE102017218889A1 (de) * 2017-10-23 2019-04-25 Robert Bosch Gmbh Unscharf parametriertes KI-Modul sowie Verfahren zum Betreiben
US11195096B2 (en) * 2017-10-24 2021-12-07 International Business Machines Corporation Facilitating neural network efficiency
US11250329B2 (en) * 2017-10-26 2022-02-15 Nvidia Corporation Progressive modification of generative adversarial neural networks
US11263525B2 (en) 2017-10-26 2022-03-01 Nvidia Corporation Progressive modification of neural networks
CN109726709A (zh) * 2017-10-31 2019-05-07 优酷网络技术(北京)有限公司 基于卷积神经网络的图标识别方法和装置
CN108009393B (zh) * 2017-10-31 2020-12-08 深圳市易成自动驾驶技术有限公司 数据处理方法、装置及计算机可读存储介质
US11461628B2 (en) * 2017-11-03 2022-10-04 Samsung Electronics Co., Ltd. Method for optimizing neural networks
GB2568083B (en) 2017-11-03 2021-06-02 Imagination Tech Ltd Histogram-based per-layer data format selection for hardware implementation of deep neutral network
GB2568081B (en) * 2017-11-03 2022-01-19 Imagination Tech Ltd End-to-end data format selection for hardware implementation of deep neural network
CN107766939A (zh) * 2017-11-07 2018-03-06 维沃移动通信有限公司 一种数据处理方法、装置及移动终端
CN107909583B (zh) * 2017-11-08 2020-01-10 维沃移动通信有限公司 一种图像处理方法、装置及终端
KR20190054454A (ko) 2017-11-13 2019-05-22 삼성전자주식회사 인공 신경망의 양자화 방법 및 장치
CN109784129A (zh) * 2017-11-14 2019-05-21 北京京东尚科信息技术有限公司 信息输出方法和装置
CN107958285A (zh) * 2017-11-21 2018-04-24 深圳普思英察科技有限公司 面向嵌入式系统的神经网络的映射方法及装置
CN108304923B (zh) 2017-12-06 2022-01-18 腾讯科技(深圳)有限公司 卷积运算处理方法及相关产品
EP3607744A4 (en) * 2017-12-08 2020-04-29 Baidu.com Times Technology (Beijing) Co., Ltd. DEPTH DETECTION IN A STEREO CAMERA WITH HARDWARE ACCELERATOR
CN109960673B (zh) * 2017-12-14 2020-02-18 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109961137B (zh) * 2017-12-14 2020-10-09 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
WO2019114842A1 (zh) * 2017-12-14 2019-06-20 北京中科寒武纪科技有限公司 一种集成电路芯片装置
CN111242294B (zh) * 2017-12-14 2023-08-25 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN111160543B (zh) * 2017-12-14 2023-08-29 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108053028B (zh) * 2017-12-21 2021-09-14 深圳励飞科技有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN109871949A (zh) * 2017-12-22 2019-06-11 泓图睿语(北京)科技有限公司 卷积神经网络加速器及加速方法
CN109978154A (zh) * 2017-12-28 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109978147A (zh) * 2017-12-27 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109978157B (zh) * 2017-12-28 2020-06-02 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109977071A (zh) * 2017-12-27 2019-07-05 北京中科寒武纪科技有限公司 神经网络处理器板卡及相关产品
CN109978149B (zh) * 2017-12-28 2020-10-09 中科寒武纪科技股份有限公司 调度方法及相关装置
CN109978129B (zh) * 2017-12-28 2020-08-25 中科寒武纪科技股份有限公司 调度方法及相关装置
CN109978155A (zh) * 2017-12-28 2019-07-05 北京中科寒武纪科技有限公司 集成电路芯片装置及相关产品
CN109993289B (zh) * 2017-12-30 2021-09-21 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993290B (zh) * 2017-12-30 2021-08-06 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
EP3624019A4 (en) * 2017-12-30 2021-03-24 Cambricon Technologies Corporation Limited CHIP DEVICE WITH INTEGRATED CIRCUIT AND ASSOCIATED PRODUCT
CN109993292B (zh) 2017-12-30 2020-08-04 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109496294A (zh) * 2018-01-15 2019-03-19 深圳鲲云信息科技有限公司 人工智能处理装置的编译方法及系统、存储介质及终端
WO2019136755A1 (zh) * 2018-01-15 2019-07-18 深圳鲲云信息科技有限公司 人工智能处理装置设计模型优化方法、系统、存储介质、终端
US10452955B2 (en) * 2018-01-15 2019-10-22 Gyrfalcon Technology Inc. System and method for encoding data in an image/video recognition integrated circuit solution
CN110045960B (zh) * 2018-01-16 2022-02-18 腾讯科技(深圳)有限公司 基于芯片的指令集处理方法、装置及存储介质
EP3740893A1 (en) * 2018-01-17 2020-11-25 Signify Holding B.V. System and method for object recognition using neural networks
US11586924B2 (en) * 2018-01-23 2023-02-21 Qualcomm Incorporated Determining layer ranks for compression of deep networks
US11568232B2 (en) 2018-02-08 2023-01-31 Quanta Computer Inc. Deep learning FPGA converter
CN110197262B (zh) * 2018-02-24 2021-07-30 赛灵思电子科技(北京)有限公司 用于lstm网络的硬件加速器
JP7056225B2 (ja) * 2018-02-26 2022-04-19 富士通株式会社 演算処理装置、情報処理装置、情報処理方法、およびプログラム
CN111767996B (zh) * 2018-02-27 2024-03-05 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
EP3759624A4 (en) * 2018-03-02 2021-12-08 The University of Chicago ARCHITECTURE OF COVARIANT NEURONAL NETWORK FOR DETERMINING ATOMIC POTENTIALS
CN108564165B (zh) * 2018-03-13 2024-01-23 上海交通大学 卷积神经网络定点化优化的方法及系统
CN108416390B (zh) * 2018-03-16 2019-11-01 西北工业大学 基于二维卷积降维的手写字体识别方法
CN110363291B (zh) * 2018-03-26 2022-02-08 上海寒武纪信息科技有限公司 神经网络的运算方法、装置、计算机设备和存储介质
US10621489B2 (en) * 2018-03-30 2020-04-14 International Business Machines Corporation Massively parallel neural inference computing elements
CN108829610B (zh) * 2018-04-02 2020-08-04 浙江大华技术股份有限公司 一种神经网络前向计算过程中的内存管理方法及设备
CN108509179B (zh) * 2018-04-04 2021-11-30 百度在线网络技术(北京)有限公司 用于检测人脸的方法、用于生成模型的装置
CN108510067B (zh) * 2018-04-11 2021-11-09 西安电子科技大学 基于工程化实现的卷积神经网络量化方法
US11144316B1 (en) 2018-04-17 2021-10-12 Ali Tasdighi Far Current-mode mixed-signal SRAM based compute-in-memory for low power machine learning
US20210097391A1 (en) * 2018-04-17 2021-04-01 Shenzhen Corerain Technologies Co., Ltd. Network model compiler and related product
CN110399211B (zh) * 2018-04-24 2021-06-08 中科寒武纪科技股份有限公司 机器学习的分配系统、方法及装置、计算机设备
CN110413255B (zh) * 2018-04-28 2022-08-19 赛灵思电子科技(北京)有限公司 人工神经网络调整方法和装置
US11487846B2 (en) * 2018-05-04 2022-11-01 Apple Inc. Performing multiply and accumulate operations in neural network processor
CN108647184B (zh) * 2018-05-10 2022-04-12 杭州雄迈集成电路技术股份有限公司 一种动态比特位卷积乘法实现方法
US11948074B2 (en) * 2018-05-14 2024-04-02 Samsung Electronics Co., Ltd. Method and apparatus with neural network parameter quantization
US20210241083A1 (en) * 2018-05-15 2021-08-05 Mitsubishi Electric Corporation Arithmetic device
CN110147872B (zh) * 2018-05-18 2020-07-17 中科寒武纪科技股份有限公司 编码存储装置及方法、处理器及训练方法
CN108710505A (zh) * 2018-05-18 2018-10-26 南京大学 一种基于fpga的可扩展稀疏矩阵向量乘处理器
CN108664474B (zh) * 2018-05-21 2023-04-18 众安信息技术服务有限公司 一种基于深度学习的简历解析方法
KR102559581B1 (ko) * 2018-05-23 2023-07-25 삼성전자주식회사 재구성 가능 로직을 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
CN108665067B (zh) * 2018-05-29 2020-05-29 北京大学 用于深度神经网络频繁传输的压缩方法及系统
US11244027B2 (en) 2018-05-30 2022-02-08 Samsung Electronics Co., Ltd. Processor, electronics apparatus and control method thereof
CN110555508B (zh) * 2018-05-31 2022-07-12 赛灵思电子科技(北京)有限公司 人工神经网络调整方法和装置
CN110555450B (zh) * 2018-05-31 2022-06-28 赛灵思电子科技(北京)有限公司 人脸识别神经网络调整方法和装置
US11403528B2 (en) 2018-05-31 2022-08-02 Kneron (Taiwan) Co., Ltd. Self-tuning incremental model compression solution in deep neural network with guaranteed accuracy performance
DE102018209901A1 (de) 2018-06-19 2019-12-19 Robert Bosch Gmbh Recheneinheit, Verfahren und Computerprogramm zum Multiplizieren zumindest zweier Multiplikanden
CN110633785B (zh) * 2018-06-21 2021-01-05 清华大学 一种卷积神经网络的计算方法及系统
US20190392287A1 (en) 2018-06-22 2019-12-26 Samsung Electronics Co., Ltd. Neural processor
CN109146057B (zh) * 2018-06-26 2020-12-08 杭州雄迈集成电路技术股份有限公司 一种基于查表计算的高精度的神经网络工程化方法
CN109002881A (zh) * 2018-06-28 2018-12-14 郑州云海信息技术有限公司 基于fpga的深度神经网络的定点化计算方法及装置
CN110673824B (zh) * 2018-07-03 2022-08-19 赛灵思公司 矩阵向量乘电路以及循环神经网络硬件加速器
CN108921291B (zh) * 2018-07-05 2021-08-31 北京航空航天大学合肥创新研究院 面向脑电信号处理的低功耗计算架构
KR20200013162A (ko) 2018-07-19 2020-02-06 삼성전자주식회사 전자 장치 및 그의 제어 방법
CN109063825B (zh) * 2018-08-01 2020-12-29 清华大学 卷积神经网络加速装置
CN110826707B (zh) * 2018-08-10 2023-10-31 北京百度网讯科技有限公司 应用于卷积神经网络的加速方法和硬件加速器
CN109189715B (zh) * 2018-08-16 2022-03-15 北京算能科技有限公司 可编程人工智能加速器执行单元及人工智能加速方法
JP6973651B2 (ja) * 2018-08-21 2021-12-01 日本電気株式会社 演算最適化装置、方法およびプログラム
US10678509B1 (en) * 2018-08-21 2020-06-09 Xilinx, Inc. Software-driven design optimization for mapping between floating-point and fixed-point multiply accumulators
CN109359728B (zh) * 2018-08-29 2021-04-09 深思考人工智能机器人科技(北京)有限公司 计算神经网络压缩最佳定点位数的方法、存储介质和装置
CN109212960B (zh) * 2018-08-30 2020-08-14 周军 基于权值敏感度的二值神经网络硬件压缩方法
CN109190754A (zh) * 2018-08-30 2019-01-11 北京地平线机器人技术研发有限公司 量化模型生成方法、装置和电子设备
KR20200027085A (ko) * 2018-08-30 2020-03-12 삼성전자주식회사 전자 장치 및 그 제어 방법
CN109284817B (zh) * 2018-08-31 2022-07-05 中国科学院上海高等研究院 深度可分离卷积神经网络处理架构/方法/系统及介质
CN109214506B (zh) * 2018-09-13 2022-04-15 深思考人工智能机器人科技(北京)有限公司 一种基于像素的卷积神经网络建立装置及方法
CN112771547A (zh) * 2018-09-25 2021-05-07 诺基亚技术有限公司 通信系统中的端到端学习
CN109358993A (zh) * 2018-09-26 2019-02-19 中科物栖(北京)科技有限责任公司 深度神经网络加速器故障的处理方法及装置
US11442889B2 (en) * 2018-09-28 2022-09-13 Intel Corporation Dynamic deep learning processor architecture
CN109447241B (zh) * 2018-09-29 2022-02-22 西安交通大学 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN109543815B (zh) * 2018-10-17 2021-02-05 清华大学 神经网络的加速方法及装置
CN111105029B (zh) * 2018-10-29 2024-04-16 北京地平线机器人技术研发有限公司 神经网络的生成方法、生成装置和电子设备
KR102621118B1 (ko) * 2018-11-01 2024-01-04 삼성전자주식회사 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법
CN109472355B (zh) * 2018-11-06 2021-01-01 地平线(上海)人工智能技术有限公司 卷积处理引擎及控制方法和相应的卷积神经网络加速器
KR20200053886A (ko) 2018-11-09 2020-05-19 삼성전자주식회사 뉴럴 프로세싱 유닛, 뉴럴 프로세싱 시스템, 및 어플리케이션 시스템
CN109472361B (zh) * 2018-11-13 2020-08-28 钟祥博谦信息科技有限公司 神经网络优化方法
CA3114632A1 (en) * 2018-11-19 2020-05-28 Deeplite Inc. System and method for automated design space determination for deep neural networks
CN109146067B (zh) * 2018-11-19 2021-11-05 东北大学 一种基于FPGA的Policy卷积神经网络加速器
CN109543820B (zh) * 2018-11-23 2022-09-23 中山大学 基于架构短句约束向量和双重视觉关注机制的图像描述生成方法
CN109359735B (zh) * 2018-11-23 2020-12-04 浙江大学 深度神经网络硬件加速的数据输入装置与方法
KR102562320B1 (ko) 2018-12-24 2023-08-01 삼성전자주식회사 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치
CN109740619B (zh) * 2018-12-27 2021-07-13 北京航天飞腾装备技术有限责任公司 用于目标识别的神经网络终端运行方法和装置
CN109740733B (zh) * 2018-12-27 2021-07-06 深圳云天励飞技术有限公司 深度学习网络模型优化方法、装置及相关设备
CN109688395B (zh) * 2018-12-29 2020-01-14 北京中科寒武纪科技有限公司 运算方法、装置及相关产品
WO2020144836A1 (ja) * 2019-01-11 2020-07-16 三菱電機株式会社 推論装置及び推論方法
US11816563B2 (en) * 2019-01-17 2023-11-14 Samsung Electronics Co., Ltd. Method of enabling sparse neural networks on memresistive accelerators
US11507823B2 (en) * 2019-01-22 2022-11-22 Black Sesame Technologies Inc. Adaptive quantization and mixed precision in a network
US10592799B1 (en) * 2019-01-23 2020-03-17 StradVision, Inc. Determining FL value by using weighted quantization loss values to thereby quantize CNN parameters and feature values to be used for optimizing hardware applicable to mobile devices or compact networks with high precision
CN109919826B (zh) * 2019-02-02 2023-02-17 西安邮电大学 一种用于图计算加速器的图数据压缩方法及图计算加速器
US11783200B2 (en) 2019-02-08 2023-10-10 International Business Machines Corporation Artificial neural network implementation in field-programmable gate arrays
CN109800877B (zh) * 2019-02-20 2022-12-30 腾讯科技(深圳)有限公司 神经网络的参数调整方法、装置及设备
US11556764B2 (en) 2019-03-01 2023-01-17 Microsoft Technology Licensing, Llc Deriving a concordant software neural network layer from a quantized firmware neural network layer
TWI711984B (zh) * 2019-03-08 2020-12-01 鴻海精密工業股份有限公司 深度學習加速方法及用戶終端
CN110069284B (zh) * 2019-03-14 2023-05-05 梁磊 一种基于opu指令集的编译方法及编译器
CN110009644B (zh) * 2019-03-26 2021-02-23 深兰科技(上海)有限公司 一种特征图行像素分段的方法和装置
US11211944B2 (en) 2019-04-17 2021-12-28 Samsung Electronics Co., Ltd. Mixed-precision compression with random access
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression
CN110278570B (zh) * 2019-04-30 2021-07-13 清华大学 一种基于人工智能的无线通信系统
US11880760B2 (en) 2019-05-01 2024-01-23 Samsung Electronics Co., Ltd. Mixed-precision NPU tile with depth-wise convolution
TWI714078B (zh) * 2019-05-07 2020-12-21 國立高雄大學 基於深度學習之大數據分析平台排程系統及方法
CN111914867A (zh) * 2019-05-08 2020-11-10 四川大学 一种基于fpga的卷积神经网络ip核设计
CN111915003B (zh) * 2019-05-09 2024-03-22 深圳大普微电子科技有限公司 一种神经网络硬件加速器
CN110110852B (zh) * 2019-05-15 2023-04-07 电科瑞达(成都)科技有限公司 一种深度学习网络移植到fpag平台的方法
CN110135086B (zh) * 2019-05-20 2022-09-13 合肥工业大学 计算精度可变的softmax函数硬件电路及其实现方法
CN111985628B (zh) * 2019-05-24 2024-04-30 澜起科技股份有限公司 计算装置及包括所述计算装置的神经网络处理器
CN110363799B (zh) * 2019-05-27 2021-04-06 浙江工业大学 人机共存环境下基于视觉的多运动人体目标跟踪方法
US11861452B1 (en) * 2019-06-17 2024-01-02 Cadence Design Systems, Inc. Quantized softmax layer for neural networks
CN110390383B (zh) * 2019-06-25 2021-04-06 东南大学 一种基于幂指数量化的深度神经网络硬件加速器
CN110363287B (zh) * 2019-07-01 2021-07-13 西安交通大学 一种面向内存计算和室内是否有人的神经网络设计方法
KR20220038694A (ko) * 2019-07-03 2022-03-29 후아시아 제너럴 프로세서 테크놀러지스 인크. 가속기 회로의 조작을 위한 명령어
CN110348567B (zh) * 2019-07-15 2022-10-25 北京大学深圳研究生院 一种基于自动寻址和递归信息整合的内存网络方法
TWI722491B (zh) * 2019-07-16 2021-03-21 國立陽明交通大學 應用於神經網絡之四位元與八位元組合之分離式量化方法
CN110569713B (zh) * 2019-07-22 2022-04-08 北京航天自动控制研究所 一种利用dma控制器实现数据串并行二维传输的目标探测系统及方法
CN110399972B (zh) * 2019-07-22 2021-05-25 上海商汤智能科技有限公司 数据处理方法、装置及电子设备
CN112308197B (zh) * 2019-07-26 2024-04-09 杭州海康威视数字技术股份有限公司 一种卷积神经网络的压缩方法、装置及电子设备
CN110516334B (zh) * 2019-08-16 2021-12-03 浪潮电子信息产业股份有限公司 基于硬件环境的卷积计算仿真测试方法、装置及相关设备
US11327923B2 (en) * 2019-09-04 2022-05-10 SambaNova Systems, Inc. Sigmoid function in hardware and a reconfigurable data processor including same
CN110600019B (zh) * 2019-09-12 2022-02-15 东南大学 基于实时场景下语音信噪比预分级的卷积神经网络计算电路
CN110766133B (zh) * 2019-09-18 2020-12-25 开放智能机器(上海)有限公司 嵌入式设备中的数据处理方法、装置、设备和存储介质
CN110738308B (zh) * 2019-09-23 2023-05-26 陈小柏 一种神经网络加速器
CN110718211B (zh) * 2019-09-26 2021-12-21 东南大学 一种基于混合压缩卷积神经网络的关键词识别系统
CN110852416B (zh) * 2019-09-30 2022-10-04 梁磊 基于低精度浮点数数据表现形式的cnn硬件加速计算方法及系统
CN110852434B (zh) * 2019-09-30 2022-09-23 梁磊 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置
US10915298B1 (en) 2019-10-08 2021-02-09 Ali Tasdighi Far Current mode multiply-accumulate for compute in memory binarized neural networks
CN110826710B (zh) * 2019-10-18 2021-04-23 南京大学 基于横向脉动阵列的rnn前向传播模型的硬件加速实现方法
CN110736970B (zh) * 2019-10-24 2023-03-24 西安电子科技大学 基于asic机器学习处理器的雷达目标快速识别方法
CN110880038B (zh) * 2019-11-29 2022-07-01 中国科学院自动化研究所 基于fpga的加速卷积计算的系统、卷积神经网络
KR20210072524A (ko) 2019-12-09 2021-06-17 삼성전자주식회사 뉴럴 네트워크 장치 및 그 동작 방법
CN111178518A (zh) * 2019-12-24 2020-05-19 杭州电子科技大学 一种基于fpga的软硬件协同的加速方法
CN113052292A (zh) * 2019-12-27 2021-06-29 嘉楠明芯(北京)科技有限公司 卷积神经网络技术方法、装置及计算机可读存储介质
US11615256B1 (en) 2019-12-30 2023-03-28 Ali Tasdighi Far Hybrid accumulation method in multiply-accumulate for machine learning
US11610104B1 (en) 2019-12-30 2023-03-21 Ali Tasdighi Far Asynchronous analog accelerator for fully connected artificial neural networks
CN111160544B (zh) * 2019-12-31 2021-04-23 上海安路信息科技股份有限公司 数据激活方法及fpga数据激活系统
CN111126589B (zh) * 2019-12-31 2022-05-20 昆仑芯(北京)科技有限公司 神经网络数据处理装置、方法和电子设备
US11599367B2 (en) * 2020-01-24 2023-03-07 Cornami, Inc. Method and system for compressing application data for operations on multi-core systems
CN113269323B (zh) * 2020-02-17 2024-03-12 北京达佳互联信息技术有限公司 一种数据处理方法、处理装置、电子设备及存储介质
CN111340206A (zh) * 2020-02-20 2020-06-26 云南大学 一种基于FPGA的Alexnet前向网络加速器
KR102428033B1 (ko) * 2020-02-28 2022-08-02 오픈엣지테크놀로지 주식회사 트랜스포즈드 콘볼루션 하드웨어 가속장치
EP4100887A4 (en) * 2020-03-05 2023-07-05 Huawei Cloud Computing Technologies Co., Ltd. METHOD AND SYSTEM FOR SHARING AND BITWIDTH ALLOCATION OF DEEP LEARNING MODELS FOR INFERENCE ON DISTRIBUTED SYSTEMS
CN111340226B (zh) * 2020-03-06 2022-01-25 北京市商汤科技开发有限公司 一种量化神经网络模型的训练及测试方法、装置及设备
US11468305B2 (en) * 2020-03-18 2022-10-11 Arm Limited Hybrid memory artificial neural network hardware accelerator
US11544191B2 (en) * 2020-03-26 2023-01-03 Intel Corporation Efficient hardware architecture for accelerating grouped convolutions
CN111459877B (zh) * 2020-04-02 2023-03-24 北京工商大学 基于FPGA加速的Winograd YOLOv2目标检测模型方法
KR20210136706A (ko) * 2020-05-08 2021-11-17 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN111612144B (zh) * 2020-05-22 2021-06-15 深圳金三立视频科技股份有限公司 一种应用于目标检测的剪枝方法及终端
CN111796796B (zh) * 2020-06-12 2022-11-11 杭州云象网络技术有限公司 基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板
WO2022034542A1 (en) * 2020-08-14 2022-02-17 Cerebras Systems Inc. Weight sparsity techniques for accelerated deep learning
CN112580774B (zh) * 2020-09-01 2022-10-21 浙江大学 一种面向可重构神经网络处理器的神经网络布局方法
US11915126B2 (en) 2020-09-04 2024-02-27 Recogni Inc. Low power hardware architecture for a convolutional neural network
CN112115550B (zh) * 2020-09-13 2022-04-19 西北工业大学 基于Mogrifier-BiGRU的飞行器机动轨迹预测方法
CN112215349B (zh) * 2020-09-16 2024-01-12 中国科学院计算技术研究所 基于数据流架构的稀疏卷积神经网络加速方法及装置
CN111985626B (zh) 2020-09-25 2022-06-07 苏州浪潮智能科技有限公司 一种加速rnn网络的系统、方法及存储介质
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor
US11874900B2 (en) 2020-09-29 2024-01-16 Hailo Technologies Ltd. Cluster interlayer safety mechanism in an artificial neural network processor
WO2022069100A1 (en) * 2020-10-03 2022-04-07 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatuses for training a neural network
CN111931921B (zh) * 2020-10-13 2021-01-26 南京风兴科技有限公司 一种用于稀疏神经网络的乒乓存储方法及装置
US20220147812A1 (en) * 2020-11-06 2022-05-12 Micron Technology, Inc. Compiler with an artificial neural network to optimize instructions generated for execution on a deep learning accelerator of artificial neural networks
CN112396178A (zh) * 2020-11-12 2021-02-23 江苏禹空间科技有限公司 一种提高cnn网络压缩效率的方法
CN112416393B (zh) * 2020-11-18 2022-07-05 国网福建省电力有限公司 一种基于容器技术的人工智能模型远程升级方法及系统
CN112686506B (zh) * 2020-12-18 2022-06-17 海南电网有限责任公司电力科学研究院 基于多试验方法异步检测数据的配网设备综合评估方法
CN112990454B (zh) * 2021-02-01 2024-04-16 国网安徽省电力有限公司超高压分公司 基于集成dpu多核异构的神经网络计算加速方法及装置
CN112819140B (zh) * 2021-02-02 2022-06-24 电子科技大学 基于OpenCL的FPGA一维信号识别神经网络加速方法
CN112801285B (zh) * 2021-02-04 2024-01-26 南京微毫科技有限公司 一种基于fpga的高资源利用率cnn加速器及其加速方法
CN112906887B (zh) * 2021-02-20 2023-03-24 上海大学 稀疏gru神经网络加速的实现方法和装置
CN115244507A (zh) * 2021-02-25 2022-10-25 阿里巴巴集团控股有限公司 用于减少数据移动的跳零稀疏技术
US20230004786A1 (en) * 2021-06-30 2023-01-05 Micron Technology, Inc. Artificial neural networks on a deep learning accelerator
CN114003196B (zh) * 2021-09-02 2024-04-09 上海壁仞智能科技有限公司 矩阵运算装置与矩阵运算方法
CN114819127B (zh) * 2022-05-05 2024-03-29 中山大学 一种基于fpga的背压索引式组合计算单元
US11886973B2 (en) 2022-05-30 2024-01-30 Deepx Co., Ltd. Neural processing unit including variable internal memory
CN115174763A (zh) * 2022-07-05 2022-10-11 重庆邮电大学 一种基于zynq的图像实时显示系统
CN115994936B (zh) * 2023-03-23 2023-06-30 季华实验室 点云融合模型获取方法、装置、电子设备及存储介质
CN116187408B (zh) * 2023-04-23 2023-07-21 成都甄识科技有限公司 稀疏加速单元、计算方法及稀疏神经网络硬件加速系统
CN116776945A (zh) * 2023-06-26 2023-09-19 中国科学院长春光学精密机械与物理研究所 一种基于zynq平台的vgg16网络加速器设计实现方法
CN117271434B (zh) * 2023-11-15 2024-02-09 成都维德青云电子有限公司 现场可编程系统级芯片

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8442927B2 (en) * 2009-07-30 2013-05-14 Nec Laboratories America, Inc. Dynamically configurable, multi-ported co-processor for convolutional neural networks
CN104915322A (zh) * 2015-06-09 2015-09-16 中国人民解放军国防科学技术大学 一种卷积神经网络硬件加速方法及其axi总线ip核
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0918280B1 (en) * 1997-11-19 2004-03-24 IMEC vzw System and method for context switching on predetermined interruption points
NZ567815A (en) * 2005-11-15 2011-08-26 Bernadette Garner Training neural networks including selecting an output to be trained and connecting an output neuron to input neurons
US8249883B2 (en) * 2007-10-26 2012-08-21 Microsoft Corporation Channel extension coding for multi-channel source
CN101399553B (zh) * 2008-11-12 2012-03-14 清华大学 一种可在线编程的准循环ldpc码编码器装置
CN102129397A (zh) 2010-12-29 2011-07-20 深圳市永达电子股份有限公司 一种自适应磁盘阵列故障预测方法及系统
US9317482B2 (en) 2012-10-14 2016-04-19 Microsoft Technology Licensing, Llc Universal FPGA/ASIC matrix-vector multiplication architecture
US9766866B2 (en) * 2013-04-22 2017-09-19 Nvidia Corporation Techniques for determining instruction dependencies
US10242313B2 (en) * 2014-07-18 2019-03-26 James LaRue Joint proximity association template for neural networks
CN104616244B (zh) * 2015-01-24 2018-01-09 河南师范大学 基于 bp 神经网络压缩域的图像水印嵌入与提取方法
US20160328644A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Adaptive selection of artificial neural networks
CN205139973U (zh) 2015-10-26 2016-04-06 中国人民解放军军械工程学院 基于fpga器件构建的bp神经网络
CN105681628B (zh) 2016-01-05 2018-12-07 西安交通大学 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法
US10216703B2 (en) * 2016-02-08 2019-02-26 Spero Devices, Inc. Analog co-processor
CN105760933A (zh) 2016-02-18 2016-07-13 清华大学 卷积神经网络的逐层变精度定点化方法及装置
US10311342B1 (en) * 2016-04-14 2019-06-04 XNOR.ai, Inc. System and methods for efficiently implementing a convolutional neural network incorporating binarized filter and convolution operation for performing image classification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8442927B2 (en) * 2009-07-30 2013-05-14 Nec Laboratories America, Inc. Dynamically configurable, multi-ported co-processor for convolutional neural networks
CN104915322A (zh) * 2015-06-09 2015-09-16 中国人民解放军国防科学技术大学 一种卷积神经网络硬件加速方法及其axi总线ip核
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
DLAU: A Scalable Deep Learning Accelerator Unit on FPGA;Chao Wang 等;《arXiv》;20160523;1-5 *
EIE: Efficient Inference Engine on Compressed Deep Neural Network;Song Han 等;《arXiv》;20160503;1-12 *
ESE: Efficient Speech Recognition Engine with Compressed LSTM on FPGA;Song Han 等;《arXiv》;20161201;正文第1,3,4节,附图4-5 *
Gated Feedback Recurrent Neural Networks;Junyoung Chung 等;《Proceedings of the 32nd International Conference on Machine Learning》;20150711;2067-2075 *
Going Deeper with Embedded FPGA Platform for Convolutional Neural Network;Jiantao Qiu 等;《FPGA’16》;20160223;26-35 *
Recurrent Neural Networks Hardware Implementation on FPGA;Andre Xian Ming Chang 等;《arXiv》;20160304;1-7 *

Also Published As

Publication number Publication date
CN107239829A (zh) 2017-10-10
CN107704916A (zh) 2018-02-16
US10621486B2 (en) 2020-04-14
CN107729999B (zh) 2021-02-02
US20180046894A1 (en) 2018-02-15
CN107239829B (zh) 2020-12-11
CN107729999A (zh) 2018-02-23

Similar Documents

Publication Publication Date Title
CN107704916B (zh) 一种基于fpga实现rnn神经网络的硬件加速器及方法
CN107229967B (zh) 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法
US10698657B2 (en) Hardware accelerator for compressed RNN on FPGA
US10810484B2 (en) Hardware accelerator for compressed GRU on FPGA
CN107689948B (zh) 应用于神经网络硬件加速系统的高效数据访存管理装置
CN107832082B (zh) 一种用于执行人工神经网络正向运算的装置和方法
US10671349B2 (en) Accelerated mathematical engine
CN111062472B (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
CN109409511B (zh) 一种用于动态可重构阵列的卷积运算数据流调度方法
CN110163353B (zh) 一种计算装置及方法
EP3651075B1 (en) Computation device and method
CN108733348B (zh) 融合向量乘法器和使用其进行运算的方法
CN110321997B (zh) 高并行度计算平台、系统及计算实现方法
CN110766128A (zh) 卷积计算单元、计算方法及神经网络计算平台
CN110851779B (zh) 用于稀疏矩阵运算的脉动阵列架构
CN109144469B (zh) 流水线结构神经网络矩阵运算架构及方法
Kala et al. UniWiG: Unified winograd-GEMM architecture for accelerating CNN on FPGAs
CN111626413A (zh) 一种计算装置及方法
US10853037B1 (en) Digital circuit with compressed carry
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法
CN110716751A (zh) 高并行度计算平台、系统及计算实现方法
CN112836793A (zh) 浮点可分离卷积计算加速装置、系统以及图像处理方法
Wang et al. FPAP: a folded architecture for efficient computing of convolutional neural networks
Lee et al. A convolutional neural network accelerator for power-efficient real-time vision processing
Terrill et al. BEANNA: A Binary-Enabled Architecture for Neural Network Acceleration

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

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: 100083, 8 floor, 4 Building 4, 1 Wang Zhuang Road, Haidian District, Beijing.

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
GR01 Patent grant
GR01 Patent grant