CN107688853A - 一种用于执行神经网络运算的装置及方法 - Google Patents
一种用于执行神经网络运算的装置及方法 Download PDFInfo
- Publication number
- CN107688853A CN107688853A CN201610635286.XA CN201610635286A CN107688853A CN 107688853 A CN107688853 A CN 107688853A CN 201610635286 A CN201610635286 A CN 201610635286A CN 107688853 A CN107688853 A CN 107688853A
- Authority
- CN
- China
- Prior art keywords
- neural network
- data
- processing
- unit
- module
- 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
Links
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- 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)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Image Analysis (AREA)
- Multi Processors (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种用于执行神经网络运算的装置及方法,装置包括片上互联模块和与该片上互联单元通信连接的多个神经网络处理模块,神经网络处理模块能够通过片上互联模块从其它神经网络处理模块中读写数据。在多核多层人工神经网络运算中,要将每一层神经网络运算进行划分,进而由多个神经网络处理模块进行运算,得到各自的运算结果数据,多个神经网络处理单元还将各自的运算结果数据进行数据交换。
Description
技术领域
本发明属于神经网络运算领域,尤其涉及一种用于执行神经网络运算的装置及方法。
背景技术
多层人工神经网络被广泛应用于模式识别,图像处理,函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。人工神经网络涉及到多种算法,其中使用多核多层神经网络处理器来执行神经网络运算,被广泛的应用在各种人工神经网络模型中以及各种使用神经网络的场景中。
一种支持多核多层神经网络运算的已知方法是使用通用处理器。该方法通过使用通用寄存器堆和通用功能部件执行通用指令来支持上述算法。该方法的缺点之一是单个通用处理器的运算性能较低,无法满足通常的多核多层人工神经网络运算的性能需求。而多个通用处理器并行执行时,通用处理器之间相互通信又成为了性能瓶颈。另外,通用处理器需要把人工神经网络运算译码成一长列运算及访存指令序列,处理器前端译码带来了较大的功耗开销
另一种支持多核多层人工神经网络运算的已知方法是使用图形处理器(GPU)。该方法通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来支持上述算法。由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对人工神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行多层人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈。
发明内容
(一)要解决的技术问题
有鉴于此,本发明提供一种用于执行神经网络运算的装置及方法,能以低开销的方式实现一层或多层多核多层人工神经网络的运算,并且运算性能高效。
(二)技术方案
本发明提供一种用于执行神经网络运算的装置及方法,装置包括片上互联模块和与该片上互联单元通信连接的多个神经网络处理模块,神经网络处理模块能够通过片上互联模块从其它神经网络处理模块中读写数据。在多核多层人工神经网络运算中,要将每一层神经网络运算进行划分,进而由多个神经网络处理模块进行运算,得到各自的运算结果数据,多个神经网络处理单元还将各自的运算结果数据进行数据交换。例如每进行一层神经网络计算之后,每个神经网络处理模块只计算得到了部分输出数据,而在执行下一层神经网络运算时,每个神经网络处理模块还会需求来自于其他神经网络处理模块的数据,因此每个神经网络处理的需要将自己计算得到的运算结果数据发送给对应的神经网络处理模块,用以使之计算下一层的神经网络。
用于执行神经网络运算的装置中,神经网络处理模块能够通过片上互联模块从其它神经网络处理模块中读写数据,还可从本地读写数据。
进一步,神经网络处理模块包括神经网络处理单元和高速存储单元;神经网络处理单元用于读写数据,高速存储单元用于存储本地数据。
进一步,用于执行神经网络运算的装置还包括外部存储模块,神经网络处理模块还能够通过片上互联单元从外部存储模块中读写数据。
进一步,神经网络处理单元包括指令队列、高速缓存单元、IO读取单元和神经网络运算单元,其中:
进一步,指令队列存储有运算指令,IO读取单元根据运算指令从该神经网络处理单元的外部读取数据,并将读取的数据缓存至高速缓存单元中,神经网络运算单元根据该运算指令从高速缓存单元中读取所缓存的数据,并执行神经网络运算,得到运算结果数据;
进一步,神经网络处理单元还包括同步关系单元,指令队列还存储有数据送达指令,神经网络运算单元向其它神经网络运算单元发送数据后,所述神经网络运算单元所对应的同步关系单元执行数据送达指令,以向其它神经网络运算单元所对应的同步关系单元发送一数据送达信号。
进一步,指令队列还存储有数据依赖指令,所述神经网络运算单元收到其其它神经网络运算单元所发送的数据后,其对应的同步关系单元执行所述数据依赖指令以检测是否是收到数据送达信号,若是,则继续执行执行指令队列中的指令,否则阻塞指令队列。
进一步,指令队列还存储有数据同步指令,神经网络处理单元中的同步关系单元通过执行所述数据同步指令,以向其它神经网络处理单元中的同步关系单元发送一同步信号,以强制多个神经网络处理单元做同步操作。
进一步,片上互联模块包括一级互联模块和与该一级互联模块通信连接的多个二级互联模块,一级互联模块还与所述外部存储模块通信连接,所述多个二级互联模块与多个神经网络处理模块一一对应,其中,每个二级互联模块分别与相应神经网络处理模块中的神经网络处理单元和高速存储单元通信连接。
本发明还提供一种用于执行单层神经网络运算的方法,包括:
S1,多个神经网络处理模块中的每个神经网络处理模块直接从本地读取数据,和/或通过片上互联模块从其它神经网络处理模块中读取数据,其中,多个神经网络处理模块与该片上互联单元通信连接;
S2,每个神经网络处理模块根据读取的数据进行单层神经网络的部分运算,得到各自的运算结果数据;
S3,每个神经网络处理模块将各自的运算结果数据进行本地存储和/或通过片上互联模块将各自的运算结果数据写入至其他神经网络处理模块中。
进一步,步骤S3中,每个神经网络处理模块将各自的运算结果写入至其它神经网络处理模块中后,向其它特定的神经网络处理模块发送一数据送达信号。
本发明还提供一种用于执行多层神经网络运算的方法,对于每一层神经网络运算,执行上述步骤S1-S3,并将该层各神经网络处理模块得到的运算结果数据用于下一层神经网络运算。
(三)有益效果
本发明所提供的用于执行神经网络运算的装置及方法,具有以下优点:
1、由于采用多核神经网络处理模块,允许单层的神经网络将任务划分,在多个神经网络处理模块上执行,并且采用了专用指令,允许在执行多层神经网络的时候,可以在多个神经网络处理器之间相互传输计算得到的数据,故能实现多层多核的神经网络运算。
2、由于采用多核神经网络处理模块,解决了在执行多核多层神经网络处理运算的时候,单个处理器处理性能不足的问题,具有显著加速多核多层神经网络运算的效果。
3、由于采用了专用的数据指令,有效的解决了在执行多核多层神经网络时,其多个处理器之间需要交互大量数据的问题,具有显著加速多核多层神经网络运算的效果。
附图说明
图1是本发明提供的用于执行神经网络运算的装置的结构示意图。
图2是本发明中神经网络处理模块的结构示意图。
图3是本发明中外部存储模块的结构示意图。
图4是本发明中神经网络处理单元的结构示意图。
图5是本发明中片上互联单元的结构示意图。
图6是本发明执行一层全连接层运算实施例的流程图。
具体实施方式
本发明提供的用于执行人工神经网络运算的装置可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。
图1是本发明提供的用于执行神经网络运算的装置的结构示意图,如图1所示,装置包括多个神经网络处理模块10及一个片上互联模块20,多个神经网络处理模块10与该片上互联单元20通信连接,其中:
神经网络处理模块10能够通过片上互联模块30从其它神经网络处理模块10中读写数据,还可从本地读写数据。当要执行神经网络运算时,每个神经网络处理模块10作为一个核执行相应的运算,其运算所需的数据可直接从本地直接获取,也可通过片上互联模块20与其他神经网络处理模块10通信,以从其他神经网络处理模块10处读取运算所需的数据。各个神经网络处理模块10读取运算所需的数据后,执行相应的运算,得到各自的运算结果数据,在单层神经网络运算中,各个神经网络处理模块10可将各自的运算结果数据汇总至一个神经网络处理模块10中进行累加,以得到最终结果数据。在多层神经网络运算中,当层各个神经网络处理模块10计算得到运算结果数据,可能在下一层作为运算所需的数据被其他神经网络处理模块10使用,这样在当层神经网络运算完毕后,各个神经网络处理模块10会进行数据交互,以准备进行下一层神经网络运算。
图2是本发明中神经网络处理模块的结构示意图,如图2所示,神经网络处理模块10包括神经网络处理单元11和高速存储单元12;神经网络处理模块10在进行神经网络运算时,神经网络处理单元11直接从与其对应的高速储存单元12中读取数据,和/或通过片上互联单元20从其它神经网络处理模块10中的神经网络处理单元11中读取数据,和/或通过片上互联单元20从其它神经网络处理模块10中的高速存储单元12中读取数据;每个神经网络处理模块10中的神经网络处理单元11根据读取的数据进行神经网络运算,得到各自的运算结果数据;在完成运算后,神经网络处理单元11将运算结果数据直接写入至与其对应的高速储存单元12中,和/或通过片上互联单元20将运算结果数据写入至其它神经网络处理模块10中的神经网络处理单元11中,和/或通过片上互联单元20将运算结果数据写入至其它神经网络处理模块10中的高速存储单元12中。总之,神经网络处理单元11可直接从其对应的高速储存单元获取数据,也可以通过片上互联模块20获取其它位置的数据,这样避免了反复向内存读取数据,降低了内存访问带宽。
如图3所示,本发明提供的用于执行神经网络运算的装置还包括外部存储模块30,其与片上互联单元20通信连接,神经网络处理模块10还能够通过片上互联单元从外部存储模块中读写数据,利用外部存储模块30,可以从外界向装置中导入新的数据,装置执行的最终执行结果数据也可以写入至外部存储模块30,以供外部导出。其中,外部存储模块30可以通过硬件来实现(包括但不限于FPGA、CGRA、专用集成电路ASIC、模拟电路或忆阻器等)。
图4是本发明中神经网络处理单元11的结构示意图,如图4所示,神经网络处理单元11包括指令队列111、神经网络运算单元112、IO读取单元113、高速缓存单元114和同步关系单元115。指令队列111存储有多种类型的指令,神经网络处理单元11根据不同的指令执行不同的操作。下表为各类指令的描述:
指令名称 | 操作码1 | 操作码2 | 操作码3 | 操作码4 | 操作码5 | …… |
ACK | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | …… |
FENCE | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | …… |
SYNC | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | …… |
COMPUTE | MLP | addr1 | size1 | addr2 | size2 | …… |
IO | src | dest | size |
指令包括指令名称以及多个操作码:
数据送达指令,指令名称为ACK,其中各个操作码分别表示是否向该神经网络处理单元11发送数据送达信号(ACK信号),神经网络处理单元11向其他神经网络处理单元11写入数据后,执行数据送达指令以发送数据送达信号给对应的神经网络处理单元11,以表明数据已经传输到位;
数据依赖指令,指令名称为FENCE,其中各个操作码表示是否检查来自该神经网络处理单元11的ACK信号;神经网络处理单元11执行数据依赖指令以检测其所有依赖的数据是否已经到达本神经网络处理单元。
数据同步指令,指令名称为SYNC,其中各个操作码表示该神经网络处理单元是否参与同步操作,神经网络处理单元11执行数据同步指令用以强制多个神经网络处理单元11做同步操作,即当多个神经网络都执行到当前指令后,这些神经网络处理单元才可以执行之后的指令;
运算指令,指令名称为COMPUTE,其中第一个操作码表示具体的计算任务,如MLP,CONV,POOL等,其余操作码用来表示输入输出数据的地址和大小,以及神经网络计算指令的配置信息。
输入输出指令,指令名称为IO,其中的操作码分别表示搬运数据的起始地址,结束地址以及数据大小的信息,神经网络处理单元11执行输入输出指令以与其余模块之间进行通信数据。
IO读取单元根据113根据指令队列111中的运算指令从该神经网络处理单元11的外部(如高速存储单元12、其他神经网络处理单元11等)读取数据,并将读取的数据缓存至高速缓存单元114中,神经网络运算单元112根据该运算指令从高速缓存单元114中读取所缓存的数据,并执行神经网络运算,得到相应的运算结果数据;
神经网络运算单元112将运算结果数据写入至高速缓存单元114中,当需要将运算结果数据发送中外部(其他神经网络处理单元11等)时,IO读取单元113从高速缓存单元114中读取运算结果数据,并将运算结果数据写入到该神经网络处理单元11的外部。
图5是本发明中片上互联单元的结构示意图,如图5所示,片上互联20模块包括一级互联模块21和与该一级互联模块通信连接的多个二级互联模块22,一级互联模块21还与外部存储模块30通信连接,多个二级互联模块22与多个神经网络处理模块10一一对应,其中,每个二级互联模块22分别与相应神经网络处理模块中的神经网络处理单元11和高速存储单元12通信连接。具体的,二级的互联模块22一个端口连接神经网络处理单元11,一个端口连接该神经网络处理单元对应的高速存储单元12,另一个端口连接一级互联模块21,一级互联模块21将多个二级互联模块22和外部存储模块30连接,用以保证这些模块之间的数据通路。这样,可以在保证各个神经网络处理单元11以及高速存储单元12和外部存储模块30之间相互通信,并且占用较小的面积开销。
采用本发明以上所描述的装置,可执行单层神经网络运算,包括:
S1,每个神经网络处理模块10根据其自身指令队列11中存储的计算指令,根据指令中操作码所指示的地址,直接从本地读取数据,和/或通过片上互联模块20从其它神经网络处理模块10中读取数据;
S2,每个神经网络处理模块10根据读取的数据进行单层神经网络的部分运算,得到各自的运算结果数据;
S3,每个神经网络处理模块10将各自的运算结果数据进行本地存储和/或通过片上互联模块20将各自的运算结果数据写入至其他神经网络处理模块10中。
对于多层神经网络运算,其实现过程与单层神经网络类似,当上一层人工神经网络执行完毕后,在下一层运算时,每个神经网络处理模块10根据新的运算指令从新的地址读取新的数据进行计算,并且依据新的指令在多核(即多个神经网络处理模块10)之间分配计算任务。对于每一层神经网络运算,执行上述步骤S1-S3,并将该层各神经网络处理模块10得到的运算结果数据用于下一层神经网络运算。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图6是本发明执行一层全连接层运算实施例的流程图,其执行过程如图6所示:
步骤1:依据运算指令COMPUTE,每个神经网络处理单元11从对应的高速存储单元12中读取数据,分别计算得到全连接层的部分运算结果数据。
在每个神经网络处理单元11中,指令队列111将运算指令COMPUTE发送至神经网络运算单元112和IO读取单元113,神经网络运算单元112根据运算指令COMPUTE中的指令名称,确定将要执行一层全连接层运算,具体的,IO读取单元113根据运算指令COMPUTE中的地址从其对应的高速存储单元12中读取运算所需数据,并将读取的数据存储于高速缓存单元114中,神经网络运算单元112从高速缓存单元114中读取相应的数据,然后根据读取的数据执行运算指令COMPUTE,以进行全连接层的部分运算,得到全连接层的部分运算结果数据作为输出数据。
步骤2:依据输入输出指令IO,每个神经网络处理单元11将自己计算的到的部分运算结果数据通过片上互联模块20发送给相应的神经网络处理单元11。由于每个神经网络处理单元11只计算出部分运算结果数据,因此其需要将该部分输出数据发送给相应的神经网络处理单元11进行加和运算。
具体的,步骤1中神经网络运算单元112将计算得到的部分运算结果数据存储于高速缓存单元114中,指令队列111将输入输出指令IO发送给IO读取单元113后,IO读取单元113执行输出指令IO,以将存储于高速缓存单元114中的部分运算结果数据读取,并发送至外部的相应的神经网络处理单元11。这里需要说明的是,每个神经网络处理单元11可能会将部分运算结果数据发送至一个对应的神经网络处理单元11中,也可能发送至多个对应的神经网络处理单元11中,也就是说,每个神经网络处理单元11也可能收到一个神经网络处理单元11发送的部分运算结果数据,也可能收到多个神经网络处理单元11发送的部分运算结果数据。
步骤3:每个神经网络处理单元11将自己计算的到的部分运算结果数据发送给相应的神经网络处理单元11后,需要执行数据送达指令ACK,以向对应的神经网络处理单元11发送数据送达信号。每个神经网络处理单元11需要向接受其发送数据的神经网络处理单元11发送数据送达信号,用以表明其数据依赖关系。
步骤4:依据数据依赖指令FENCE,每个神经网络处理单元11检测其发送数据送达信号是否到达相应的神经网络处理单元11,如果没有到达,则等待对应的数据送达信号到达相应的神经网络处理单元11。对于每个将要进行加和运算神经网络处理单元11,只有其收到所有其他神经网络处理单元11所发送的数据送达信号时,才表明其所需要的输入数据全部到达,从而执行加和运算。
步骤5:依据运算指令COMPUTE,每个的神经网络处理单元11汇集其他神经网络处理单元11的部分运算结果数据后,联合上自身运算所得的部分运算结果数据进行加和运算,得到最终的运算结果数据。
步骤6:依据输入输出指令IO,每个神经网络处理单元11将计算得到的最终的运算结果数据作为输出数据写入外部存储模块30中。在每个神经网络处理单元11中,将最终的运算结果数据写入外部存储模块30中的执行过程与步骤2类似,在此就不再赘述。
综上所述,本发明提供的装置和指令集,解决了CPU和GPU运算性能不足、前端译码开销大的问题,能有效支持多层人工神经网络运算,同时,针对多核多层人工神经网络运算采用专用片上存储,充分挖掘了神经元和权值数据的重用性,避免了反复向内存读取这些数据,降低了内存访问带宽,避免了内存带宽成为多层人工神经网络全连接层正向运算性能瓶颈的问题。
前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,被具体化在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种用于执行神经网络运算的装置,其特征在于,包括片上互联模块和与该片上互联单元通信连接的多个神经网络处理模块,其中:
所述神经网络处理模块能够通过所述片上互联模块从其它神经网络处理模块中读写数据。
2.根据权利要求1所述的用于执行多核多层神经网络运算的装置,其特征在于,所述神经网络处理模块还可从本地读写数据。
3.根据权利要求2所述的用于执行神经网络运算的装置,其特征在于,所述神经网络处理模块包括神经网络处理单元和高速存储单元;
所述神经网络处理单元用于读写数据,所述高速存储单元用于存储本地数据。
4.根据权利要求1-3任意一项所述的用于执行神经网络运算的装置,其特征在于,还包括外部存储模块,所述神经网络处理模块还能够通过所述片上互联单元从所述外部存储模块中读写数据。
5.根据权利要求2所述的用于执行神经网络运算的装置,其特征在于,所述神经网络处理单元包括指令队列、高速缓存单元、IO读取单元和神经网络运算单元,其中:
所述指令队列存储有运算指令,所述IO读取单元根据所述运算指令从该神经网络处理单元的外部读取数据,并将读取的数据缓存至所述高速缓存单元中,所述神经网络运算单元根据该运算指令从所述高速缓存单元中读取所缓存的数据,并执行神经网络运算,得到运算结果数据;
所述神经网络运算单元将所述运算结果数据写入至所述高速缓存单元中,所述IO读取单元从所述高速缓存单元中读取所述运算结果数据,并将所述运算结果数据写入到该神经网络处理单元的外部。
6.根据权利要求5所述的用于执行神经网络运算的装置,其特征在于,所述神经网络处理单元还包括同步关系单元,所述指令队列还存储有数据送达指令,所述神经网络运算单元向其它神经网络运算单元发送数据后,所述神经网络运算单元所对应的同步关系单元执行数据送达指令,以向其它神经网络运算单元所对应的同步关系单元发送一数据送达信号。
7.根据权利要求6所述的用于执行神经网络运算的装置,其特征在于,所述指令队列还存储有数据依赖指令,所述神经网络运算单元收到其其它神经网络运算单元所发送的数据后,其对应的同步关系单元执行所述数据依赖指令以检测是否是收到数据送达信号,若是,则继续执行执行指令队列中的指令,否则阻塞指令队列。
8.根据权利要求6所述的用于执行神经网络运算的装置,其特征在于,所述指令队列还存储有数据同步指令,神经网络处理单元中的同步关系单元通过执行所述数据同步指令,以向其它神经网络处理单元中的同步关系单元发送一同步信号,以强制多个神经网络处理单元做同步操作。
9.根据权利要求3所述的用于执行神经网络运算的装置,其特征在于,所述片上互联模块包括一级互联模块和与该一级互联模块通信连接的多个二级互联模块,所述一级互联模块还与所述外部存储模块通信连接,所述多个二级互联模块与所述多个神经网络处理模块一一对应,其中,每个二级互联模块分别与相应神经网络处理模块中的神经网络处理单元和高速存储单元通信连接。
10.一种用于执行单层神经网络运算的方法,其特征在于,包括:
S1,多个神经网络处理模块中的每个神经网络处理模块直接从本地读取数据,和/或通过片上互联模块从其它神经网络处理模块中读取数据,其中,多个神经网络处理模块与该片上互联单元通信连接;
S2,每个神经网络处理模块根据读取的数据进行单层神经网络的部分运算,得到各自的运算结果数据;
S3,每个神经网络处理模块将各自的运算结果数据进行本地存储和/或通过所述片上互联模块将各自的运算结果数据写入至其他神经网络处理模块中。
11.根据权利要求10所述的用于执行单层神经网络运算的方法,其特征在于,所述步骤S3中,每个神经网络处理模块将各自的运算结果写入至其它神经网络处理模块中后,向其它特定的神经网络处理模块发送一数据送达信号。
12.一种用于执行多层神经网络运算的方法,其特征在于,对于每一层神经网络运算,执行如权利要求10所述的方法,并将该层各神经网络处理模块得到的运算结果数据用于下一层神经网络运算。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610635286.XA CN107688853B (zh) | 2016-08-05 | 2016-08-05 | 一种用于执行神经网络运算的装置及方法 |
CN202010074555.6A CN111310893B (zh) | 2016-08-05 | 2016-08-05 | 一种用于执行神经网络运算的装置及方法 |
PCT/CN2017/095810 WO2018024232A1 (zh) | 2016-08-05 | 2017-08-03 | 用于执行神经网络运算的装置及方法 |
EP17836414.7A EP3496007B1 (en) | 2016-08-05 | 2017-08-03 | Device and method for executing neural network operation |
TW106126471A TWI767925B (zh) | 2016-08-05 | 2017-08-04 | 一種用於執行神經網絡運算的裝置及方法 |
US16/268,468 US11120331B2 (en) | 2016-08-05 | 2019-02-05 | Device and method for executing neural network operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610635286.XA CN107688853B (zh) | 2016-08-05 | 2016-08-05 | 一种用于执行神经网络运算的装置及方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010074555.6A Division CN111310893B (zh) | 2016-08-05 | 2016-08-05 | 一种用于执行神经网络运算的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107688853A true CN107688853A (zh) | 2018-02-13 |
CN107688853B CN107688853B (zh) | 2020-01-10 |
Family
ID=61073469
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010074555.6A Active CN111310893B (zh) | 2016-08-05 | 2016-08-05 | 一种用于执行神经网络运算的装置及方法 |
CN201610635286.XA Active CN107688853B (zh) | 2016-08-05 | 2016-08-05 | 一种用于执行神经网络运算的装置及方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010074555.6A Active CN111310893B (zh) | 2016-08-05 | 2016-08-05 | 一种用于执行神经网络运算的装置及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11120331B2 (zh) |
EP (1) | EP3496007B1 (zh) |
CN (2) | CN111310893B (zh) |
TW (1) | TWI767925B (zh) |
WO (1) | WO2018024232A1 (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542830A (zh) * | 2018-11-21 | 2019-03-29 | 北京灵汐科技有限公司 | 一种数据处理***及数据处理方法 |
CN110197266A (zh) * | 2018-02-27 | 2019-09-03 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
WO2019165940A1 (zh) * | 2018-02-27 | 2019-09-06 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置、板卡及相关产品 |
CN110297779A (zh) * | 2018-03-23 | 2019-10-01 | 余晓鹏 | 一种内存难解性算法的解决方法 |
CN110825440A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 指令执行方法和装置 |
CN111258637A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258645A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258635A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258770A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258652A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258647A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258636A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111488969A (zh) * | 2020-04-03 | 2020-08-04 | 北京思朗科技有限责任公司 | 基于神经网络加速器的执行优化方法及装置 |
CN111767996A (zh) * | 2018-02-27 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN111767078A (zh) * | 2019-04-02 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 数据运行方法、装置和相关产品 |
CN113673701A (zh) * | 2021-08-24 | 2021-11-19 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108289177B (zh) * | 2018-02-13 | 2020-10-16 | 北京旷视科技有限公司 | 信息交互方法、装置及*** |
US20190325295A1 (en) * | 2018-04-20 | 2019-10-24 | International Business Machines Corporation | Time, space, and energy efficient neural inference via parallelism and on-chip memory |
US11663461B2 (en) | 2018-07-05 | 2023-05-30 | International Business Machines Corporation | Instruction distribution in an array of neural network cores |
US11126912B2 (en) * | 2018-12-11 | 2021-09-21 | Mipsology SAS | Realigning streams of neuron outputs in artificial neural network computations |
CN111382857B (zh) * | 2018-12-29 | 2023-07-18 | 上海寒武纪信息科技有限公司 | 任务处理装置、神经网络处理器芯片、组合装置以及电子设备 |
CN109919310B (zh) * | 2019-01-15 | 2021-05-18 | 中国科学院信息工程研究所 | 一种面向深度学习训练任务的gpu内存优化方法及*** |
KR20210042717A (ko) * | 2019-10-10 | 2021-04-20 | 삼성전자주식회사 | 무선 통신 시스템에서 인공 지능을 활용한 신호 송수신 방법 및 장치 |
CN111752689B (zh) * | 2020-06-22 | 2023-08-25 | 深圳鲲云信息科技有限公司 | 一种基于数据流的神经网络多引擎同步计算*** |
WO2022143917A1 (zh) * | 2020-12-31 | 2022-07-07 | 中科寒武纪科技股份有限公司 | 片间通信的电路、方法和*** |
CN115526302B (zh) * | 2022-08-19 | 2023-07-25 | 北京应用物理与计算数学研究所 | 基于异构多核处理器的多层神经网络计算方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5204938A (en) * | 1989-05-30 | 1993-04-20 | Loral Aerospace Corp. | Method of implementing a neural network on a digital computer |
WO2005012877A2 (en) * | 2003-08-01 | 2005-02-10 | Dna Twopointo Inc. | Systems and methods for antibody engineering |
CN1792064A (zh) * | 2003-06-19 | 2006-06-21 | 思科技术公司 | 在破坏计算机网络中的邻接关系时通知eigrp邻居的技术 |
CN101527010A (zh) * | 2008-03-06 | 2009-09-09 | 上海理工大学 | 人工神经网络算法的硬件实现方法及其*** |
WO2015021016A1 (en) * | 2013-08-05 | 2015-02-12 | Board Of Trustees Of The University Of Alabama | Systems, methods and devices for vector control of permanent magnet synchronous machines using artificial neural networks |
CN104899640A (zh) * | 2014-07-21 | 2015-09-09 | 徐志强 | 神经网络的模拟装置及方法 |
CN105229675A (zh) * | 2013-05-21 | 2016-01-06 | 高通股份有限公司 | 尖峰网络的高效硬件实现 |
US20160034808A1 (en) * | 2012-12-21 | 2016-02-04 | International Business Machines Corporation | Hardware architecture for simulating a neural network of neurons |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1991018351A1 (en) * | 1990-05-22 | 1991-11-28 | International Business Machines Corporation | Pyramid learning architecture neurocomputer |
CN101534165B (zh) * | 2009-03-31 | 2013-03-13 | 江南大学 | 一种混沌神经网络保密通信电路 |
JP5387147B2 (ja) * | 2009-06-03 | 2014-01-15 | 日本電気株式会社 | 病理画像診断システム、病理画像処理方法、病理画像診断プログラム |
US8346883B2 (en) * | 2010-05-19 | 2013-01-01 | International Business Machines Corporation | Effecting hardware acceleration of broadcast operations in a parallel computer |
CN101882238B (zh) * | 2010-07-15 | 2012-02-22 | 长安大学 | 基于sopc的小波神经网络处理器 |
CN102193518B (zh) * | 2011-05-13 | 2013-04-24 | 南京理工大学 | 基于基底神经节的fpga仿生智能控制芯片 |
US8935513B2 (en) * | 2012-02-08 | 2015-01-13 | International Business Machines Corporation | Processor performance improvement for instruction sequences that include barrier instructions |
GB201310859D0 (en) * | 2013-06-18 | 2013-07-31 | Cambridge Entpr Ltd | Rational method for solubilising proteins |
CN105373829B (zh) * | 2014-09-02 | 2018-05-04 | 北京大学 | 一种全连接神经网络结构 |
CN106062786B (zh) * | 2014-09-12 | 2019-12-31 | 微软技术许可有限责任公司 | 用于训练神经网络的计算*** |
US20160342887A1 (en) * | 2015-05-21 | 2016-11-24 | minds.ai inc. | Scalable neural network system |
CN104978601B (zh) * | 2015-06-26 | 2017-08-25 | 深圳市腾讯计算机***有限公司 | 神经网络模型训练***和方法 |
US10878320B2 (en) * | 2015-07-22 | 2020-12-29 | Qualcomm Incorporated | Transfer learning in neural networks |
CN105512723B (zh) * | 2016-01-20 | 2018-02-16 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
-
2016
- 2016-08-05 CN CN202010074555.6A patent/CN111310893B/zh active Active
- 2016-08-05 CN CN201610635286.XA patent/CN107688853B/zh active Active
-
2017
- 2017-08-03 WO PCT/CN2017/095810 patent/WO2018024232A1/zh unknown
- 2017-08-03 EP EP17836414.7A patent/EP3496007B1/en active Active
- 2017-08-04 TW TW106126471A patent/TWI767925B/zh active
-
2019
- 2019-02-05 US US16/268,468 patent/US11120331B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5204938A (en) * | 1989-05-30 | 1993-04-20 | Loral Aerospace Corp. | Method of implementing a neural network on a digital computer |
CN1792064A (zh) * | 2003-06-19 | 2006-06-21 | 思科技术公司 | 在破坏计算机网络中的邻接关系时通知eigrp邻居的技术 |
WO2005012877A2 (en) * | 2003-08-01 | 2005-02-10 | Dna Twopointo Inc. | Systems and methods for antibody engineering |
CN101527010A (zh) * | 2008-03-06 | 2009-09-09 | 上海理工大学 | 人工神经网络算法的硬件实现方法及其*** |
US20160034808A1 (en) * | 2012-12-21 | 2016-02-04 | International Business Machines Corporation | Hardware architecture for simulating a neural network of neurons |
CN105229675A (zh) * | 2013-05-21 | 2016-01-06 | 高通股份有限公司 | 尖峰网络的高效硬件实现 |
WO2015021016A1 (en) * | 2013-08-05 | 2015-02-12 | Board Of Trustees Of The University Of Alabama | Systems, methods and devices for vector control of permanent magnet synchronous machines using artificial neural networks |
CN104899640A (zh) * | 2014-07-21 | 2015-09-09 | 徐志强 | 神经网络的模拟装置及方法 |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
Non-Patent Citations (1)
Title |
---|
TAO LUO ETC: "DaDianNao:A Neural Network Supercomputer", 《IEEE TRANSACTIONS ON COMPUTERS》 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110197266B (zh) * | 2018-02-27 | 2020-08-04 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110197266A (zh) * | 2018-02-27 | 2019-09-03 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
WO2019165940A1 (zh) * | 2018-02-27 | 2019-09-06 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置、板卡及相关产品 |
CN111767996B (zh) * | 2018-02-27 | 2024-03-05 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN111767996A (zh) * | 2018-02-27 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN110297779A (zh) * | 2018-03-23 | 2019-10-01 | 余晓鹏 | 一种内存难解性算法的解决方法 |
CN110825440A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 指令执行方法和装置 |
CN110825440B (zh) * | 2018-08-10 | 2023-04-14 | 昆仑芯(北京)科技有限公司 | 指令执行方法和装置 |
CN109542830A (zh) * | 2018-11-21 | 2019-03-29 | 北京灵汐科技有限公司 | 一种数据处理***及数据处理方法 |
CN111258636B (zh) * | 2018-11-30 | 2022-10-04 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258635A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258636A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258637A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258652A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258770A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258770B (zh) * | 2018-11-30 | 2023-10-10 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258645A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258637B (zh) * | 2018-11-30 | 2022-08-05 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258647A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258652B (zh) * | 2018-11-30 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258645B (zh) * | 2018-11-30 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258635B (zh) * | 2018-11-30 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111258647B (zh) * | 2018-11-30 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
CN111767078A (zh) * | 2019-04-02 | 2020-10-13 | 上海寒武纪信息科技有限公司 | 数据运行方法、装置和相关产品 |
CN111488969B (zh) * | 2020-04-03 | 2024-01-19 | 北京集朗半导体科技有限公司 | 基于神经网络加速器的执行优化方法及装置 |
CN111488969A (zh) * | 2020-04-03 | 2020-08-04 | 北京思朗科技有限责任公司 | 基于神经网络加速器的执行优化方法及装置 |
CN113673701A (zh) * | 2021-08-24 | 2021-11-19 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111310893B (zh) | 2023-11-21 |
CN111310893A (zh) | 2020-06-19 |
EP3496007A1 (en) | 2019-06-12 |
CN107688853B (zh) | 2020-01-10 |
TW201805858A (zh) | 2018-02-16 |
US11120331B2 (en) | 2021-09-14 |
WO2018024232A1 (zh) | 2018-02-08 |
TWI767925B (zh) | 2022-06-21 |
EP3496007A4 (en) | 2020-03-25 |
EP3496007B1 (en) | 2022-10-05 |
US20190171932A1 (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107688853A (zh) | 一种用于执行神经网络运算的装置及方法 | |
CN109032669B (zh) | 神经网络处理装置及其执行向量最小值指令的方法 | |
CN108229654B (zh) | 神经网络卷积运算装置及方法 | |
WO2020073211A1 (zh) | 运算加速器、处理方法及相关设备 | |
CN108733348B (zh) | 融合向量乘法器和使用其进行运算的方法 | |
CN108694441B (zh) | 一种网络处理器和网络运算方法 | |
CN108229656A (zh) | 神经网络运算装置及方法 | |
CN108320018B (zh) | 一种人工神经网络运算的装置及方法 | |
US20230214338A1 (en) | Data moving method, direct memory access apparatus and computer system | |
CN109711540B (zh) | 一种计算装置及板卡 | |
WO2022134873A1 (zh) | 数据处理装置、数据处理方法及相关产品 | |
CN109740729B (zh) | 运算方法、装置及相关产品 | |
CN111260046B (zh) | 运算方法、装置及相关产品 | |
CN111258641B (zh) | 运算方法、装置及相关产品 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN110472734A (zh) | 一种计算装置及相关产品 | |
CN114330691B (zh) | 用于直接存储器访问装置的数据搬运方法 | |
US20230214339A1 (en) | Data moving method for direct memory access apparatus | |
CN116227568A (zh) | 基于红外图像的深度学习模型优化方法及*** | |
CN112394992A (zh) | 半精度浮点转八位整形指令处理装置、方法及相关产品 | |
CN112394990A (zh) | 浮点转半精度浮点指令处理装置、方法及相关产品 | |
CN112394903A (zh) | 短整形转半精度浮点指令处理装置、方法及相关产品 | |
CN114691083A (zh) | 矩阵乘法电路、方法及相关产品 | |
CN112394993A (zh) | 半精度浮点转短整形指令处理装置、方法及相关产品 | |
CN112394994A (zh) | 半精度浮点转八位整形指令处理装置、方法及相关产品 |
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 | ||
CB02 | Change of applicant information |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |