WO2021259098A1 - 一种基于卷积神经网络的加速系统、方法及存储介质 - Google Patents

一种基于卷积神经网络的加速系统、方法及存储介质 Download PDF

Info

Publication number
WO2021259098A1
WO2021259098A1 PCT/CN2021/100236 CN2021100236W WO2021259098A1 WO 2021259098 A1 WO2021259098 A1 WO 2021259098A1 CN 2021100236 W CN2021100236 W CN 2021100236W WO 2021259098 A1 WO2021259098 A1 WO 2021259098A1
Authority
WO
WIPO (PCT)
Prior art keywords
data flow
computing node
buffer
layer
lake buffer
Prior art date
Application number
PCT/CN2021/100236
Other languages
English (en)
French (fr)
Inventor
曾成龙
李远超
蔡权雄
牛昕宇
Original Assignee
深圳鲲云信息科技有限公司
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 深圳鲲云信息科技有限公司 filed Critical 深圳鲲云信息科技有限公司
Publication of WO2021259098A1 publication Critical patent/WO2021259098A1/zh
Priority to US18/145,028 priority Critical patent/US20230128529A1/en

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/282Cycle stealing DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data

Abstract

本申请实施例公开了一种基于卷积神经网络的加速系统、方法及存储介质。该加速系统包括:直接内存存取器,设置为存储计算图,计算图包括n层计算节点;数据流湖缓冲区,包括第一数据流湖缓冲器和第二数据流湖缓冲器,第一数据流湖缓冲器设置为缓存计算图;运算器,设置为从第一数据流湖缓冲器获取计算图的第i层计算节点进行计算以得到第i+1层计算节点;第一扇出器,设置为复制第i+1层计算节点并分别存入直接内存存取器和第二数据流湖缓冲器中,运算器从第二数据流湖缓冲器提取第i+1层计算节点进行运算以得到第i+2层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。

Description

