CN108470009B - 处理电路及其神经网络运算方法 - Google Patents
处理电路及其神经网络运算方法 Download PDFInfo
- Publication number
- CN108470009B CN108470009B CN201810223618.2A CN201810223618A CN108470009B CN 108470009 B CN108470009 B CN 108470009B CN 201810223618 A CN201810223618 A CN 201810223618A CN 108470009 B CN108470009 B CN 108470009B
- Authority
- CN
- China
- Prior art keywords
- memories
- memory
- neural network
- configuration module
- vector
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供一种处理电路及其神经网络运算方法。处理电路包括多个处理元件、多个附属存储器、***存储器、及配置模块。这些处理元件执行运算处理。各附属存储器对应一个处理元件,并且各附属存储器耦接另两个附属存储器。***存储器耦接所有附属存储器,并且供那些处理元件存取。而配置模块耦接那些处理元件及其对应的附属存储器、以及***存储器以形成芯片上网络架构,配置模块更依据神经网络运算静态配置那些处理元件的运算作业、以及芯片上网络架构中的数据传输。藉此,可针对神经网络运算进行优化,提供较高的运算效能。
Description
技术领域
本发明是有关于一种处理电路架构,且特别是有关于一种芯片上网络 (network-on-chip,NOC)架构的处理电路及其神经网络(Neural Network,NN) 运算方法。
背景技术
在多核心中央处理单元(Central Processing Unit,CPU)中的各处理器核心、及其高速缓存(Cache)相互连接(interconnect可形成通用的芯片上网络(Network-on-Chip,NOC)架构)(例如,戒指型总线(ring bus)等),而此架构通常能广泛应付多种功能,从而实现并行运算以提升处理效能。
另一方面,神经网络是一种模仿生物神经网络的结构与功能的数学模型,其可对函式进行评估或近似运算,并经常应用于人工智能领域。一般而言,执行神经网络运算需要抓取大量数据,使存储器之间需要反复执行多次传输作业,以进行大量数据交换,因而花费相当多的处理时间。
然而,通用NoC架构为了能广泛支持各种应用,其数据交换是基于包 (package)的,使包能在芯片上网络架构中路由到目的地,且采用动态路由配置以适用于各种不同应用,而神经网络运算需要存储器之间反复执行大量及多次的数据传输,采用通用Noc架构来映射神经网络算法的运算是低效的。此外,在现有的某些其它NoC架构中,***存储器所接入的处理元件 (Processing Element,PE)是固定的,且输出到***存储器的处理元件也是固定的,使得流水线(pipeline)的深度固定,因此其并不适用于运算量较小的台式计算机、笔记本电脑等终端设备的神经网络运算。
发明内容
有鉴于此,本发明提供一种处理电路及其神经网络方法,事先静态配置对NoC架构上的传输及处理作业,并以专用NoC拓朴结构来针对神经网络运算优化。
本发明的处理电路包括数个处理元件、数个附属存储器、***存储器、及配置模块。这些处理元件执行运算处理。各附属存储器对应那些处理元件中的一者,各附属存储器并连接另两个附属存储器。***存储器耦接所有附属存储器,并且可供那些处理元件存取。而配置模块耦接那些处理元件及其对应附属存储器、以及***存储器以形成NoC架构,配置模块更依据神经网络运算静态配置那些处理元件的运算作业、以及NoC架构中的数据传输。
另一方面,本发明的神经网络运算方法,其适用于处理电路,而此神经网络运算方法包括下列步骤。提供用于执行运算处理的数个处理元件。提供数个附属存储器,各附属存储器对应一个处理元件,各附属存储器并耦接另两个附属存储器。提供***存储器,此***存储器耦接所有的附属存储器,并供那些处理元件存取。提供配置模块,此配置模块耦接那些处理元件及其对应的附属存储器、以及***存储器以形成NoC架构。通过此配置模块依据神经网络运算静态配置那些处理元件的运算作业、以及此NoC架构中的数据传输。
基于上述,本发明实施例是事先基于特定神经网络运算而将作业任务静态划分好,并通过对NoC架构进行作业任务(例如,运算作业、数据传输等) 配置,能特地对神经网络运算进行优化,从而提升处理效能且实现高带宽传输。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1A及1B是依据本发明一实施例的处理电路的示意图。
图2是依据本发明一实施例的处理元件及附属存储器构成的Noc架构中一运算节点的示意图。
图3是依据本发明一实施例的特征地图映射-分割计算的数据传递示意图。
图4A~4D是一范例说明单端口向量存储器实现分割计算。
图5是一范例说明双端口向量存储器实现分割计算。
图6A~6C是一范例说明单端口向量存储器及可连接NoC架构的处理元件实现分割计算。
图7是依据本发明一实施例的通道映射-数据流水(Flow)计算的数据传递示意图。
图8A及8B是一范例说明通道映射的配置。
图9A~9H是一范例说明单端口向量存储器实现数据流水计算。
图10是一范例说明双端口向量存储器实现数据流水计算。
图11A~11B是一范例说明单端口向量存储器及可连接NoC架构的处理元件实现数据流水计算。
具体实施方式
图1A及1B是依据本发明一实施例的处理电路1的示意图。请参照图1A 及1B,处理电路1可以是中央处理单元(CPU)、神经网络处理单元(Network Processing Unit,NPU)、片上***(System on Chip,SoC)、集成电路 (Integrated Circuit,IC)等电路。于本实施例中,处理电路1是NoC架构并包括但不仅限于数个处理元件(PE)110、数个附属存储器115、***存储器 120、及配置模块130。
处理元件110执行运算处理。各附属存储器115对应一个处理元件110,各附属存储器115可设置于对应的处理元件110内部或者耦接于对应的处理元件110,各附属存储器115耦接另外两个附属存储器115。在一实施例中,各处理元件110及其对应的附属存储器115构成NoC网络中的一运算节点 (node)100。***存储器120耦接所有附属存储器115,并且可由所有处理元件110存取,其也可被看作NoC网络的节点中的一者。配置模块130耦接所有处理元件110及其对应的附属存储器115以及***存储器120以形成一个芯片上网络(Network-on-Chip,NoC)架构,配置模块130更依据特定的神经网络运算静态配置处理元件110的运算作业、以及此NoC架构中的数据传输。在一实施例中,此NoC架构中的数据传输包括各个附属存储器115之间以直接存储器存取(Direct Memory Access,DMA)形式的数据传输、及一个附属存储器115与***存储器120之间的DMA传输。在一实施例中,此NoC架构中的数据传输更包括一个处理元件110与***存储器115之间的数据传输、以及一个处理元件110与相邻两个处理元件110对应的附属存储器115之间的数据传输。值得注意的是,各个存储器(包括数个附属存储器115及***存储器120)之间的数据传输才可能采用DMA形式进行,且数据传输是由配置模块130配置和控制,后面会详述。
需说明是,图1A及1B中所示PE 110及附属存储器115的数量可依据实际需求而调整,本发明不加以限制。
请参照图1A及图2,图2示出一个PE 110与其对应的附属存储器115 所构成的Noc架构中一运算节点100的示意图。于本实施例中,为了更加适用于神经网络运算,PE 110可以是人工智能(Artificial Intelligence,AI) 加速器的专用集成电路(Application-Specific Integrated Circuit, ASIC)(例如,张量处理器(tensor processor)、神经网络处理器(Neural Network Processor,NNP)、神经引擎(Neural Engine)等)。
在一实施例中,各附属存储器115包括可以指令存储器111、交错 (Crossbar)接口112、NoC接口113、及三个向量存储器(Vector Memory, VM)116,117,118。指令存储器111可以是静态随机存取储存器(Static Random Access Memory,SRAM),耦接所对应的处理元件110,并用以记录用于控制处理元件110的指令,其中配置模块130将基于神经网络运算的指令储存于指令存储器110。交错接口112包括数个多路复用器,以控制处理元件110、指令存储器111及那些向量存储器116,117,118的数据输入及输出。NoC接口113连接交错接口112、配置模块130及另两个附属存储器115的NoC接口113。
向量存储器116,117,118可以是单端口或双端口SRAM,双端口配置代表向量存储器116,117,118具备两个读写端口,其中一个端口供所属PE 110读或者写,同时另一端口与***存储器120或另一处理元件110所对应的附属存储器115进行DMA传输;单端口配置则代表向量存储器116,117,118只具备一个端口,此端口同时间只能供DMA传输或供对应PE 110读写。而向量存储器116储存神经网络(例如,卷积神经网络(Convolutional NeuralNetwork, CNN)、循环神经网络(Recurrent Neural Network,RNN))运算相关的权重(weight);向量存储器117供所属的PE 110读或者写;而向量存储器118则供芯片上网络架构中的数据传输(例如,传送数据至另一附属存储器111的向量存储器116,117或118,或者与***存储器120进行数据传输)。需说明的是,各个处理单元110可藉由交错接口112选择三个向量存储器116,117及 118何者用于储存权重、何者供所对应的PE 110读或者写、及何者供与数据芯片上网络架构中的其它运算节点100(包括其它处理单元110及其附属存储器115、***存储器120)进行数据传输,从而决定向量存储器116,117,118 是用于储存权重、供所属的PE 110读或写、或供数据传输,即向量存储器 116,117,118的功能可依据作业任务需求而改变。
***存储器120耦接配置模块130及所有附属存储器115,并可以是动态随机存取存储器(Dynamic Random Access Memory,DRAM)、或SRAM(通常是DRAM),且可作为处理单元110的末级高速缓存(Last Level Cache,LLC) 或其他层快取。于本实施例中,***存储器120可由配置模块130配置与所有附属存储器115进行数据传输,亦可供那些PE 110存取(交错接口112控制PE 110经由NoC接口113存取)。
在一实施例中,配置模块130包括直接存储器存取(Direct Memory Access,DMA)引擎131及微控制单元(Micro Control Unit,MCU)133。DMA 引擎131可以是独立的芯片、处理器、集成电路或内嵌于MCU 133,并耦接那些附属存储器115及***存储器120,且根据MCU133的配置而处理那些附属存储器115及***存储器120之间或是每一附属存储器115与其他附属存储器115之间的DMA数据传输。于本实施例中,DMA引擎131可处理一、二及/或三维地址的数据搬移。而MCU 133耦接直接存储器存取引擎131及那些PE 110,并可以是支持精简指令集运算(Reduced Instruction Set Computing,RISC)、或是复杂指令集运算(Complex Instruction Set Computing,CISC)等各类型的中央处理器、微处理器、特殊集成电路、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等可编程单元。
基于上述硬件配置及连接关系所形成的NoC架构包括:图1A中各附属存储器115相连形成的、图1A中实线所示的数据流水线网络(data pipeline network)、配置模块130及***存储器120与所有附属存储器115相连形成的、图1A中虚线所示的数据广播网络(databroadcast network)、以及图 1B所示配置模块130与所有PE 110相连形成的控制网络(control network)。而MCU 133将依据神经网络运算静态配置那些PE 110的运算作业、以及NoC 架构中各元件及模块的数据传输,以下将详细说明其运作。
在神经网络架构的卷积层(convolutional layer)中,将给定卷积运算中的“滑动函数”(称为卷积核(kernel)或是滤波(filter)),而卷积核的值即为权重。接着,卷积核会在原始的输入特征地图(feature maps)或输入数据 (input data)或输入激励(inputactivations)中按照步长(stride)的设定依序滑动并与特征地图对应区域进行卷积或点积(dot product)运算,直到扫描完特征地图中的所有区域,从而产生新的特征地图(feature map)。也就是说,特征地图会依据卷积核的大小分割成数个区块,并分别将各区块与卷积核运算后即能得出输出的特征地图。基于此概念,本发明基于前述处理电路1的NoC架构提出了特征地图映射-分割计算模式。
请参照图3,图3是依据本发明一实施例的特征地图映射-分割计算的数据传递示意图,本实施例以四个运算节点100为例只是为了方便解说,应用者可视需求而调整其数量。配置模块130包括MCU 133及DMA引擎131,其中MCU 133可控制DMA引擎131处理***存储器120与各个附属存储器115 之间的数据传输,且此数据传输是以DMA传输方式进行。假设神经网络运算相关的输入特征地图为m×n矩阵且卷积核为1×n矩阵,m、n为正整数,则MCU133可将特征地图依据列而区分成四个区域(或称四个子特征地图数据)。四个PE 110与对应的附属存储器115将形成四个运算节点100,而MCU 133依据所述神经网络运算划分成多个作业任务,并指示这些运算节点100分别对那些区域进行并行处理。而这些作业任务的划分是事先划分好并储存在MCU 133中,并基于整体同步并行(Bulk Synchronous Parallel,BSP)模型编程到MCU 133内部。
具体而言,图4A~4D是一范例说明单端口向量存储器116~118实现分割计算。请先参照图3,MCU 133依据作业任务控制DMA引擎131自***存储器 120广播数据到那些附属存储器115。MCU 133配置NoC架构为广播模式并输出掩模(mask)4’b1000,则MCU 133会触发DMA引擎131自***存储器120 中取得第一个子特征地图数据并传送至一个PE 110(如图4A~图4D的PE0)的附属存储器115。MCU 133配置NoC架构为广播模式并输出掩模4’b0100,则MCU 133会触发DMA引擎131自***存储器120中取得第二个子特征地图数据并传送至另一个PE 110(如图4A~图4D的PE1)的附属存储器115。MCU 133 配置NoC架构为广播模式并输出掩模4’b0010,则MCU 133会触发DMA引擎 131自***存储器120中取得第三个子特征地图数据并传送至一个PE 110(如图4A~图4D的PE2)的附属存储器115。MCU 133配置NoC架构为广播模式并输出掩模4’b0001,则MCU 133会触发DMA引擎131自***存储器120中取得第四个子特征地图数据并传送至一个PE 110(如图4A~图4D的PE3)的附属存储器115。前述自***存储器120广播数据到附属存储器115的过程如图4A 所示,数据自***存储器120以DMA方式传输至PE0~3的各附属存储器115 的向量存储器117(VM1)中。接着,MCU 133配置NoC架构为广播模式并输出掩模4’b1111,则MCU 133会触发DMA引擎131自***存储器120中取得权重并传送至所有PE 110(如图4A的PE0~3)的附属存储器115(图4B所示,权重以DMA方式传送至PE0~3的附属存储器115的向量存储器116(VM0)中)。待前述DMA引擎131的传输结束,MCU 133会指示四个PE 110(如图4A~图4D 的PE0~3)开始运算,即各PE 110(PE0~3)对其所属向量存储器116(VM0)所取得的权重与自向量存储器117(VM1)所取得的子特征地图数据进行执行基于神经网络运算的运算处理(例如,卷积运算),各PE 110(PE0~3)再将运算结果记录于其所属向量存储器118(VM2)中(如图4C所示)。MCU 133即可控制DMA 引擎131自各附属存储器115的向量存储器118(VM2)回收运算结果到***存储器120(如图4D所示),值得注意的是,运算结果回收时的数据传输也是以 DMA方式进行的。
需说明的是,实施例中输入特征地图及卷积核的维度和大小仅是用于范例说明,并非用以局限本发明,应用者可视需求而自行调整。而前述针对各 PE 110(PE0~3)的指令是MCU 133控制DMA引擎131将基于神经网络运算的指令储存于对应指令存储器111,且在搬移数据之前或之后,MCU 133会将各指令存储器111所记录的指令通过DMA引擎131传送到各PE 110(PE0~3),使 PE 110依据对应指令而对两个向量存储器116(VM0)及向量存储器117(VM1) 所记录权重及数据执行基于神经网络运算的运算处理并输出运算结果至向量存储器118(VM2),再由向量存储器118(VM2)以DMA方式传输至***存储器 120或直接输出至***存储器120。需说明的是,各PE 110(PE0~3)的指令存储器111可能相同也可能不同,而其数据搬移的方式可参照前述图4A~4D中特征地图数据与权重的搬移流程。
此外,当MCU 133一次配置的所有作业任务(作业任务例如为PE 110运算、DMA引擎131搬移数据等)全部执行结束,MCU 133才会对NoC架构进行下一轮的作业任务配置。无论是PE 110或是DMA引擎131,每次作业任务执行结束后都会通知MCU 133,其通知的方式可能是:对MCU 133发送中断 (interrupt)讯号;MCU 133设有定时器,并在定时器到期后,MCU133会轮询各PE 110和DMA引擎131的状态缓存器(register)是否为完成状态。MCU 133收到本轮作业任务中的PE 110和DMA引擎131或是读取到所有PE 110 和DMA引擎131的状态暂存器都是完成状态,即会配置下一轮的作业任务。
图5是一范例说明双端口向量存储器116~118实现分割计算。请参照图 5,假设各向量存储器116~118都是双端口SRAM,使运算及搬运作业任务可同时进行,且向量存储器116(VM0)已储存有权重(权重的DMA传输与图4B相同)。而由于向量存储器116~118具有双端口,可同时收发数据,因此同时间 (或一频率周期)向量存储器117(VM1)可以DMA方式从***存储器120中取得子特征地图数据的同时供PE 110(PE0~3)读取前一轮的已存储的子特征地图数据,而向量存储器118(VM2)可接收PE 110(PE0~3)的运算结果的同时供***存储器120回收前一轮的运算结果。此外,PE 110(PE0~3)可同时进行运算作业。
而图6A~6C是一范例说明单端口向量存储器116~118及可连接NoC架构的PE 110实现分割计算。于本范例中,交错接口112可控制PE 110经由NoC 接口113直接对***存储器120进行写操作,假设向量存储器116(VM0)已储存有权重(权重的DMA传输与图4B相同)。请先参照图6A,MCU 133通过DMA 引擎131将不同子特征地图数据分别搬移到各向量存储器117(VM1)。接着, PE 110(PE0~3)对向量存储器117(VM1)的子特征地图数据与向量存储器116(VM0)的权重进行运算,而由于本实施例中,PE 110可直接对***存储器 120进行写操作,因此PE 110直接将运算结果输出到***存储器120,同时向量存储器118(VM2)则可通过DMA引擎131而自***存储器120取得下一轮的子特征地图资料(如图6B所示)。PE 110(PE0~3)对向量存储器118(VM2)的子特征地图数据与向量存储器116(VM0)的权重进行运算,PE110直接将运算结果输出到***存储器120,同时向量存储器117(VM1)则可通过DMA引擎131而自***存储器120取得再下一轮的子特征地图资料(如图6C所示)。接着依此类推,图6B及6C所示的作业任务将反复切换进行直到完成MCU133静态配置的本轮作业任务对应的所有计算。
另一方面,在神经网络架构中会有数个软件层(例如,前述卷积层、激励(activation)层、池化(Pooling)层、全连接(Fully connected)层等),经各软件层数据运算后将运算结果输入至下一个软件层。基于此概念,本发明基于前述处理电路1的NoC架构提出了通道映射-数据流水计算模式。
请参照图7是依据本发明一实施例的通道映射-数据流水计算的数据传递示意图,本实施例以四个运算节点100为例只是为了方便解说,应用者可视需求而调整其数量。配置模块130包括MCU 133及DMA引擎131,其中MCU 133可控制DMA引擎131处理***存储器120与附属存储器115、及相邻两个运算节点100的附属存储器115之间的数据传输,此数据传输亦是以DMA传输方式进行。而四个PE 110与连接的附属存储器115形成四个运算节点100,而MCU 133依据神经网络运算对那些运算节点100建立阶段顺序,并指示各运算节点100依据此阶段顺序将数据传送至另一运算节点100。也就是说,各运算节点100对应到一个软件层,而这些运算节点100通过NoC接口113 连接成一条流水线(pipeline),且各运算节点100中的PE 110是以流水线的方式完成神经网络运算中的各个软件层的运算。同样地,各运算节点100的作业任务的划分是事先划分好并储存在MCU 133中。
具体而言,MCU 133配置广播网络且输出掩模4’b1000,使DMA引擎131 自***存储器120中取得数据并传送至一个PE 110的附属存储器115(图7 上方的附属存储器115)。MCU133配置回收网络且输出掩模4’b0001,使DMA 引擎131自一个PE 110的附属存储器115(图7左方的附属存储器115)回收数据到***存储器120。MCU 133配置各PE 110的附属存储器115为整体(bulk) 流水线网络(即,图7上方、右方与下方附属存储器115相连形成的网络)。
图8A及8B是一范例说明通道映射的配置。请先同时参照图7与8A,假设权重已储存在图8A所示位置(权重的DMA传输与图4B相同),在此轮运算的作业任务中,PE 110(PE0)(对应于图7上方附属存储器115)将对其向量存储器116,118(VM0,VM2)所记录的数值计算所得结果(例如神经网络运算第一层的运算结果)经由前述配置的流水线网络直接写入PE 110(PE1)(对应于图7右方附属存储器115)的向量存储器116(VM0),PE 110(PE1)将对其向量存储器117,118(VM1,VM2)所记录的数值计算所得结果(例如神经网络运算第二层的运算结果)经由此流水线网络直接写入PE 110(PE2)(对应于图7下方附属存储器115)的向量存储器118(VM2),PE 110(PE2)将对其向量存储器 116,117(VM0,VM1)所记录的数值计算所得结果(例如神经网络运算第三层的运算结果)经由此流水线网络直接写入PE 110(PE3)(对应于图7左方附属存储器115)的向量存储器116(VM0),而PE 110(PE3)将对其向量存储器117,118(VM1,VM2)所记录的数值计算所得结果(例如神经网络运算第四层的运算结果)经由前述配置的回收网络直接写入***存储器120。值得注意的是,前述多层神经网络的运算是以流水线进行的,即四个运算节点100以流水线方式同时运算,大大提高了神经网络运算的效率。
当各PE 110(PE0~PE3)完成当轮运算的作业任务,MCU 133会重新配置 NoC网络,以切换其他向量存储器116~118作为输入端。请参照图8B为图8A 下一轮的作业任务,假设权重已储存在图8B所示位置,在此轮运算的作业任务中,PE 110(PE0)将对其向量存储器116,117(VM0,VM1)所记录的数值计算所得结果(例如神经网络运算第一层的运算结果)经由前述配置的流水线网络直接写入PE 110(PE1)的向量存储器118(VM2),PE 110(PE1)将对其向量存储器116,117(VM0(前一轮运算是由PE0写入数据),VM1)所记录的数值计算所得结果(例如神经网络运算第二层的运算结果)经由此流水线网络直接写入PE 110(PE2)的向量存储器116(VM0),PE 110(PE2)将对其向量存储器 117,118(VM1,VM2(前一轮运算是由PE1写入数据))所记录的数值计算所得结果(例如神经网络运算第三层的运算结果)经由此流水线网络直接写入PE 110(PE3)的向量存储器118(VM2),而PE 110(PE3)将对其向量存储器116,117(VM0(前一轮运算是由PE2写入数据),VM1)所记录的数值计算所得结果(例如神经网络运算第四层的运算结果)经由前述配置的回收网络直接写入***存储器120。配置模块130中的MCU 133会持续配置Noc架构中所有附属存储器115中的向量存储器116~118的联机,直到所有作业任务都完成。
值得注意的是,图8A及8B所示的情形是假设PE110(PE0~3)各自的交错接口112可控制各PE 110经由各自NoC接口113对其它PE 110的附属存储器115及***存储器120进行写操作的情形(后面图11还会详述),但通道映射的配置并不限于此,每个PE 110的运算结果还可以藉由其向量存储器 117或118(VM1或VM2)输出至下一个PE110或***存储器120(后面图9和图10还会详述)。
图9A~9H是一范例说明单端口向量存储器实现数据流水计算。请先参照图9A,配置模块130中的MCU 133通过DMA引擎131自***存储器120中取得权重并以DMA方式广播至所有PE 110(PE0~3)的向量存储器116(VM0);MCU 133也通过DMA引擎131将***存储器120记录的数据以DMA方式传送至第一个运算节点100中PE 110(PE0)的向量存储器117(VM1,在其它实施例中也可传送至VM2)。接着,PE 110(PE0)对其向量存储器116,117(VM0,VM1)记录的权重及数据进行运算,并将运算结果记录在向量存储器118(VM2)中(如图9B所示)。MCU133通过DMA引擎131将运算结果自其向量存储器118(VM2) 以DMA方式传输至PE 110(PE1)的向量存储器118(VM2,在其它实施例中也可传送至VM1)且将***存储器120记录的数据以DMA方式传送至第一个运算节点100中PE 110(PE0)的向量存储器117(VM1)(如图9C所示)。下一轮作业任务中,PE 110(PE0)对其向量存储器116,117(VM0,VM1)记录的数据及权重进行运算而PE 110(PE1)可对其向量存储器116,118(VM0,VM2)记录的权重及数据进行运算,并分别输出运算结果到各自用于数据传输的向量存储器118 和117(VM2和VM1)(如图9D所示)。下一轮作业任务中,MCU 133通过DMA 引擎131将***存储器120的数据以DMA方式搬运到PE 110(PE0)的向量存储器117(VM1),同时将PE 110(PE0)的向量存储器118(VM2)的运算结果以DMA 方式搬运到PE 110(PE1)的向量存储器118(VM2),同时将PE 110(PE1)的向量存储器117(VM1)的运算结果以DMA方式搬运到PE 110(PE2)的向量存储器 118(VM2,在其它实施例中也可传送至VM1)(如图9E所示)。下一轮作业任务中,PE 110(PE0)对其向量存储器116,117(VM0,VM1)记录的权重及数据进行运算、PE 110(PE1)可对其向量存储器116,118(VM0,VM2)记录的权重及数据进行运算、且PE 110(PE2)可对其向量存储器116,118(VM0,VM2)记录的权重及数据进行运算,且各PE110(PE0,PE1及PE2)分别输出运算结果到各自用于数据传输的向量存储器118,117,117(VM2,VM1,VM1)(如图9F所示)。
依此类推,接续的某一轮运算的作业任务中,PE 110(PE0)对其向量存储器116,117(VM0,VM1)记录的权重及数据进行运算、PE 110(PE1)可对其向量存储器116,118(VM0,VM2)记录的权重及数据进行运算、PE 110(PE2)可对其向量存储器116,118(VM0,VM2)记录的权重及数据进行运算、且PE 110(PE3)对其向量存储器116,117(VM0,VM1)记录的权重及数据进行运算,且各PE110(PE0,PE1,PE2及PE3)分别输出运算结果到各自用于数据传输的向量存储器118,117,117,118(VM2,VM1,VM1,VM2)(如图9G所示)。而接续的某一轮搬运的作业任务中,MCU 133通过DMA引擎131将***存储器 120的数据以DMA方式搬运到PE 110(PE0)的向量存储器117(VM1),同时将 PE 110(PE0)的向量存储器118(VM2)的运算结果以DMA方式搬运到PE 110(PE1) 的向量存储器118(VM2),同时将PE 110(PE1)的向量存储器117(VM1)的运算结果以DMA方式搬运到PE 110(PE2)的向量存储器118(VM2),同时将PE 110(PE2)的向量存储器117(VM1)的运算结果以DMA方式搬运到PE 110(PE3) 的向量存储器117(VM1),同时将PE 110(PE3)的向量存储器118(VM2)的运算结果以DMA方式搬运到***存储器120(如图9H所示)。前述图9G与9H所示的两种状态将会反复切换执行,直到所有神经网络运算的作业任务都完成。也就是说,在图9G所示的状态中,每个PE110(PE0,PE1,PE2及PE3)同时以流水线作业的方式实现多层神经网络运算的并行运算;然后在图9H所示的状态中,以DMA方式同时进行Noc网络中各个运算节点100之间的数据传输。
图10是一范例说明双端口向量存储器116~118实现数据流水计算。请参照图10,假设各向量存储器116~118都是双端口SRAM,且向量存储器116(VM0) 已储存有权重。而由于向量存储器116~118有双端口可供同时收发数据,因此同时间(或一轮作业任务期间)PE110(PE0)的向量存储器117(VM1)以DMA方式从***存储器120取得数据、同时供PE 110(PE0)读取前一轮的数据以进行运算;PE110(PE1)的向量存储器118(VM2)以DMA方式从PE110(PE0)的向量存储器118(VM2)取得数据、同时供PE 110(PE1)读取前一轮的数据以进行运算,而PE110(PE1)的向量存储器117(VM1)接收PE110(PE1)输出的运算结果、同时输出前一轮的运算结果到另一个PE110(PE2)的附属存储器115的向量存储器118(VM2);PE110(PE2)的向量存储器118(VM2)以DMA方式从PE110(PE1) 的向量存储器117(VM1)取得数据、同时供PE 110(PE2)读取前一轮的数据以进行运算,而PE110(PE2)的向量存储器117(VM1)接收PE110(PE2)输出的运算结果、同时输出前一轮的运算结果到另一个PE110(PE3)的附属存储器115 的向量存储器117(VM1);PE110(PE3)的向量存储器117(VM1)以DMA方式从PE110(PE2)的向量存储器117(VM1)取得数据、同时供PE 110(PE3)读取前一轮的数据以进行运算,而PE110(PE3)的向量存储器118(VM2)接收PE110(PE3) 输出的运算结果、同时输出前一轮的运算结果到***存储器120供***存储器120回收前一轮的运算结果。如此,PE110(PE0~3)以流水线形式同时进行运算作业。
而图11A~11B是一范例说明单端口向量存储器116~118及可连接NoC架构的PE110实现数据流水计算。于本范例中,交错接口112可控制PE 110 经由NoC接口113直接对其他PE 110的附属存储器115或***存储器120进行写入操作,假设向量存储器116(VM0)已储存有权重(权重的DMA传输与图4B相同)。请先参照图11A,PE 110(PE0~PE3)分别对其向量存储器 116,117(VM0,VM1)所记录的权重及输入数据进行运算,由于本实施例中,PE 110(PE0~PE3)可直接对其他PE 110的附属存储器115或***存储器120进行写操作,因此PE110直接将运算结果输出到下一个PE 110(PE1~PE3)的向量存储器118(VM2)或***存储器120:PE0直接将运算结果(例如对数据进行神经网络运算第一层运算的结果)输出到PE1的向量存储器118(VM2);同时 PE1直接将运算结果(例如对前一笔数据进行神经网络运算第二层运算的结果)输出到PE2的向量存储器118(VM2);同时PE2直接将运算结果(例如对再前一笔数据进行神经网络运算第三层运算的结果)输出到PE3的向量存储器118(VM2);同时PE3直接将运算结果(例如对最前的一笔数据进行神经网络运算第四层运算的结果)输出到***存储器120。请参照图11B,PE 110(PE0~PE3)分别对其向量存储器116,118(VM0,VM2)所记录的权重及输入数据进行运算,并将运算结果直接输出到下一个PE 110(PE1~PE3)的向量存储器117(VM1)或***存储器120:PE0直接将运算结果(例如对数据进行神经网络运算第一层运算的结果)输出到PE1的向量存储器117(VM1);同时PE1 直接将运算结果(例如对前一笔数据进行神经网络运算第二层运算的结果) 输出到PE2的向量存储器117(VM1);同时PE2直接将运算结果(例如对再前一笔数据进行神经网络运算第三层运算的结果)输出到PE3的向量存储器 117(VM1);同时PE3直接将运算结果(例如对最前的一笔数据进行神经网络运算第四层运算的结果)输出到***存储器120。前述图11A与11B所示的两种作业任务将会反复切换执行,直到所有神经网络运算的作业任务都完成。
另一方面,本发明实施例的神经网络运算方法,其适用于前述处理电路 1。而此神经网络运算方法包括下列步骤。提供用于执行运算处理的PE 110,提供附属存储器115,提供***存储器120,并提供配置模块130,并通过图 1A、1B与2所示的连接方式形成NoC架构。接着,通过配置模块130依据神经网络运算静态配置那些PE 110的运算作业、以及此NoC架构中的数据传输,而其详细运作可参照图1A至图11B的说明。
综上所述,本发明实施例的NoC架构是特别设计用于神经网络运算,基于神经网络架构运算流程的概念衍伸出本发明实施例的分割计算与数据流水计算模式,且NoC架构中的数据传输都是通过DMA方式搬运。此外,本发明实施例NoC架构的连接方式及作业任务的配置可由MCU事先静态划分好并通过对直接存储器存取(DMA)引擎及各个处理元件进行任务配置,针对不同神经网络运算以不同的NoC拓朴结构进行优化,能提供高效率运算且实现较高的带宽。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的权利要求所界定者为准。
【符号说明】
1:处理电路
100:运算节点
110、PE0~PE3:处理元件
111:指令存储器
112:交错接口
113:NoC接口
115:附属存储器
116~118、VM0~VM2:向量存储器
120:***存储器
130:配置模块
131:直接存储器存取引擎
133:微控制单元。
Claims (18)
1.一种处理电路,包括:
多个处理元件,执行运算处理;
多个附属存储器,其中每一所述附属存储器对应所述处理元件中的一者,并且每一所述附属存储器耦接另外两个所述附属存储器;
***存储器,耦接所有所述多个附属存储器,并且供所述多个处理元件存取;以及
配置模块,耦接所述多个处理元件及其对应的附属存储器、以及所述***存储器以形成芯片上网络架构,所述配置模块更依据神经网络运算静态配置所述多个处理元件的运算作业、以及所述芯片上网络架构中的数据传输,
其中所述配置模块将所述神经网络运算静态划分成多组作业任务,并响应于所述多组作业任务中的一者执行结束,所述配置模块对所述芯片上网络架构配置所述多组作业任务中的另一者。
2.如权利要求1所述的处理电路,其中所述配置模块更包括:
微控制单元,耦接所述多个处理元件,并实现所述静态配置;以及
直接存储器存取引擎,耦接所述微控制单元、所述多个附属存储器、及所述***存储器,并根据所述微控制单元的配置而处理所述多个附属存储器中的一者与所述***存储器之间的直接存储器存取传输或所述多个附属存储器之间的直接存储器存取传输。
3.如权利要求1所述的处理电路,其中所述芯片上网络架构中的所述数据传输包括所述多个附属存储器之间的直接存储器存取传输、及所述多个附属存储器中的一者与所述***存储器之间的直接存储器存取传输。
4.如权利要求1所述的处理电路,其中所述芯片上网络架构中的所述数据传输包括所述多个处理元件中的一者与所述***存储器之间的数据传输、所述多个处理元件中的一者与所述另外两个所述附属存储器之间的数据传输。
5.如权利要求1所述的处理电路,其中每一所述附属存储器包括三个向量存储器,所述三个向量存储器中的第一者储存权重,所述三个向量存储器中的第二者供所对应的处理元件读或写,而所述三个向量存储器中的第三者供所述芯片上网络架构中的所述数据传输。
6.如权利要求5所述的处理电路,其中每一所述向量存储器是双端口静态随机存取存储器,其中一端口供所对应的处理元件读或写,同时另一端口供与所述***存储器或另一处理元件所对应的附属存储器进行直接存储器存取传输。
7.如权利要求5所述的处理电路,其中每一所述附属存储器更包括:
指令存储器,耦接所对应的处理元件,而所述配置模块将基于所述神经网络运算的指令储存于对应的所述指令存储器,且所述对应的处理元件依据所述指令而对两个所述向量存储器所记录的权重及数据执行基于所述神经网络运算的运算处理;以及
交错接口,包括多个多路复用器,并耦接所述附属存储器中的所述向量存储器,且决定所述向量存储器用于储存权重、供所对应的处理元件读或写、或供所述芯片上网络架构中的所述数据传输。
8.如权利要求1所述的处理电路,其中所述处理元件与对应的附属存储器形成多个运算节点,而所述配置模块将所述神经网络运算相关的特征地图划分成多个子特征地图数据,并指示所述多个运算节点分别对所述多个子特征地图数据进行并行处理。
9.如权利要求1所述的处理电路,其中所述处理元件与对应的附属存储器形成多个运算节点,而所述配置模块依据所述神经网络运算对所述多个运算节点建立阶段顺序,并指示每一所述运算节点依据所述阶段顺序将数据传送至另一所述运算节点。
10.一种神经网络运算方法,适用于处理电路,所述神经网络运算方法包括:
提供用于执行运算处理的多个处理元件;
提供多个附属存储器,其中每一所述附属存储器对应所述处理元件,并且每一所述附属存储器耦接另外两个所述附属存储器;
提供一***存储器,其中所述***存储器耦接所有所述多个附属存储器,并且供所述多个处理元件存取;
提供一配置模块,其中所述配置模块耦接所述多个处理元件及其对应的附属存储器、以及所述***存储器以形成一芯片上网络架构;以及
通过所述配置模块依据一神经网络运算静态配置所述多个处理元件的运算作业、以及所述芯片上网络架构中的数据传输,
其中通过所述配置模块依据所述神经网络运算静态配置所述多个处理元件的运算作业、以及所述芯片上网络架构中的数据传输的步骤包括:
通过所述配置模块依据所述神经网络运算静态划分成多组作业任务;以及
响应于所述多组作业任务中的一者执行结束,通过所述配置模块对所述芯片上网络架构配置所述多组作业任务中的另一者。
11.如权利要求10所述的神经网络运算方法,其中提供所述配置模块的步骤包括:
对所述配置模块提供一微控制单元,其中所述微控制单元耦接所述多个处理元件,并通过所述微控制单元实现所述静态配置;以及
对所述配置模块提供一直接存储器存取引擎,其中所述直接存储器存取引擎耦接所述微控制单元、所述多个附属存储器、及所述***存储器,并根据所述微控制单元的配置而处理所述多个附属存储器中的一者与所述***存储器之间的直接存储器存取传输或所述多个附属存储器之间的直接存储器存取传输。
12.如权利要求10所述的神经网络运算方法,其中所述芯片上网络架构中的所述数据传输包括所述多个附属存储器之间的直接存储器存取传输、及所述多个附属存储器中的一者与所述***存储器之间的直接存储器存取传输。
13.如权利要求10所述的神经网络运算方法,其中所述芯片上网络架构中的所述数据传输包括所述多个处理元件中的一者与所述***存储器之间的数据传输、所述多个处理元件中的一者与所述另外两个所述附属存储器之间的数据传输。
14.如权利要求10所述的神经网络运算方法,其中提供所述多个附属存储器的步骤包括:
对每一所述附属存储器提供三个向量存储器,其中所述三个向量存储器中的第一者储存权重,所述三个向量存储器中的第二者供所对应的处理元件读或写,而所述三个向量存储器中的第三者供所述芯片上网络架构中的所述数据传输。
15.如权利要求14所述的神经网络运算方法,其中每一所述向量存储器是双端口静态随机存取存储器,其中一端口供所对应的处理元件读或写,同时另一端口供与所述***存储器或另一处理元件所对应的附属存储器进行直接存储器存取传输。
16.如权利要求14所述的神经网络运算方法,其中提供所述多个附属存储器的步骤包括:
对每一所述附属存储器提供一指令存储器,其中所述指令存储器耦接所对应的处理元件;
为每一所述附属存储器提供一交错接口,其中所述交错接口包括多个多路复用器,并耦接相同附属存储器中的所述多个向量存储器;以及
通过所述交错接口决定所述向量存储器用于储存权重、供所属的处理元件读或写、或供所述芯片上网络架构中的所述数据传输;
而其中通过所述配置模块依据所述神经网络运算静态配置所述多个处理元件的运算作业、以及所述芯片上网络架构中的数据传输的步骤包括:
通过所述配置模块将基于所述神经网络运算的指令储存于对应的所述指令存储器;以及
通过对应的处理元件依据所述指令而对两个所述向量存储器所记录的权重及数据执行基于所述神经网络运算的运算处理。
17.如权利要求10所述的神经网络运算方法,其中所述多个处理元件与对应的附属存储器形成多个运算节点,而通过所述配置模块依据所述神经网络运算静态配置所述多个处理元件的运算作业、以及所述芯片上网络架构中的数据传输的步骤包括:
通过所述配置模块将所述神经网络运算相关的一特征地图划分成多个子特征地图数据;以及
通过所述配置模块指示所述多个运算节点分别对所述多个子特征地图数据进行并行处理。
18.如权利要求11所述的神经网络运算方法,其中所述多个处理元件与对应的附属存储器形成多个运算节点,而通过所述微控制单元依据所述神经网络运算静态配置所述多个处理元件的运算作业、以及所述芯片上网络架构中的数据传输的步骤包括:
通过所述配置模块依据所述神经网络运算对所述多个运算节点建立一阶段顺序;以及
通过所述配置模块指示每一所述运算节点依据所述阶段顺序将数据传送至另一所述运算节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810223618.2A CN108470009B (zh) | 2018-03-19 | 2018-03-19 | 处理电路及其神经网络运算方法 |
US16/004,454 US20190286974A1 (en) | 2018-03-19 | 2018-06-11 | Processing circuit and neural network computation method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810223618.2A CN108470009B (zh) | 2018-03-19 | 2018-03-19 | 处理电路及其神经网络运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108470009A CN108470009A (zh) | 2018-08-31 |
CN108470009B true CN108470009B (zh) | 2020-05-29 |
Family
ID=63264490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810223618.2A Active CN108470009B (zh) | 2018-03-19 | 2018-03-19 | 处理电路及其神经网络运算方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190286974A1 (zh) |
CN (1) | CN108470009B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359732B (zh) | 2018-09-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法 |
CN111079908B (zh) * | 2018-10-18 | 2024-02-13 | 上海寒武纪信息科技有限公司 | 片上网络数据处理方法、存储介质、计算机设备和装置 |
EP4009183A1 (en) | 2018-10-18 | 2022-06-08 | Shanghai Cambricon Information Technology Co., Ltd | Network-on-chip data processing method and device |
WO2020133463A1 (zh) * | 2018-12-29 | 2020-07-02 | 华为技术有限公司 | 神经网络***及数据处理技术 |
CN111382857B (zh) * | 2018-12-29 | 2023-07-18 | 上海寒武纪信息科技有限公司 | 任务处理装置、神经网络处理器芯片、组合装置以及电子设备 |
US11961007B2 (en) * | 2019-02-06 | 2024-04-16 | Qualcomm Incorporated | Split network acceleration architecture |
CN110298441B (zh) * | 2019-05-24 | 2022-01-11 | 深圳云天励飞技术有限公司 | 一种数据处理方法、电子装置及计算机可读存储介质 |
US11755683B2 (en) | 2019-12-23 | 2023-09-12 | Western Digital Technologies, Inc. | Flexible accelerator for sparse tensors (FAST) in machine learning |
WO2021134521A1 (zh) * | 2019-12-31 | 2021-07-08 | 北京希姆计算科技有限公司 | 一种存储管理装置及芯片 |
CN111275179B (zh) * | 2020-02-03 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种基于分布式权值存储加速神经网络计算的架构及方法 |
US11797830B2 (en) * | 2020-03-25 | 2023-10-24 | Western Digital Technologies, Inc. | Flexible accelerator for sparse tensors in convolutional neural networks |
CN112052944A (zh) * | 2020-08-13 | 2020-12-08 | 厦门壹普智慧科技有限公司 | 一种神经网络计算模块及人工智能处理*** |
CN115147861A (zh) * | 2021-03-31 | 2022-10-04 | 广东高云半导体科技股份有限公司 | 进行人物特征识别的人工智能***及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105469143A (zh) * | 2015-11-13 | 2016-04-06 | 清华大学 | 基于神经网络动态特征的片上网络资源映射方法 |
CN107003989A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于人工神经网络中的分布式与协作计算的方法和装置 |
CN107590533A (zh) * | 2017-08-29 | 2018-01-16 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
CN107800700A (zh) * | 2017-10-27 | 2018-03-13 | 中国科学院计算技术研究所 | 一种路由器和片上网络传输***及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0811057D0 (en) * | 2008-06-17 | 2008-07-23 | Univ Ulster | Artificial neural network architecture |
US10186011B2 (en) * | 2017-04-28 | 2019-01-22 | Intel Corporation | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling |
US10872290B2 (en) * | 2017-09-21 | 2020-12-22 | Raytheon Company | Neural network processor with direct memory access and hardware acceleration circuits |
-
2018
- 2018-03-19 CN CN201810223618.2A patent/CN108470009B/zh active Active
- 2018-06-11 US US16/004,454 patent/US20190286974A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003989A (zh) * | 2014-12-19 | 2017-08-01 | 英特尔公司 | 用于人工神经网络中的分布式与协作计算的方法和装置 |
CN105469143A (zh) * | 2015-11-13 | 2016-04-06 | 清华大学 | 基于神经网络动态特征的片上网络资源映射方法 |
CN107590533A (zh) * | 2017-08-29 | 2018-01-16 | 中国科学院计算技术研究所 | 一种用于深度神经网络的压缩装置 |
CN107800700A (zh) * | 2017-10-27 | 2018-03-13 | 中国科学院计算技术研究所 | 一种路由器和片上网络传输***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108470009A (zh) | 2018-08-31 |
US20190286974A1 (en) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108470009B (zh) | 处理电路及其神经网络运算方法 | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
JP7315317B2 (ja) | プロセッサおよびプロセッサのデータ転送方法 | |
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储***及加速计算方法 | |
US4507726A (en) | Array processor architecture utilizing modular elemental processors | |
US11294599B1 (en) | Registers for restricted memory | |
JPH0230535B2 (zh) | ||
CN102253921B (zh) | 一种动态可重构处理器 | |
CN112905530B (zh) | 片上架构、池化计算加速器阵列、单元以及控制方法 | |
JPH07253954A (ja) | 並列コンピュータ | |
US20220179823A1 (en) | Reconfigurable reduced instruction set computer processor architecture with fractured cores | |
US4524428A (en) | Modular input-programmable logic circuits for use in a modular array processor | |
JP2021518591A (ja) | 機械知覚および高密度アルゴリズム集積回路を実装するためのシステムおよび方法 | |
CN111105023A (zh) | 数据流重构方法及可重构数据流处理器 | |
JP4860891B2 (ja) | ビット順次手法により大容量並列プロセッサアレイをメモリアレイに接続する方法及び装置 | |
JP5231949B2 (ja) | 半導体装置、および、半導体装置によるデータ処理方法 | |
CN112486908A (zh) | 层次化的多rpu多pea的可重构处理器 | |
CN113240074B (zh) | 一种可重构神经网络处理器 | |
CN112862079B (zh) | 一种流水式卷积计算架构设计方法及残差网络加速*** | |
JPH07271744A (ja) | 並列計算機 | |
JP7136343B2 (ja) | データ処理システム、方法、およびプログラム | |
CN112486905A (zh) | 可重构异构化pea互连方法 | |
CN112906877A (zh) | 用于执行神经网络模型的存储器架构中的数据布局有意识处理 | |
CN117291240B (zh) | 卷积神经网络加速器及电子设备 | |
Yousefzadeh et al. | An Accelerator-based Architecture Utilizing an Efficient Memory Link for Modern Computational Requirements |
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 | ||
CP03 | Change of name, title or address |
Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |
|
CP03 | Change of name, title or address |