CN110956258A - 一种神经网络加速电路和方法 - Google Patents

一种神经网络加速电路和方法 Download PDF

Info

Publication number
CN110956258A
CN110956258A CN201911302604.0A CN201911302604A CN110956258A CN 110956258 A CN110956258 A CN 110956258A CN 201911302604 A CN201911302604 A CN 201911302604A CN 110956258 A CN110956258 A CN 110956258A
Authority
CN
China
Prior art keywords
neural network
data
unit
data storage
computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911302604.0A
Other languages
English (en)
Other versions
CN110956258B (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.)
Shenzhen Corerain Technologies Co Ltd
Original Assignee
Shenzhen Corerain Technologies 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 Shenzhen Corerain Technologies Co Ltd filed Critical Shenzhen Corerain Technologies Co Ltd
Priority to CN201911302604.0A priority Critical patent/CN110956258B/zh
Publication of CN110956258A publication Critical patent/CN110956258A/zh
Priority to PCT/CN2020/136842 priority patent/WO2021121274A1/zh
Priority to US17/786,650 priority patent/US20230036414A1/en
Application granted granted Critical
Publication of CN110956258B publication Critical patent/CN110956258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

Abstract

本发明实施例公开了一种神经网络加速电路和方法,所述神经网络加速电路包括:数据存储模块,用于存储神经网络计算所需的输入数据;数据缓存模块,用于缓存所述数据存储模块输出的输入数据;计算模块,包括多个计算单元,所述计算单元用于对所述数据缓存模块输出的输入数据进行计算以得到输出数据;延时处理模块,用于对所述输出数据进行延迟处理后同时输出延迟处理后的输出数据。本发明实施例提出的神经网络加速电路解决了神经网络加速电路中时序和计算并行度之间的矛盾,使神经网络加速电路工作在较高的时钟频率也能有较高的计算并行度,提高了神经网络加速电路的计算能力。

Description

一种神经网络加速电路和方法
技术领域
本发明实施例涉及神经网络领域,尤其涉及一种神经网络加速电路和方法。
背景技术
近年来,神经网络发展迅速,被广泛应用于计算机视觉和自然语言计算。神经网络加速器具有高能效和大规模并行计算的特点,逐渐成为一个热门研究课题。
神经网络加速电路通常采用很高的并行度来快速完成神经网络算法所需要的海量计算任务,由于计算形式的规整性,加速电路会首先设计基本的计算单元,用这种计算单元来实现算法中的基本操作,然后大量复制这种计算单元来达到高的计算并行度。图1示出了典型的神经网络加速电路结构,输入数据RAM和权值数据RAM每周期输出大量的数据,通过数据分配器给到各个计算单元进行计算。根据具体并行计算的方式不一样,计算单元之间通常会复用相同的输入数据或者相同的权值,因此电路中会存在某一个模块的输出数据同时直连到其他多个模块。
这种神经网络加速电路要求输入数据RAM和权值RAM输出的数据在同一时钟周期同时到达所有计算模块,当计算单元并行度较高时,某几个计算单元放置的位置可能距离输入数据RAM和权值RAM较远,相应的数据到达这些计算模块需要的时间也会更长,从而导致时钟较高时,这些较长的走线会导致信号的建立时间不满足,从而限制电路能够工作的最高时钟频率;而要使电路能够工作在较高的时钟频率,时序要求则限制了电路的计算并行度。
发明内容
有鉴于此,本发明实施例提供一种神经网络加速电路和方法,以解决神经网络加速电路中时序和计算并行度之间的矛盾,使神经网络加速电路工作在较高的时钟频率也能有较高的计算并行度。
第一方面,本发明实施例提供一种神经网络加速电路,包括:
数据存储模块,用于存储神经网络计算所需的输入数据;
数据缓存模块,用于缓存所述数据存储模块输出的输入数据;
计算模块,包括多个计算单元,所述计算单元用于对所述数据缓存模块输出的输入数据进行计算以得到输出数据;
延时处理模块,用于对所述输出数据进行延迟处理后同时输出延迟处理后的输出数据。
进一步的,所述数据存储模块包括第一数据存储子模块和第二数据存储子模块,所述第一数据存储子模块包括第一数据存储单元和第一控制单元,所述第一数据存储单元用于存储神经网络计算所需的第一输入数据,所述第一控制单元用于向所述计算模块发出控制信号。
进一步的,所述第二数据存储子模块包括第二数据存储单元和第二控制单元,所述第二数据存储单元用于存储神经网络计算所需的第二输入数据,所述第二控制单元用于控制所述第二数据存储单元的读写操作。
进一步的,所述数据缓存模块包括第一寄存器单元和第二寄存器单元,所述第一数据存储单元与所述第一寄存器单元连接,所述第二数据存储单元与所述第二寄存器单元连接。
进一步的,所述第一寄存器单元包括n个依次串联连接的第一寄存器,所述第二寄存器单元包括n个依次串联连接的第二寄存器。
进一步的,所述计算模块包括n个计算单元,第i个计算单元与第i个第一寄存器连接,第i个计算单元还与第i个第二寄存器连接,其中,i≤n。
进一步的,所述第一控制单元用于对所述计算模块的第一个计算单元产生控制信号。
进一步的,所述计算模块的第i-1个计算单元接收到控制信号后,按照预设时钟周期向第i个计算单元产生控制信号,其中,2≤i≤n。
进一步的,所述第一数据存储单元和所述第二数据存储单元均为RAM存储单元。
第二方面,本发明实施例提供一种神经网络加速方法,包括:
获取神经网络计算所需的多个输入数据;
将所述输入数据依次传输到多个计算单元进行计算以得到多组输出数据;
对多个所述输出数据进行延时处理后同时输出多个所述输出数据。
本发明实施例提供的一种神经网络加速电路通过数据存储模块,用于存储神经网络计算所需的输入数据;数据缓存模块,用于缓存所述数据存储模块输出的输入数据;计算模块,包括多个计算单元,所述计算单元用于对所述数据缓存模块输出的输入数据进行计算以得到输出数据;延时处理模块,用于对所述输出数据进行延迟处理后同时输出延迟处理后的输出数据。解决了神经网络加速电路中时序和计算并行度之间的矛盾,使神经网络加速电路工作在较高的时钟频率也能有较高的计算并行度,提高了神经网络加速电路的计算能力。
附图说明
图1为现有技术神经网络加速电路的结构示意图;
图2为本发明实施例一提供的一种神经网络加速电路的结构示意图;
图3为本发明实施例二提供的一种神经网络加速电路的结构示意图;
图4为本发明实施例三提供的一种神经网络加速方法的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的计算或方法。虽然流程图将各步骤描述成顺序的计算,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时计算可以被终止,但是还可以具有未包括在附图中的附加步骤。计算可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一数据存储单元为第二数据存储单元,且类似地,可将第二数据存储单元称为第一数据存储单元。第一数据存储单元和第二数据存储单元两者都是数据存储单元,但其不是同一数据存储单元。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
实施例一
图2为本发明实施例一提供的一种神经网络加速电路的结构示意图,可适用于神经网络的计算。如图2所示,本发明实施例一提供的一种神经网络加速电路包括:数据存储模块100、数据缓存模块200、计算模块300和延时处理模块400。
具体的,数据存储模块100用于存储神经网络计算所需的输入数据。神经网络是由大量的、简单的处理单元(也可称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。神经网络的计算通常需要大量的输入数据,在神经网络加速电路中,这些输入数据由数据存储模块100进行存储。
数据缓存模块200用于缓存所述数据存储模块输出的输入数据。当需要进行计算时,从数据存储模块100中读取的输入数据先由数据缓存模块200进行缓存,计算模块300直接从数据缓存模块200中获得神经网络计算所需的输入数据。数据存储模块100向数据缓存模块200传输的神经网络计算所需的输入数据相互之间是存在延迟的,显然,数据存储模块100先输出的数据先到达数据缓存模块200,数据存储模块100后输出的数据后到达数据缓存模块200。
计算模块300包括多个计算单元,所述计算单元用于对所述数据缓存模块输出的输入数据进行计算以得到输出数据。计算模块300包括多个计算单元,计算单元的数量则体现了神经网络的计算并行度,计算单元的数量越多,神经网络的计算并行度越高。一个计算单元对输入数据进行计算后可以得到一组输出数据,故计算模块300对输入数据进行计算后可以得到多组输出数据。计算模块300的每个计算单元向数据缓存模块200获取输入数据所需要的时间是相同的,神经网络加速电路工作在较高的时钟频率下仍然可以具备较高的计算并行度。
延时处理模块400用于对所述输出数据进行延迟处理后同时输出延迟处理后的输出数据。由于数据存储模块100向数据缓存模块200传输的神经网络计算所需的输入数据相互之间在时序上存在延迟,相应的,计算模块300的每个计算单元从数据缓存模块200获取的输入数据相互之间在时序上也存在延迟,从而造成计算模块300计算完成的多组输出数据之间也是互相延迟的。通常神经网络加速器需要将所有的输出数据同时输出,以使在存储这些输出数据时,能够保证这些输出数据相互之间的空间位置关系不发生变化。计算模块300将输出数据传输到延时处理模块400,延时处理模块400对输出数据进行延迟处理。延时处理模块400对计算模块300先计算完成的输出数据进行较长时间的延迟,对计算模块300后计算完成的输出数据进行较短时间的延迟,从而使得计算模块300计算完成的所有输出数据最终都处于同一个时钟周期内,由延时处理模块400同时输出所有的输出数据。
本发明实施例一提供的一种神经网络加速电路通过数据存储模块,用于存储神经网络计算所需的输入数据;数据缓存模块,用于缓存所述数据存储模块输出的输入数据;计算模块,包括多个计算单元,所述计算单元用于对所述数据缓存模块输出的输入数据进行计算以得到输出数据;延时处理模块,用于对所述输出数据进行延迟处理后同时输出延迟处理后的输出数据。解决了神经网络加速电路中时序和计算并行度之间的矛盾,使神经网络加速电路工作在较高的时钟频率也能有较高的计算并行度,提高了神经网络加速电路的计算能力。
实施例二
图3为本发明实施例二提供的一种神经网络加速电路的结构示意图,本实施例是对上述实施例的进一步细化。如图3所示,本发明实施例二提供的一种神经网络加速电路包括:数据存储模块100、数据缓存模块200、计算模块300和延时处理模块400,其中,数据存储模块100包括第一数据存储子模块110和第二数据存储子模块120,第一数据存储子模块110包括第一数据存储单元111和第一控制单元112,第二数据存储子模块120包括第二数据存储单元121和第二控制单元122,数据缓存模块200包括第一寄存器单元210和第二寄存器单元220,第一寄存器单元210包括n个第一寄存器211_1~211_n,第二寄存器单元220包括n个第二寄存器221_1~221_n,计算模块300包括n个计算单元310_1~310_n。
第一寄存器单元210的n个第一寄存器211_1~211_n依次串联连接,第二寄存器单元220的n个第二寄存器221_1~221_n依次串联连接。计算单元310_1~310_n和第一寄存器211_1~211_n一一对应连接,即第1个计算单元310_1和第1个第一寄存器211_1连接,第i个计算单元310_i和第i个第一寄存器211_i连接(i≤n)。计算单元310_1~310_n还与第二寄存器221_1~221_n一一对应连接,即第1个计算单元310_1和第1个第二寄存器221_1连接,第i个计算单元310_i和第i个第二寄存器221_i连接(i≤n)。在实际硬件设备中,应该保证第i个计算单元310_i和第i个第一寄存器211_i之间的距离与第i个计算单元310_i和第i个第二寄存器221_i之间的距离相等,从而可以保证第i个计算单元310_i从第i个第一寄存器211_i获取数据的时间与从第i个第二寄存器221_i获取数据的时间相同。
第一数据存储单元111第一数据存储单元用于存储神经网络计算所需的第一输入数据,其与第一寄存器单元210内的第1个第一寄存器211_1连接;第二数据存储单元121用于存储神经网络计算所需的第二输入数据,其与第二寄存器单元220内的第1个第二寄存器221_1连接。
使用本实施例提供的神经网络加速电路进行计算时,第一数据存储单元111向第一寄存器单元210传输第一输入数据,传输的第一输入数据首先到达第1个第一寄存器211_1,第1个第一寄存器211_1将第一输入数据传输到第1个计算单元310_1;同时,第二数据存储单元121向第二寄存器单元220传输第二输入数据,传输的第二输入数据首先到达第1个第二寄存器221_1,第1个第二寄存器221_1将第二输入数据传输到第1个计算单元310_1。第1个计算单元310_1对第一输入数据和第二输入数据进行计算得到第一组输出数据。其中,第一输入数据可以是用户的输入数据,第二输入数据可以是神经网络进行卷积计算时与用户的输入数据对应的权值数据,第一数据存储单元111和所述第二数据存储单元121都可以是RAM存储单元。
第一数据存储单元111传输的第一输入数据到达第1个第一寄存器211_1后,继续向下传输,到达第2个第一寄存器211_2,第2个第一寄存器211_2将第一输入数据传输到第2个计算单元310_2中;同时,第二数据存储单元121传输的第二输入数据到达第1个第二寄存器221_1后,第二寄存器221_1先进行向右移位操作,然后再将第二输入数据向下传输到第2个第二寄存器221_2,第2个第二寄存器221_2将第二输入数据传输到第2个计算单元310_2中。第2个计算单元310_2对第一输入数据和第二输入数据进行计算得到第2组输出数据。此后数据依次向下传输,第i个第一寄存器211_i将第一输入数据传输到第i个计算单元310_i中,第i个第二寄存器221_i将第二输入数据传输到第i个计算单元310_i中,第i个计算单元310_i对第一输入数据和第二输入数据进行计算得到第i组输出数据。第i-1个第二寄存器221_i-1先进行向右移位,再将第二输入数据传输到第i个第二寄存器221_i,从而使得第i-1个计算单元310_i-1获取的第二输入数据与第i个计算单元310_i获取的第二输入数据不同,也就是每个计算单元获取的权值数据各不相同。
进一步的,计算单元对输入数据进行计算需要满足两个条件,一个是接收到能够进行计算的输入数据,一个是接收到开始计算的控制信号。第一数据存储子模块110内的第一控制单元112用于向计算模块300内的第1个计算单元310_1产生控制信号。当第一数据存储单元111向第一寄存器单元210传输第一输入数据时,说明此时需要使用神经网络加速电路进行计算,此时第一控制单元112对第1个计算单元310_1发出控制信号。
第二数据存储子模块120内的第二控制单元122用于对第二存储单元121产生控制信号,以控制第二存储单元121的数据读写操作,第二控制单元122跟随第一控制单元112的动作产生控制信号。当第一控制单元112向第1个计算单元310_1发出控制信号时,第二控制单元122也向第二存储单元121发出控制信号,以使在第一数据存储单元111向第一寄存器单元210传输第一输入数据同时,第二数据存储子模块120向第二寄存器单元220传输第二输入数据,从而保证计算模块300能够同时获取第一输入数据和第二输入数据。
第1个计算单元310_1接收到控制信号后,经过预设时钟周期向第2个计算单元310_2发出控制信号;第2个计算单元310_2接收到控制信号后,经过预设时钟周期向第3个计算单元310_3发出控制信号,此后继续以这种方式发送控制信号,直到第n个计算单元310_n接收到控制信号,即,第i-1个计算单元接收到控制信号后,按照预设时钟周期向第i个计算单元产生控制信号(2≤i≤n)。预设时钟周期可以是固定的时钟周期,例如1个时钟周期,也可以根据数据传输的速率进行调整,只要保证计算单元在接收到能够进行计算的输入数据后可以直接进行计算即可。
进一步的,由上述数据传输过程可以看出,计算模块300内的n个计算单元310_1~310_n并不是同时开始进行计算,而是有先后时间顺序,从而导致n个计算单元310_1~310_n输出的n组输出数据也有先后时间顺序。这就需要延时处理模块400来调整n个计算单元310_1~310_n输出的n组输出数据的时序,以使神经网络加速电路能够同时输出n组输出数据。
示例性的,假设计算模块300包括64个计算单元310_1~310_64,相应的,第一寄存器单元210包括64个第一寄存器211_1~211_64,第二寄存器单元220包括64个第二寄存器221_1~221_64。第一数据存储单元111向第一寄存器单元210传输的第一输入数据经过第1个第一寄存器211_1到达第1个计算单元310_1,同时,第二数据存储单元121向第二寄存器单元220传输的第二输入数据经过第1个第二寄存器221_1到达第1个计算单元310_1,这一过程需要的时间为1个时钟周期,且第一控制单元在第1个时钟周期向第1个计算单元310_1发出控制信号。在第2个时钟周期,第一输入数据经过第1个第一寄存器211_1传输到第2个第一寄存器211_2,第2个计算单元310_2从第2个第一寄存器211_2接收第一输入数据,第二输入数据经过第1个第二寄存器221_1的向右移位操作后传输到第2个第二寄存器221_2,第2个计算单元310_2从第2个第二寄存器221_2接收第二输入数据,且第1个计算单元310_1向第2个计算单元310_2发出控制信号。以此类推,第i个计算单元310_i在第i个时钟周期(i≤64)接收到输入数据和控制信号并开始计算,第i个计算单元310_i和第i-1个计算单元310_i-1之间接收输入数据的时间存在1个时钟周期的延迟,第i-1个计算单元310_i-1接收到控制信号后,经过1个时钟周期后向第i个计算单元310_i发出控制信号,第64个计算单元310_64则在第64个时钟周期开始计算。
假设一个计算单元的计算过程需要3个时钟周期才能完成,则第1个计算单元310_1在第4个时钟周期输出第1组输出数据,第i个计算单元310_i在第i+3个时钟周期输出第1组输出数据,第64个计算单元310_64在第67个时钟周期输出第64组输出数据。为了使所有的输出数据同时输出,延时处理模块400将第1个计算单元310_1输出的第1组输出数据延迟64个时钟周期,将第2个计算单元310_2输出的第2组输出数据延迟63个时钟周期,将第i个计算单元310_i输出的第i组输出数据延迟65-i个时钟周期,则第64个计算单元310_64输出的第64组输出数据延迟1个时钟周期。从而保证在第68个时钟周期时,64个计算单元310_1~310_64的64组输出数据都传输到了延时处理模块400,延时处理模块400可以同时输出这64组输出数据。
实施例三
图4为本发明实施例三提供的一种神经网络加速方法的流程示意图,可适用于神经网络的计算。本实施例所提供的一种神经网络加速方法可由本发明任意实施例提供的一种神经网络加速电路实现。本发明实施例三中未详尽描述的内容可以参考本发明任意系统实施例中的描述。
如图4所示,本发明实施例三提供的一种神经网络加速方法包括:
S410、获取神经网络计算所需的输入数据。
具体的,神经网络是由大量的、简单的处理单元(也可称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统,因此,神经网络的计算通常需要大量的输入数据。
神经网络的输入数据包括第一输入数据和第二输入数据,其中,第一输入数据为用户的输入数据,第二输入数据为神经网络进行卷积计算时与用户的输入数据对应的权值数据。
神经网络的第一输入数据可从第一存储器RAM中读取,第一存储器后接有多个依次串联连接的第一寄存器,神经网络的第二输入数据可从第二存储器RAM中读取,第二存储器后接有多个依次串联连接的第二寄存器,计算单元的数量与第一寄存器或第二寄存器的数量相同,且一个计算单元连接有一个第一寄存器和一个第二寄存器,以使一个计算单元能同时从一个第一寄存器中获取第一输入数据,从一个第二寄存器中获取第二输入数据。
S420、将所述输入数据依次传输到多个计算单元进行计算以得到多组输出数据。
具体的,从第一存储器RAM中读取的第一输入数据依次传输到多个依次串联连接的第一寄存器中,多个依次串联连接的第一寄存器则将第一输入数据依次传输到对应连接的计算单元中;从第二存储器RAM中读取的第二输入数据依次传输到多个依次串联连接的第二寄存器中,多个依次串联连接的第二寄存器则将第二输入数据依次传输到对应连接的计算单元中。
一个计算单元对第一输入数据和第二输入数据进行一次计算可以得到一组输出数据,从而多个计算单元进行计算后可以得到多组输出数据。
S430、对多组所述输出数据进行延时处理后同时输出多组所述输出数据。
具体的,由于依次串联连接的寄存器使得每个计算单元获取的输入数据相互之间在时序上存在延迟,故多个计算单元计算得到的多组输出数据在时序上也存在延迟,对先计算完成的输出数据进行较长时间的延迟,对后计算完成的输出数据进行较短时间的延迟,以使最后能够同时输出所有的输出数据。
本发明实施例三提供的一种神经网络加速方法通过获取神经网络计算所需的多个输入数据;将所述输入数据依次传输到多个计算单元进行计算以得到多组输出数据;对多组所述输出数据进行延时处理后同时输出多组所述输出数据。解决了神经网络加速电路中时序和计算并行度之间的矛盾,使神经网络加速电路工作在较高的时钟频率也能有较高的计算并行度,提高了神经网络加速电路的计算能力。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种神经网络加速电路,其特征在于,包括:
数据存储模块,用于存储神经网络计算所需的输入数据;
数据缓存模块,用于缓存所述数据存储模块输出的输入数据;
计算模块,包括多个计算单元,所述计算单元用于对所述数据缓存模块输出的输入数据进行计算以得到输出数据;
延时处理模块,用于对所述输出数据进行延迟处理后同时输出延迟处理后的输出数据。
2.如权利要求1所述的神经网络加速电路,其特征在于,所述数据存储模块包括第一数据存储子模块和第二数据存储子模块,所述第一数据存储子模块包括第一数据存储单元和第一控制单元,所述第一数据存储单元用于存储神经网络计算所需的第一输入数据,所述第一控制单元用于向所述计算模块发出控制信号。
3.如权利要求1所述的神经网络加速电路,其特征在于,所述第二数据存储子模块包括第二数据存储单元和第二控制单元,所述第二数据存储单元用于存储神经网络计算所需的第二输入数据,所述第二控制单元用于控制所述第二数据存储单元的读写操作。
4.如权利要求2所述的神经网络加速电路,其特征在于,所述数据缓存模块包括第一寄存器单元和第二寄存器单元,所述第一数据存储单元与所述第一寄存器单元连接,所述第二数据存储单元与所述第二寄存器单元连接。
5.如权利要求2所述的神经网络加速电路,其特征在于,所述第一寄存器单元包括n个依次串联连接的第一寄存器,所述第二寄存器单元包括n个依次串联连接的第二寄存器。
6.如权利要求4所述的神经网络加速电路,其特征在于,所述计算模块包括n个计算单元,第i个计算单元与第i个第一寄存器连接,第i个计算单元还与第i个第二寄存器连接,其中,i≤n。
7.如权利要求6所述的神经网络加速电路,其特征在于,所述第一控制单元用于对所述计算模块的第一个计算单元产生控制信号。
8.如权利要求7所述的神经网络加速电路,其特征在于,所述计算模块的第i-1个计算单元接收到控制信号后,按照预设时钟周期向第i个计算单元产生控制信号,其中,2≤i≤n。
9.如权利要求2所述的神经网络加速电路,其特征在于,所述第一数据存储单元和所述第二数据存储单元均为RAM存储单元。
10.一种神经网络加速方法,其特征在于,包括:
获取神经网络计算所需的多个输入数据;
将所述输入数据依次传输到多个计算单元进行计算以得到多组输出数据;
对多组所述输出数据进行延时处理后同时输出多组所述输出数据。
CN201911302604.0A 2019-12-17 2019-12-17 一种神经网络加速电路和方法 Active CN110956258B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911302604.0A CN110956258B (zh) 2019-12-17 2019-12-17 一种神经网络加速电路和方法
PCT/CN2020/136842 WO2021121274A1 (zh) 2019-12-17 2020-12-16 一种神经网络加速电路和方法
US17/786,650 US20230036414A1 (en) 2019-12-17 2020-12-16 Neural network acceleration circuit and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911302604.0A CN110956258B (zh) 2019-12-17 2019-12-17 一种神经网络加速电路和方法

Publications (2)

Publication Number Publication Date
CN110956258A true CN110956258A (zh) 2020-04-03
CN110956258B CN110956258B (zh) 2023-05-16

Family

ID=69982172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911302604.0A Active CN110956258B (zh) 2019-12-17 2019-12-17 一种神经网络加速电路和方法

Country Status (3)

Country Link
US (1) US20230036414A1 (zh)
CN (1) CN110956258B (zh)
WO (1) WO2021121274A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111860821A (zh) * 2020-08-04 2020-10-30 深圳鲲云信息科技有限公司 数据流架构神经网络芯片的数据传输的控制方法及系统
CN112734018A (zh) * 2020-12-29 2021-04-30 山东产研鲲云人工智能研究院有限公司 神经网络硬件加速器
WO2021121274A1 (zh) * 2019-12-17 2021-06-24 深圳鲲云信息科技有限公司 一种神经网络加速电路和方法
CN113065647A (zh) * 2021-03-30 2021-07-02 西安电子科技大学 加速神经网络的计算-存储通信系统及通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190138567A1 (en) * 2017-11-03 2019-05-09 Imagination Technologies Limited Hardware Implementation of Convolutional Layer of Deep Neural Network
CN109740732A (zh) * 2018-12-27 2019-05-10 深圳云天励飞技术有限公司 神经网络处理器、卷积神经网络数据复用方法及相关设备
CN110334799A (zh) * 2019-07-12 2019-10-15 电子科技大学 基于存算一体的神经网络推理与训练加速器及其运行方法
US20190325298A1 (en) * 2016-12-30 2019-10-24 Sanghai Cambricon Information Technology Co., Ltd. Apparatus for executing lstm neural network operation, and operational method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008051240A2 (en) * 2005-11-18 2008-05-02 Georgia Tech Research Corporation System, apparatus and methods for augmenting filter with adaptive element
US10650301B2 (en) * 2014-05-08 2020-05-12 International Business Machines Corporation Utilizing a distributed and parallel set of neurosynaptic core circuits for neuronal computation and non-neuronal computation
CN108780524A (zh) * 2017-10-31 2018-11-09 深圳市大疆创新科技有限公司 用于神经网络的运算装置、电路及相关方法
CN108171317B (zh) * 2017-11-27 2020-08-04 北京时代民芯科技有限公司 一种基于soc的数据复用卷积神经网络加速器
CN109615069B (zh) * 2018-11-28 2023-04-25 北京工业大学 一种具有异步传输特性的神经网络的电路结构
CN110555516B (zh) * 2019-08-27 2023-10-27 合肥辉羲智能科技有限公司 基于FPGA的YOLOv2-tiny神经网络低延时硬件加速器实现方法
CN110956258B (zh) * 2019-12-17 2023-05-16 深圳鲲云信息科技有限公司 一种神经网络加速电路和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190325298A1 (en) * 2016-12-30 2019-10-24 Sanghai Cambricon Information Technology Co., Ltd. Apparatus for executing lstm neural network operation, and operational method
US20190138567A1 (en) * 2017-11-03 2019-05-09 Imagination Technologies Limited Hardware Implementation of Convolutional Layer of Deep Neural Network
CN109740732A (zh) * 2018-12-27 2019-05-10 深圳云天励飞技术有限公司 神经网络处理器、卷积神经网络数据复用方法及相关设备
CN110334799A (zh) * 2019-07-12 2019-10-15 电子科技大学 基于存算一体的神经网络推理与训练加速器及其运行方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021121274A1 (zh) * 2019-12-17 2021-06-24 深圳鲲云信息科技有限公司 一种神经网络加速电路和方法
CN111860821A (zh) * 2020-08-04 2020-10-30 深圳鲲云信息科技有限公司 数据流架构神经网络芯片的数据传输的控制方法及系统
WO2022028223A1 (zh) * 2020-08-04 2022-02-10 深圳鲲云信息科技有限公司 数据流架构神经网络芯片的数据传输的控制方法及系统
CN111860821B (zh) * 2020-08-04 2023-05-16 深圳鲲云信息科技有限公司 数据流架构神经网络芯片的数据传输的控制方法及系统
CN112734018A (zh) * 2020-12-29 2021-04-30 山东产研鲲云人工智能研究院有限公司 神经网络硬件加速器
CN113065647A (zh) * 2021-03-30 2021-07-02 西安电子科技大学 加速神经网络的计算-存储通信系统及通信方法
CN113065647B (zh) * 2021-03-30 2023-04-25 西安电子科技大学 加速神经网络的计算-存储通信系统及通信方法

Also Published As

Publication number Publication date
WO2021121274A1 (zh) 2021-06-24
US20230036414A1 (en) 2023-02-02
CN110956258B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN110956258A (zh) 一种神经网络加速电路和方法
CN107301454B (zh) 支持离散数据表示的人工神经网络反向训练装置和方法
CN110210610B (zh) 卷积计算加速器、卷积计算方法及卷积计算设备
CN110751277B (zh) 运算电路、包括该运算电路的运算装置和系统
WO2018139196A1 (ja) プロセッサ、情報処理装置及びプロセッサの動作方法
CN108897716B (zh) 通过存储器读写操作来缩减计算量的数据处理装置及方法
CN113807509B (zh) 神经网络加速装置、方法和通信设备
CN109670581B (zh) 一种计算装置及板卡
CN108665522B (zh) 一种高帧频短延时动态场景仿真生成系统和方法
CN112703511A (zh) 运算加速器和数据处理方法
WO2023098256A1 (zh) 神经网络运算方法、装置、芯片、电子设备和存储介质
EP3465260B1 (en) Model-based protection algorithms
CN111626399B (zh) 卷积神经网络计算装置、数据计算方法
CN109190755B (zh) 面向神经网络的矩阵转换装置及方法
CN113298241B (zh) 一种深度可分离卷积神经网络加速方法和加速器
US20220036190A1 (en) Neural network compression device
CN116167419A (zh) 一种兼容N:M稀疏的Transformer加速器的架构及加速方法
CN115437602A (zh) 任意精度计算加速器、集成电路装置、板卡及方法
CN111258641B (zh) 运算方法、装置及相关产品
KR20200011019A (ko) 연산 회로, 이를 포함하는 연산 장치 및 시스템
JPH01295365A (ja) デジタル計算用集積回路
RU2446461C2 (ru) Цифровое прогнозирующее устройство
EP4145355A1 (en) Calculation device
CN116540534A (zh) 一种单主多从遥操作机器人系统的自适应控制方法及系统
CN111814680B (zh) 一种基于fpga的多路axi总线的控制方法

Legal Events

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