一种基于卷积神经网络的加速系统、方法及存储介质
本申请要求在2020年6月22日提交中国专利局、申请号为202010575498.X的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及神经网络技术,例如涉及一种基于卷积神经网络的加速系统、方法及存储介质。
背景技术
近年来,深度学习算法在机器学习领域表现优异,取得重要成果。作为深度学习的代表,卷积神经网络(Convolutional Neural Networks,CNN)被广泛应用于物体检测、分类和自动驾驶等方向。
虽然卷积神经网络算法是机器视觉领域最先进的算法之一,但其面临着处理复杂度不断增加的任务的挑战。这导致需要设计更深、更富有表现力的网络,代价是计算和存储需求的增加。因此需要专用的加速平台对卷积神经网络进行加速。图形处理器(Graphics Processing Unit,GPU)是实现卷积神经网络最常用的平台,因为它可以提供相对较高的算力,但其功耗相对来说也很大,只适用于云端计算平台。为了提供更专业的卷积神经网络加速平台,近几年基于特殊应用集成电路(Application Specific Integrated Circuit,ASIC)和现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)的卷积神经网络加速器成为热门的研究课题。其中,采用数据流架构的加速器对乘法器和加法器的利用率很高,相同硬件平台下,加速效果最优。
在卷积神经网络计算过程中,会产生大量的中间数据,通常情况下,基于数据流架构的卷积神经网络加速器往往将这些中间数据传到片外存储器,需要使用时再传回片内存储器。若基于数据流架构的卷积神经网络加速器要实现对乘法器和加法器的高利用率,则要保证每个时钟都有有效数据流过乘法器和加法器。但由于带宽的限制,如果将中间数据传到片外存储器,需要使用时再传回片内存储器,则很难保证每个时钟周期都有有效的数据流过乘法器和加法器, 甚至可能会出现一段数据的断流期,严重影响加速器的加速效果以及对计算资源的利用率。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供一种基于卷积神经网络的加速系统、方法及存储介质,以实现卷积神经网络计算时减少中间数据传输到片外存储器的次数以加速计算。
本申请实施例提供了一种基于卷积神经网络的加速系统,该基于卷积神经网络的加速系统包括:
直接内存存取器,设置为存储计算图,所述计算图包括n层计算节点;数据流湖缓冲区,包括第一数据流湖缓冲器和第二数据流湖缓冲器,所述第一数据流湖缓冲器设置为缓存所述计算图;运算器,设置为从所述第一数据流湖缓冲器获取所述计算图的第i层计算节点进行计算以得到第i+1层计算节点;第一扇出器,设置为复制所述第i+1层计算节点并分别存入所述直接内存存取器和第二数据流湖缓冲器中,所述运算器从所述第二数据流湖缓冲器提取第i+1层计算节点进行运算以得到第i+2层计算节点,所述第一扇出器还设置为复制所述第i+2层计算节点并存入所述直接内存存取器和第一数据流湖缓冲器中,所述运算器从所述第一数据流湖缓冲器提取第i+2层计算节点进行运算以得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点;其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
一方面,本申请实施例提供了一种基于卷积神经网络的加速方法,该基于卷积神经网络的加速方法包括:
将计算图的第i层计算节点缓存至第一数据流湖缓冲器中等待运算,所述计算图包括n层计算节点;
从所述第一数据流湖缓冲器中提取所述第i层计算节点并运算得到第i+1层计算节点;
将所述第i+1层计算节点复制后分别输出至直接内存存取器和第二数据流湖缓冲器中;
从所述第二数据流湖缓冲器中提取所述第i+1层计算节点并运算得到第i+2层计算节点;
将所述第i+2层计算节点复制后分别输出至所述直接内存存取器和第一数据流湖缓冲器中;
从所述第一数据流湖缓冲器中提取所述第i+2层计算节点并运算得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点;
其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
另一方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请任一实施例提供的加速方法。
附图说明
图1是本申请一实施例提供的基于卷积神经网络的加速系统的结构示意图;
图2是本申请另一实施例提供的基于卷积神经网络的加速系统的结构示意图;
图3是本申请一实施例提供的基于卷积神经网络的加速方法的流程示意图;
图4是本申请另一实施例提供的基于卷积神经网络的加速方法的流程示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的示例实施例用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一扇出器称为第二扇出器,且类似地,可将第二扇出器称为第一扇出器。第一扇出器和第二扇出器两 者都是扇出器,但其不是同一扇出器。术语“第一”、“第二”等不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请实施例的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
如图1所示,本申请一实施例提供了一种基于卷积神经网络的加速系统,该基于卷积神经网络的加速系统包括直接内存存取器300、数据流湖缓冲区100、运算器200和第一扇出器400。
本实施例中,直接内存存取器300设置为存储计算图,所述计算图包括n层计算节点;数据流湖缓冲区100包括第一数据流湖缓冲器111和第二数据流湖缓冲器112,所述第一数据流湖缓冲器111设置为缓存所述计算图;运算器200设置为从所述第一数据流湖缓冲器111获取所述计算图的第i层计算节点进行计算以得到第i+1层计算节点;第一扇出器400设置为复制所述第i+1层计算节点并分别存入所述直接内存存取器300和第二数据流湖缓冲器112中,所述运算器200从所述第二数据流湖缓冲器112提取第i+1层计算节点进行运算以得到第i+2层计算节点,所述第一扇出器400还设置为复制所述第i+2层计算节点并存入所述直接内存存取器300和第一数据流湖缓冲器111中,所述运算器200从所述第一数据流湖缓冲器111提取第i+2层计算节点进行运算以得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
例如,直接内存存取器300为直接内存存取(Direct Memory Access,DMA)的硬件模块,它允许不同速度的硬件装置来沟通,而不需要依赖于中央处理器(Central Processing Unit,CPU)的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方,在这个时间中,CPU对于其他的工作来说就无法使用。因此采用直接内存存取器300来存储计算图,直接内存存取器300可以将片外存储器的数据传输至片内存储器,也可以将片内存储器的数据传输至片外存储器,本实施例中,直接内存存取器300接收来自片外存储器的计算图并存储。数据流湖缓冲区100即为片内存储器,数据流湖缓冲区100包括第一数据流湖缓冲器111和第二数据流湖缓冲器112,第一数据流湖缓冲器111和第二数据流湖缓冲器112都可以用来缓存计算 图。第一扇出器400可以将一份数据复制为两份相同的数据。运算器200的运算过程包括卷积神经网络中的运算过程,例如卷积运算、池化运算和激活函数等,本申请实施例对此不作限定。在卷积神经网络的计算中,计算图可以包括很多个计算节点,运算器200通过计算一个计算节点得到下一个计算节点,而下一个计算节点将作为下两个计算节点的输入,即通过运算器200计算下一个计算节点将得到下两个计算节点,也就是卷积神经网络中的层级运算,为了避免每一层之间的运算还需要去外部调取数据而导致运算的严重降速,通过数据流湖缓冲区100中的第一数据流湖缓冲器111和第二数据流湖缓冲器112轮流缓存中间数据,实现卷积神经网络的加速运算。
示例性的,当需要计算一个计算图时,直接内存存取器300将接收到第一层计算节点,该计算节点可以是CPU通过外部存储装置调用来的,然后直接内存存取器300将第1层计算节点缓存至第一数据流湖缓冲器111中,当开始计算时,第一数据流湖缓冲器111将第1层计算节点传输至运算器200,同时,运算器200将第1层计算节点的结果,即第2层计算节点输出给第一扇出器400,第一扇出器400将第2层计算节点复制后分别传输给直接内存存取器300和第二数据流湖缓冲器112中缓存,而此时第一数据流湖缓冲器111中的第1层计算节点仍在向运算器200中传输数据,运算器200也仍在进行运算,只是第一数据流湖缓冲器111的传输、运算器200的运算、第一扇出器400的复制,以及传输到直接内存存取器300和第二数据流湖缓冲器112中是同时进行的,以保证运算的快速进行。当第1层计算节点运算完毕后,第一数据流湖缓冲器111中没有存储数据,第二数据流湖缓冲器112中缓存有第2层计算节点,直接内存存取器300也存储有第2层计算节点,此时直接内存存取器300将第2层计算节点输出到外部存储,即输出至片外存储器,第二数据流湖缓冲器112将第2层计算节点传输至运算器200中开始运算得到第3层计算节点,同时第一扇出器400将第3层计算节点复制后分别传输给直接内存存取器300和第一数据流湖缓冲器111中缓存,依此类推,运算器200将从第一数据流湖缓冲器111获取所述计算图的第i层计算节点进行计算以得到第i+1层计算节点,同时第一扇出器400复制所述第i+1层计算节点并分别存入所述直接内存存取器300和第二数据流湖缓冲器112中,运算器200从所述第二数据流湖缓冲器112提取第i+1层计算节点进行运算以得到第i+2层计算节点,然后第一扇出器400继续复制第i+2层计算节点并存入所述直接内存存取器300和第一数据流湖缓 冲器111中,同时运算器200从所述第一数据流湖缓冲器111提取第i+2层计算节点进行运算以得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
假设数据从片外存储器到片内存储器的流速为v1,数据在该加速系统中的流速为v2,数据从片内存储器到片外存储器的流速为v3,在通常情况下,由于带宽的限制,v1小于v2,且v3小于v2,这将会造成某些时钟周期下,加速系统中没有足够的数据去处理,造成运算器200的空闲,无法达到最大的计算效率。但由于该加速系统采用了本实施例的结构,中间数据不需要从片外存储器传输到片内存储器,也不需要从片内存储器传输到片外存储器,而直接存储在数据流湖缓冲区100中,保证了运算器200每时每刻都有足够的数据流入,从而保证了基于数据流架构的加速系统对计算资源的充分利用。
本申请实施例通过,设置为存储计算图的直接内存存取器;包括第一数据流湖缓冲器和第二数据流湖缓冲器的数据流湖缓冲区;设置为从所述第一数据流湖缓冲器获取所述计算图的第i层计算节点进行计算以得到第i+1层计算节点的运算器;设置为复制所述第i+1层计算节点并分别存入所述直接内存存取器和第二数据流湖缓冲器中的第一扇出器,即通过数据流湖缓冲区中的第一数据流湖缓冲器和第二数据流湖缓冲器轮流缓存中间数据,无需导出外部或从外部调用中间数据,大大减少了中间数据的传输时间,避免了卷积神经网络在计算时需要经常将中间数据传输到片外存储器,需要使用时再传回片内存储器,从而导致加速器的计算资源利用率低和加速效果差的情况,实现了卷积神经网络计算时减少中间数据传输到片外存储器的次数以加速计算。
如图2所示,本申请另一实施例提供了一种基于卷积神经网络的加速系统,本申请实施例是在本申请前述实施例的基础上作进一步细化,其不同之处在于,该基于卷积神经网络的加速系统还包括第二扇出器500。
本实施例中,该基于卷积神经网络的加速系统还包括第二扇出器500,所述数据流湖缓冲区100还包括第三数据流湖缓冲器113,当所述计算图的第i+k层计算节点的运算需要用到第i+j层计算节点时,所述第一扇出器400将复制的所述第i+j层计算节点分别输出至所述第二扇出器500和直接内存存取器300中,所述第二扇出器500将所述第i+j层计算节点复制后分别输出至所述第一数据流湖缓冲器111或第二数据流湖缓冲器112,以及第三数据流湖缓冲器 113中,所述运算器200从所述第三数据流湖缓冲器113提取第i+j层计算节点,从所述第一数据流湖缓冲器111或第二数据流湖缓冲器112提取第i+k层计算节点进行运算以得到第i+k+1层计算节点,当所述计算图的第i+k层计算节点的运算不需要用到第i+j层计算节点时,所述第二扇出器500将不执行复制操作而直接将所述第i+j层计算节点输出至所述第一数据流湖缓冲器111或第二数据流湖缓冲器112,其中,k和j分别为正整数,i+k+1≤n,i+j≤n。
例如,该基于卷积神经网络的加速系统还包括片外存储器600,所述片外存储器600设置为将第1层计算节点发送给所述直接内存存取器300。所述片外存储器600还设置为接收所述直接内存存取器300发送的n-1层计算节点。
例如,所述数据流湖缓冲区100还包括第一译码器121、第二译码器122、第一接口131、第二接口132、第三接口133、第四接口134和第五接口135,所述直接内存存取器300通过所述第一接口131连接至所述第一译码器121,所述第二扇出器500通过所述第二接口132和第三接口133连接至所述第一译码器121,所述第一译码器121设置为将接收的数据分别缓存至所述第一数据流湖缓冲器111、第二数据流湖缓冲器112或第三数据流湖缓冲器113中,所述第一数据流湖缓冲器111和第二数据流湖缓冲器112中的数据通过所述第二译码器122从所述第四接口134输出至所述运算器200,所述第三数据流湖缓冲器113中的数据通过所述第二译码器122从所述第五接口135输出至所述运算器200,所述运算器200通过所述第一扇出器400分别连接至所述直接内存存取器300和第二扇出器500。
例如,片外存储器600的主要功能是存储各种数据,并能在计算机或芯片上运营过程中高速、自动地完成数据的存取。片外存储器600是具有“记忆”功能的设备,它采用具有两种稳定状态的物理器件来存储信息。片外存储器600的存储容量要大,以满足神经网络数据计算的需求。例如,片外存储器600可以是动态存储器(Dynamic Random Access Memory,DRAM),也可以是双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM)。例如,片外存储器600是DDR SDRAM存储器,以满足更高的数据传输效率。直接内存存取器300可以将数据流湖缓冲区100中的数据传输至片外存储器600,也可以将片外存储器600中的数据传输至数据流湖缓冲区100中,本实施例中,片外存储器600将第1层计算节点发送至直接内存存取器300中,以在数据流湖缓冲区100中缓存并通过运算器200计算, 运算器200运算的全部结果也将通过直接内存存取器300传输至片外存储器600。第一译码器121和第二译码器122是一类多输入多输出组合逻辑电路器件,第一译码器121可以从第一接口131、第二接口132或第三接口133将数据选择输入第一数据流湖缓冲器111、第二数据流湖缓冲器112或第三数据流湖缓冲器113中,第二译码器122可以从第一数据流湖缓冲器111、第二数据流湖缓冲器112或第三数据流湖缓冲器113将数据选择输出至第四接口134或第五接口135中,本实施例中,第一接口131、第二接口132、第三接口133、第四接口134、第五接口135、第一数据流湖缓冲器111、第二数据流湖缓冲器112和第三数据流湖缓冲器113的位置都不固定,可以随意调换,即无论从第一接口131、第二接口132或第三接口133中传输的数据,第一译码器121都可以将其任意传输至第一数据流湖缓冲器111、第二数据流湖缓冲器112或第三数据流湖缓冲器113中,除当前数据流湖缓冲器已存有数据外则不传输,而第二译码器122也可以将第一数据流湖缓冲器111、第二数据流湖缓冲器112或第三数据流湖缓冲器113中的数据任意通过第四接口134或第五接口135传输,除非当前接口有数据正在传输。
在一替代实施例中,也可以设置两个数据分配器代替第一译码器121,设置两个反向数据分配器代替第二译码器122,而实现相同的效果。
示例性的,当所述计算图的第i+k层计算节点的运算需要用到第i+j层计算节点时,称之为直连操作(shortcut),例如,当第5层的计算节点的运算需要用到第2层的计算节点时,第1层的节点通过第一接口131,经由第一译码器121的选择,缓存至第一数据流湖缓冲器111中,开始运算时,第一数据流湖缓冲器111经由第二译码器122的选择通过第四接口134将第一层计算节点传输至运算器200运算得到第2层计算节点,同时,运算器200将第2层计算节点输出给第一扇出器400,第一扇出器400将第2层计算节点复制后分别传输给直接内存存取器300和第二扇出器500中,第二扇出器500通过CPU的控制继续将第2层计算节点复制后分别通过第二接口132和第一译码器121传输给第二数据流湖缓冲器112,通过第三接口133和第一译码器121传输给第三数据流湖缓冲器113,此时第2层计算节点将暂时缓存在第三数据流湖缓冲器113中而不参与运算,然后第二数据流湖缓冲器112中的第2层计算节点通过第二译码器122和第四接口134传输至运算器200中继续进行运算,直至运算至第5层计算节点时,第一数据流湖缓冲器中的第5层计算节点通过第二译码 器122和第四接口134传输至运算器200,同时第三数据流湖缓冲器113中的第2层计算节点通过第二译码器122和第五接口135传输至运算器200,运算器200根据第2层计算节点和第5层计算节点进行运算得到第6层计算节点,并缓存至第二数据流湖缓冲器112中,完成shortcut,当第6层计算节点计算完毕时,第三数据流湖缓冲器113中没有缓存数据直到进行下一次shortcut。
当不存在shotcut时,第一扇出器400将运算器200得到的计算节点复制后分别传输至直接内存存取器300和第二扇出器500中,但此时第二扇出器500通过CPU的控制将不会复制该计算节点,而是直接将该计算节点传输至第二接口132。例如,也可以是第一扇出器400通过CPU的控制将两份相同的计算节点都传输至直接内存存取器300中,直接内存存取器300将一份计算节点传输至片外存储器600,另一份计算节点传输至第一接口131。
一实施例中,当每一层的计算节点传输至数据流湖缓冲区100之前,CPU都会判断该计算节点能否被第一数据流湖缓冲器111、第二数据流湖缓冲器112或第三数据流湖缓冲器113中空闲的数据流湖缓冲器存下,若无法存下时,CPU会控制将该节点进行拆分,分块后传输至数据流湖缓冲区100中。一种可行的实施方式为,若存在两个空闲的数据流湖缓冲器,即没有执行shortcut时,可以用两个数据流湖缓冲器来缓存一个计算节点,另一种可行的实施方式为,若两个数据流湖缓冲器也无法存下,且存在两个空闲的数据流湖缓冲器,即没有执行shortcut时,先将运算得到的计算节点缓存至空闲的两个数据流湖缓冲器中,当剩余的数据流湖缓冲器已经将全部的待运算节点传输至运算器200后,将剩余的运算得到的计算节点缓存至剩余的数据流湖缓冲器中。
本申请实施例通过三个数据流湖缓冲器和两个扇出器,根据卷积神经网络的需要灵活分配使用数据流湖缓冲区中的数据流湖缓冲器,避免了卷积神经网络运算时当计算图的第i+k层计算节点的运算需要用到第i+j层计算节点需要从外部调取数据,进一步减少了因数据的调取而造成的计算资源浪费的情况,可以灵活处理卷积神经网络的中间数据以大大提高计算效率。
如图3所示,本申请一实施例提供了一种基于卷积神经网络的加速方法,该基于卷积神经网络的加速方法包括:
S110、将计算图的第i层计算节点缓存至第一数据流湖缓冲器中等待运算,所述计算图包括n层计算节点。
S120、从所述第一数据流湖缓冲器中提取所述第i层计算节点并运算得到第i+1层计算节点。
S130、将所述第i+1层计算节点复制后分别输出至直接内存存取器和第二数据流湖缓冲器中。
S140、从所述第二数据流湖缓冲器中提取所述第i+1层计算节点并运算得到第i+2层计算节点。
S150、将所述第i+2层计算节点复制后分别输出至所述直接内存存取器和第一数据流湖缓冲器中。
S160、从所述第一数据流湖缓冲器中提取所述第i+2层计算节点并运算得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
本实施例中,当需要计算一个计算图时,直接内存存取器将接收到第一层计算节点,该计算节点可以是CPU通过外部存储装置调用来的,然后直接内存存取器将第1层计算节点缓存至第一数据流湖缓冲器中,当开始计算时,第一数据流湖缓冲器将第1层计算节点传输至运算器,同时,运算器将第1层计算节点的结果,即第2层计算节点输出给第一扇出器,第一扇出器将第2层计算节点复制后分别传输给直接内存存取器和第二数据流湖缓冲器中缓存,而此时第一数据流湖缓冲器中的第1层计算节点仍在向运算器中传输数据,运算器也仍在进行运算,只是第一数据流湖缓冲器的传输、运算器的运算、第一扇出器的复制,以及传输到直接内存存取器和第二数据流湖缓冲器中是同时进行的,以保证运算的快速进行。当第1层计算节点运算完毕后,第一数据流湖缓冲器中没有存储数据,第二数据流湖缓冲器中缓存有第2层计算节点,直接内存存取器也存储有第2层计算节点,此时直接内存存取器将第2层计算节点输出到外部存储,即输出至片外存储器,第二数据流湖缓冲器将第2层计算节点传输至运算器中开始运算得到第3层计算节点,同时第一扇出器将第3层计算节点复制后分别传输给直接内存存取器和第一数据流湖缓冲器中缓存,依此类推,运算器将从第一数据流湖缓冲器获取所述计算图的第i层计算节点进行计算以得到第i+1层计算节点,同时第一扇出器复制所述第i+1层计算节点并分别存入所述直接内存存取器和第二数据流湖缓冲器中,运算器从所述第二数据流湖缓冲器提取第i+1层计算节点进行运算以得到第i+2层计算节点,然后第一扇出器继续复制第i+2层计算节点并存入所述直接内存存取器和第一数据流湖缓 冲器中,同时运算器从所述第一数据流湖缓冲器提取第i+2层计算节点进行运算以得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
假设数据从片外存储器到片内存储器的流速为v1,数据在加速器中的流速为v2,数据从片内存储器到片外存储器的流速为v3,在通常情况下,由于带宽的限制,v1小于v2,且v3小于v2,这将会造成某些时钟周期下,加速器中没有足够的数据去处理,造成运算器的空闲,无法达到最大的计算效率。但由于采用了本实施例的加速方法,中间数据不需要从片外存储器传输到片内存储器,也不需要从片内存储器传输到片外存储器,而直接存储在数据流湖缓冲区中,保证了运算器每时每刻都有足够的数据流入,从而保证了基于数据流架构的加速系统对计算资源的充分利用。
本申请实施例通过将计算图的第i层计算节点缓存至第一数据流湖缓冲器中等待运算,所述计算图包括n层计算节点;从所述第一数据流湖缓冲器中提取所述第i层计算节点并运算得到第i+1层计算节点;将所述第i+1层计算节点复制后分别输出至直接内存存取器和第二数据流湖缓冲器中;从所述第二数据流湖缓冲器中提取所述第i+1层计算节点并运算得到第i+2层计算节点;将所述第i+2层计算节点复制后分别输出至所述直接内存存取器和第一数据流湖缓冲器中;从所述第一数据流湖缓冲器中提取所述第i+2层计算节点并运算得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数,即通过数据流湖缓冲区中的第一数据流湖缓冲器和第二数据流湖缓冲器轮流缓存中间数据,无需导出外部或从外部调用中间数据,大大减少了中间数据的传输时间,避免了卷积神经网络在计算时需要经常将中间数据传输到片外存储器,需要使用时再传回片内存储器,从而导致加速器的计算资源利用率低和加速效果差的情况,实现了卷积神经网络计算时减少中间数据传输到片外存储器的次数以加速计算。
如图4所示,本申请另一实施例提供了一种基于卷积神经网络的加速系统,本申请实施例是在前述本申请实施例的基础上作进一步细化,该基于卷积神经网络的加速方法包括:
S210、将计算图的第i层计算节点缓存至第一数据流湖缓冲器中等待运算,所述计算图包括n层计算节点。
S220、从所述第一数据流湖缓冲器中提取所述第i层计算节点并运算得到第i+1层计算节点。
S230、将所述第i+1层计算节点复制后分别输出至直接内存存取器和第二数据流湖缓冲器中。
S240、从所述第二数据流湖缓冲器中提取所述第i+1层计算节点并运算得到第i+2层计算节点。
S250、将所述第i+2层计算节点复制后分别输出至所述直接内存存取器和第一数据流湖缓冲器中。
S260、从所述第一数据流湖缓冲器中提取所述第i+2层计算节点并运算得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
本申请实施例的步骤S210-S260与前述申请实施例的实现方法相同。
S270、当所述计算图的第i+k层计算节点的运算需要用到第i+1层计算节点时,将所述第i+1层计算节点复制两次后分别输出至所述直接内存存取器、第三数据流湖缓冲器以及第一数据流湖缓冲器或第二数据流湖缓冲器中。
S280、从所述第三数据流湖缓冲器提取第i+1层计算节点,从所述第一数据流湖缓冲器或第二数据流湖缓冲器提取第i+k层计算节点并运算以得到第i+k+1层计算节点。
例如,通过片外存储器获取计算图的第1层计算节点。当所述直接内存存取器获得一层计算节点的同时将其输出至所述片外存储器。
本实施例中,当需要计算一个计算图时,直接内存存取器将接收到第一层计算节点,该计算节点可以是CPU通过外部存储装置调用来的,然后直接内存存取器将第1层计算节点缓存至第一数据流湖缓冲器中,当开始计算时,第一数据流湖缓冲器将第1层计算节点传输至运算器,同时,运算器将第1层计算节点的结果,即第2层计算节点输出给第一扇出器,第一扇出器将第2层计算节点复制后分别传输给直接内存存取器和第二数据流湖缓冲器中缓存,而此时第一数据流湖缓冲器中的第1层计算节点仍在向运算器中传输数据,运算器也仍在进行运算,只是第一数据流湖缓冲器的传输、运算器的运算、第一扇出器的复制,以及传输到直接内存存取器和第二数据流湖缓冲器中是同时进行的,以保证运算的快速进行。当第1层计算节点运算完毕后,第一数据流湖缓冲器中没有存储数据,第二数据流湖缓冲器中缓存有第2层计算节点,直接内存存 取器也存储有第2层计算节点,此时直接内存存取器将第2层计算节点输出到外部存储,即输出至片外存储器,第二数据流湖缓冲器将第2层计算节点传输至运算器中开始运算得到第3层计算节点,同时第一扇出器将第3层计算节点复制后分别传输给直接内存存取器和第一数据流湖缓冲器中缓存,依此类推,运算器将从第一数据流湖缓冲器获取所述计算图的第i层计算节点进行计算以得到第i+1层计算节点,同时第一扇出器复制所述第i+1层计算节点并分别存入所述直接内存存取器和第二数据流湖缓冲器中,运算器从所述第二数据流湖缓冲器提取第i+1层计算节点进行运算以得到第i+2层计算节点,然后第一扇出器继续复制第i+2层计算节点并存入所述直接内存存取器和第一数据流湖缓冲器中,同时运算器从所述第一数据流湖缓冲器提取第i+2层计算节点进行运算以得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
本申请实施例通过当所述计算图的第i+k层计算节点的运算需要用到第i+1层计算节点时,将所述第i+1层计算节点复制两次后分别输出至所述直接内存存取器、第三数据流湖缓冲器以及第一数据流湖缓冲器或第二数据流湖缓冲器中;从所述第三数据流湖缓冲器提取第i+1层计算节点,从所述第一数据流湖缓冲器或第二数据流湖缓冲器提取第i+k层计算节点并运算以得到第i+k+1层计算节点,避免了卷积神经网络运算时当计算图的第i+k层计算节点的运算需要用到第i+j层计算节点需要从外部调取数据,根据卷积神经网络的需要灵活分配使用数据流湖缓冲区中的数据流湖缓冲器,进一步减少了因数据的调取而造成的计算资源浪费的情况,可以灵活处理卷积神经网络的中间数据以大大提高计算效率。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有申请实施例提供的加速方法:
将计算图的第i层计算节点缓存至第一数据流湖缓冲器中等待运算,所述计算图包括n层计算节点;
从所述第一数据流湖缓冲器中提取所述第i层计算节点并运算得到第i+1层计算节点;
将所述第i+1层计算节点复制后分别输出至直接内存存取器和第二数据流湖缓冲器中;
从所述第二数据流湖缓冲器中提取所述第i+1层计算节点并运算得到第i+2层计算节点;
将所述第i+2层计算节点复制后分别输出至所述直接内存存取器和第一数据流湖缓冲器中;
从所述第一数据流湖缓冲器中提取所述第i+2层计算节点并运算得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点,其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取直接内存存取器(RAM)、只读直接内存存取器(ROM)、可擦式可编程只读直接内存存取器(EPROM或闪存)、光纤、便携式紧凑磁盘只读直接内存存取器(CD-ROM)、光直接内存存取器件、磁直接内存存取器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机 上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的示例实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

Claims (10)

  1. 一种基于卷积神经网络的加速系统,包括:
    直接内存存取器,设置为存储计算图,所述计算图包括n层计算节点;
    数据流湖缓冲区,包括第一数据流湖缓冲器和第二数据流湖缓冲器,所述第一数据流湖缓冲器设置为缓存所述计算图;
    运算器,设置为从所述第一数据流湖缓冲器获取所述计算图的第i层计算节点进行计算以得到第i+1层计算节点;
    第一扇出器,设置为复制所述第i+1层计算节点并分别存入所述直接内存存取器和第二数据流湖缓冲器中,所述运算器从所述第二数据流湖缓冲器提取第i+1层计算节点进行运算以得到第i+2层计算节点,所述第一扇出器还设置为复制所述第i+2层计算节点并存入所述直接内存存取器和第一数据流湖缓冲器中,所述运算器从所述第一数据流湖缓冲器提取第i+2层计算节点进行运算以得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点;
    其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
  2. 根据权利要求1所述的加速系统,还包括第二扇出器,所述数据流湖缓冲区还包括第三数据流湖缓冲器;
    在所述计算图的第i+k层计算节点的运算需要用到第i+j层计算节点的情况下,所述第一扇出器将复制的所述第i+j层计算节点分别输出至所述第二扇出器和直接内存存取器中,所述第二扇出器将所述第i+j层计算节点复制后分别输出至所述第一数据流湖缓冲器或第二数据流湖缓冲器,以及所述第三数据流湖缓冲器中,所述运算器从所述第三数据流湖缓冲器提取所述第i+j层计算节点,从所述第一数据流湖缓冲器或所述第二数据流湖缓冲器提取所述第i+k层计算节点进行运算以得到第i+k+1层计算节点;
    在所述计算图的所述第i+k层计算节点的运算不需要用到所述第i+j层计算节点的情况下,所述第二扇出器将不执行复制操作而直接将所述第i+j层计算节点输出至所述第一数据流湖缓冲器或所述第二数据流湖缓冲器;
    其中,k和j分别为正整数,i+k+1≤n,i+j≤n。
  3. 根据权利要求1所述的加速系统,还包括片外存储器,所述片外存储器设置为将第1层计算节点发送给所述直接内存存取器。
  4. 根据权利要求4所述的加速系统,其中,所述片外存储器还设置为接收所述直接内存存取器发送的n-1层计算节点。
  5. 根据权利要求2所述的加速系统,其中,所述数据流湖缓冲区还包括第一译码器、第二译码器、第一接口、第二接口、第三接口、第四接口和第五接口,所述直接内存存取器通过所述第一接口连接至所述第一译码器,所述第二扇出器通过所述第二接口和第三接口连接至所述第一译码器,所述第一译码器设置为将接收的数据分别缓存至所述第一数据流湖缓冲器、所述第二数据流湖缓冲器或所述第三数据流湖缓冲器中,所述第一数据流湖缓冲器和所述第二数据流湖缓冲器中的数据通过所述第二译码器从所述第四接口输出至所述运算器,所述第三数据流湖缓冲器中的数据通过所述第二译码器从所述第五接口输出至所述运算器,所述运算器通过所述第一扇出器分别连接至所述直接内存存取器和第二扇出器。
  6. 一种基于卷积神经网络的加速方法,包括:
    将计算图的第i层计算节点缓存至第一数据流湖缓冲器中等待运算,所述计算图包括n层计算节点;
    从所述第一数据流湖缓冲器中提取所述第i层计算节点并运算得到第i+1层计算节点;
    将所述第i+1层计算节点复制后分别输出至直接内存存取器和第二数据流湖缓冲器中;
    从所述第二数据流湖缓冲器中提取所述第i+1层计算节点并运算得到第i+2层计算节点;
    将所述第i+2层计算节点复制后分别输出至所述直接内存存取器和第一数据流湖缓冲器中;
    从所述第一数据流湖缓冲器中提取所述第i+2层计算节点并运算得到第i+3层计算节点,重复上述步骤直到得到第n层计算节点;
    其中,1≤i≤n-3,n≥4,i为正整数,n为正整数。
  7. 根据权利要求6所述的加速方法,还包括:
    在所述计算图的第i+k层计算节点的运算需要用到第i+1层计算节点的情况下,将所述第i+1层计算节点复制两次后分别输出至所述直接内存存取器、第三数据流湖缓冲器以及第一数据流湖缓冲器或第二数据流湖缓冲器中;
    从所述第三数据流湖缓冲器提取第i+1层计算节点,从所述第一数据流湖缓冲器或所述第二数据流湖缓冲器提取第i+k层计算节点并运算以得到第i+k+1层计算节点;
    其中,k和j分别为正整数,i+k+1≤n,i+j≤n。
  8. 根据权利要求6所述的加速方法,还包括,通过片外存储器获取所述计算图的第1层计算节点。
  9. 根据权利要求8所述的加速方法,其中,在所述直接内存存取器获得一层计算节点的同时将所述获得的一层计算节点输出至所述片外存储器。
  10. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求6-9中任一所述的加速方法。
PCT/CN2021/100236 2020-06-22 2021-06-16 一种基于卷积神经网络的加速系统、方法及存储介质 WO2021259098A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/145,028 US20230128529A1 (en) 2020-06-22 2022-12-22 Acceleration system, method and storage medium based on convolutional neural network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010575498.X 2020-06-22
CN202010575498.XA CN111752879B (zh) 2020-06-22 2020-06-22 一种基于卷积神经网络的加速系统、方法及存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/145,028 Continuation US20230128529A1 (en) 2020-06-22 2022-12-22 Acceleration system, method and storage medium based on convolutional neural network

Publications (1)

Publication Number Publication Date
WO2021259098A1 true WO2021259098A1 (zh) 2021-12-30

Family

ID=72675670

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/100236 WO2021259098A1 (zh) 2020-06-22 2021-06-16 一种基于卷积神经网络的加速系统、方法及存储介质

Country Status (3)

Country Link
US (1) US20230128529A1 (zh)
CN (1) CN111752879B (zh)
WO (1) WO2021259098A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752879B (zh) * 2020-06-22 2022-02-22 深圳鲲云信息科技有限公司 一种基于卷积神经网络的加速系统、方法及存储介质
US11392740B2 (en) * 2020-12-18 2022-07-19 SambaNova Systems, Inc. Dataflow function offload to reconfigurable processors
CN112734011B (zh) * 2021-01-04 2021-12-28 北京大学 一种基于增量综合的深度神经网络加速器协同设计方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284817A (zh) * 2018-08-31 2019-01-29 中国科学院上海高等研究院 深度可分离卷积神经网络处理架构/方法/系统及介质
CN109542513A (zh) * 2018-11-21 2019-03-29 济南浪潮高新科技投资发展有限公司 一种卷积神经网络指令数据存储系统及方法
CN111160545A (zh) * 2019-12-31 2020-05-15 北京三快在线科技有限公司 人工神经网络处理系统及其数据处理方法
US20200167098A1 (en) * 2019-08-14 2020-05-28 Intel Corporation Data processing near data storage
CN111752879A (zh) * 2020-06-22 2020-10-09 深圳鲲云信息科技有限公司 一种基于卷积神经网络的加速系统、方法及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI630544B (zh) * 2017-02-10 2018-07-21 耐能股份有限公司 卷積神經網路的運算裝置及方法
CN107066239A (zh) * 2017-03-01 2017-08-18 智擎信息系统(上海)有限公司 一种实现卷积神经网络前向计算的硬件结构
CN107392309A (zh) * 2017-09-11 2017-11-24 东南大学—无锡集成电路技术研究所 一种基于fpga的通用定点数神经网络卷积加速器硬件结构
CN107704923A (zh) * 2017-10-19 2018-02-16 珠海格力电器股份有限公司 卷积神经网络运算电路
CN108280514B (zh) * 2018-01-05 2020-10-16 中国科学技术大学 基于fpga的稀疏神经网络加速系统和设计方法
CN109446996B (zh) * 2018-10-31 2021-01-22 智慧眼科技股份有限公司 基于fpga的人脸识别数据处理装置及处理方法
CN109491938A (zh) * 2018-11-27 2019-03-19 济南浪潮高新科技投资发展有限公司 一种面向卷积神经网络加速的多通道dma控制器和卷积神经网络加速方法
CN109740732B (zh) * 2018-12-27 2021-05-11 深圳云天励飞技术有限公司 神经网络处理器、卷积神经网络数据复用方法及相关设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284817A (zh) * 2018-08-31 2019-01-29 中国科学院上海高等研究院 深度可分离卷积神经网络处理架构/方法/系统及介质
CN109542513A (zh) * 2018-11-21 2019-03-29 济南浪潮高新科技投资发展有限公司 一种卷积神经网络指令数据存储系统及方法
US20200167098A1 (en) * 2019-08-14 2020-05-28 Intel Corporation Data processing near data storage
CN111160545A (zh) * 2019-12-31 2020-05-15 北京三快在线科技有限公司 人工神经网络处理系统及其数据处理方法
CN111752879A (zh) * 2020-06-22 2020-10-09 深圳鲲云信息科技有限公司 一种基于卷积神经网络的加速系统、方法及存储介质

Also Published As

Publication number Publication date
CN111752879A (zh) 2020-10-09
CN111752879B (zh) 2022-02-22
US20230128529A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
WO2021259098A1 (zh) 一种基于卷积神经网络的加速系统、方法及存储介质
US20210089871A1 (en) Processing system and method for binary weight convolutional neural network
US11010313B2 (en) Method, apparatus, and system for an architecture for machine learning acceleration
CN111105023B (zh) 数据流重构方法及可重构数据流处理器
WO2021136512A1 (zh) 基于深度学习节点计算的调度方法、设备及存储介质
WO2021259041A1 (zh) Ai计算图的排序方法、装置、设备及存储介质
TWI775210B (zh) 用於卷積運算的資料劃分方法及處理器
US20200326949A1 (en) Technology to learn and offload common patterns of memory access and computation
CN107678781B (zh) 处理器以及用于在处理器上执行指令的方法
US10990525B2 (en) Caching data in artificial neural network computations
Liu et al. A cloud server oriented FPGA accelerator for LSTM recurrent neural network
US11704562B1 (en) Architecture for virtual instructions
WO2021244045A1 (zh) 一种神经网络的数据处理方法及装置
US20220044101A1 (en) Collaborative sensor data processing by deep learning accelerators with integrated random access memory
CN113869494A (zh) 基于高层次综合的神经网络卷积fpga嵌入式硬件加速器
Bai et al. An OpenCL-based FPGA accelerator with the Winograd’s minimal filtering algorithm for convolution neuron networks
KR20210081663A (ko) 인터커넥트 장치, 인터커넥트 장치의 동작 방법 및 인터커넥트 장치를 포함하는 AI(Artificial Intelligence) 가속기 시스템
WO2020121030A1 (en) Caching data in artificial neural network computations
US11922306B2 (en) Tensor controller architecture
WO2023115529A1 (zh) 芯片内的数据处理方法及芯片
WO2020073874A1 (zh) 机器学习运算的分配系统及方法
CN116702852B (zh) 基于多阶段事件驱动的动态重构神经网络加速电路及系统
US11842169B1 (en) Systolic multiply delayed accumulate processor architecture
US20210247981A1 (en) Systems and methods for optimizing nested loop instructions in pipeline processing stages within a machine perception and dense algorithm integrated circuit
Zhang et al. Research of Heterogeneous Acceleration Optimization of Convolutional Neural Network Algorithm for Unmanned Vehicle Based on FPGA

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21830155

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21830155

Country of ref document: EP

Kind code of ref document: A1