CN111860813B - 一种用于执行卷积神经网络正向运算的装置和方法 - Google Patents
一种用于执行卷积神经网络正向运算的装置和方法 Download PDFInfo
- Publication number
- CN111860813B CN111860813B CN202010616975.2A CN202010616975A CN111860813B CN 111860813 B CN111860813 B CN 111860813B CN 202010616975 A CN202010616975 A CN 202010616975A CN 111860813 B CN111860813 B CN 111860813B
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- storage unit
- module
- unit
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims description 50
- 239000013598 vector Substances 0.000 claims abstract description 26
- 238000013528 artificial neural network Methods 0.000 claims abstract description 20
- 210000002364 input neuron Anatomy 0.000 claims abstract description 5
- 239000010410 layer Substances 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 26
- 230000004913 activation Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 19
- 210000002569 neuron Anatomy 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 5
- 239000002356 single layer Substances 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000012886 linear function Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- 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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/048—Activation functions
-
- 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/0499—Feedforward 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种执行卷积神经网络的装置,其中装置部分包括了指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块。使用该装置可以实现一层或多层人工神经网络卷积层的正向运算。对于每一层来说,首先对输入神经元向量依据卷积窗口进行数据选择,然后与卷积核进行卷积运算,计算出本层的中间结果,然后对该中间结果加偏置并激活得到输出数据。将输出数据作为下一层的输入数据。
Description
技术领域
本发明总体上涉及人工神经网络,具体地涉及一种用于执行卷积神经网络正向运算的装置和方法。
背景技术
卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简单、训练参数少和适应性强、平移、旋转、缩放等特点。由于CNN/DNN的特征检测层通过训练数据进行学习,所以在使用CNN/DNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。
在已有的计算机领域应用中,与卷积运算相关的应用十分普遍。本发明专注于卷积神经网络,目前可以执行此种运算的主流装置如下:
在现有技术中,一种进行卷积神经网络运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行卷积神经网络运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行卷积神经网络运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。
在另一种现有技术中,使用图形处理器(GPU)来进行向量计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行卷积神经网络运算。然而,上述方案中,GPU片上缓存太小,在进行大规模卷积神经网络运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。
发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种支持卷积神经网络的装置,解决现有技术中存在的受限于片间通讯、片上缓存不够等问题。
(二)技术方案
本发明的一个方面提供了一种用于执行卷积神经网络正向运算的装置,包括:控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:
所述控制器单元,用于读取指令,将所述指令译成控制所述数据访问单元、所述主运算模块和所述从运算模块行为的控制信号;
所述数据访问单元,用于执行所述装置的片外存储的地址空间与所述装置之间的数据或指令读写操作;
所述从运算模块,用于输入数据和各自的卷积核并行执行卷积运算,获得对应的输出标量;
所述互连模块,用于所述主运算模块和所述从运算模块之间的数据传输,在神经网络全连接层正向运算开始之前,主运算模块通过互连模块将输入数据输送到每一个从运算模块,在从运算模块的计算过程结束后,互连模块逐级将各从运算模块的输出标量拼成中间结果,输送回主运算模块;
所述主运算模块,用于根据所述中间结果获得偏置结果,并利用偏置结果执行激活函数操作。
本发明的另一方面提供了一种使用上述装置执行单层人工神经网络卷积层正向运算的方法。
本发明的另一方面提供了一种使用上述装置执行多层人工神经网络卷积层正向运算的方法。
(三)有益效果
本发明提供的卷积神经网络运算装置及配套指令,将参与计算的输入数据和卷积核暂存在高速暂存存储器上(Scratchpad Memory)。在仅发送同一条指令的情况下,卷积神经网络运算单元中可以更加灵活有效地支持不同宽度的数据,并可以解决数据存储中的相关性问题,从而提升了包含大量卷积神经网络计算任务的执行性能,本发明采用的指令具有精简的格式,使得指令集使用方便、支持的向量长度灵活。
本发明可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。
附图说明
图1是卷积神经网络算法的示意流程图。
图2是根据本发明实施例的支持卷积神经网络正向运算的装置的指令示意图。
图3示出了根据本发明实施例的用于执行卷积神经网络正向运算的装置的整体结构的示例框图。
图4示意性示出了根据本发明实施例的用于执行卷积神经网络正向运算的装置中H树模块(互连模块一种实现方式)的结构。
图5示出了根据本发明实施例的用于执行卷积神经网络正向运算的装置中主运算模块结构的示例框图。
图6示出了根据本发明实施例的用于执行卷积神经网络正向运算的装置中从运算模块结构的示例框图。
图7示出了根据本发明实施例的单层卷积神经网络正向运算过程的示例框图。
具体实施方式
本发明提供一种卷积神经网络计算装置及配套指令集,包括存储单元、寄存器单元和卷积神经网络运算单元,存储单元中存储有输入输出数据和卷积核,寄存器单元中存储有输入输出数据和卷积核存储的地址,卷积神经网络运算单元根据卷积神经网络运算指令在寄存器单元中获取数据地址,然后,根据该数据地址在存储单元中获取相应的输入数据和卷积核,接着,根据获取的输入数据和卷积核进行卷积神经网络运算,得到卷积神经网络运算结果。本发明将参与计算的输入数据和卷积核暂存在外部存储空间(例如,高速暂存存储器)上,使得卷积神经网络运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量卷积神经网络计算任务的执行性能。
图1为卷积神经网络算法示意图,如图1所示,卷积神经网络包括输出数据及激活函数,输入数据层,和卷积核。
首先,其每一次的计算过程,首先需要依据卷积窗口,选取出输入数据层中对应的输入数据xi,然后将输入数据和卷积核进行加和运算。其输出数据的计算过程为s=s(∑wxi+b),即将卷积核w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出数据s。其中,卷积核和输入数据的乘法是向量乘法。
卷积窗口依据卷积核在X轴上的大小kx和在Y轴上的大小ky,在X轴尺寸为W和Y轴尺寸为H的输入数据上,从最开始选取出和卷积核同样大小的输入数据,然后依据卷积窗口的平移位矢Sx和Sy,以此先作水平平移,然后再做垂直平移,将全部输入数据做遍历。
图2是根据本发明实施例的指令集的格式示意图,如图2所示,卷积神经网络运算指令包括至少1个操作码和至少1个操作域,其中,操作码用于指示该卷积神经网络运算指令的功能,卷积神经网络运算单元通过识别该操作码可进行卷积神经网络运算,操作域用于指示该卷积神经网络运算指令的数据信息,其中,数据信息可以是立即数或寄存器号,包括输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。
指令集包含有不同功能的卷积神经网络COMPUTE指令以及CONFIG指令、IO指令、NOP指令、JUMP指令和MOVE指令。在一种实施例中,COMPUTE指令包括:
卷积神经网络sigmoid指令,根据该指令,装置分别从高速暂存存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做sigmoid激活;
卷积神经网络TanH指令,根据该指令,装置分别从高速暂存存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做TanH激活;
卷积神经网络ReLU指令,根据该指令,装置分别从高速暂存存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做ReLU激活;以及
卷积神经网络group指令,根据该指令,装置分别从高速暂存存储器的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,然后将输出结果做激活。
COMPUTE指令也可以包括其他的运算指令,进行非线性激活和线性激活操作。
CONFIG指令在每层人工神经网络计算开始前配置当前层计算需要的各种常数。
IO指令实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间。
NOP指令负责清空当前装置内部所有控制信号缓存队列中的控制信号,保证NOP指令之前的所有指令全部指令完毕。NOP指令本身不包含任何操作;
JUMP指令负责控制将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
MOVE指令负责将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图3是本发明实施例提供的卷积神经网络正向运算装置的结构示意图。如图3所示,该装置包括指令存储单元1、控制器单元2、数据访问单元3、互连模块4、主运算模块5和多个从运算模块6。指令存储单元1、控制器单元2、数据访问单元3、互连模块4、主运算模块5和从运算模块6均可以通过硬件电路(例如包括但不限于FPGA、CGRA、专用集成电路ASIC、模拟电路和忆阻器等)实现。
指令存储单元1通过数据访问单元3读入指令并存储读入的指令。
控制器单元2从指令存储单元1中读取指令,将指令译成控制其他模块行为的控制信号并发送给其他模块如数据访问单元3、主运算模块5和从运算模块6等。
数据访问单元3能够访问外部地址空间,直接向装置内部的各个存储单元读写数据,完成数据的加载和存储。
互连模块4用于连接主运算模块和从运算模块,可以实现成不同的互连拓扑(如树状结构、环状结构、网格状结构、分级互连,总线结构等)。
图4示意性示出了互连模块4的一种实施方式:H树模块。互连模块4构成主运算模块5和多个从运算模块6之间的数据通路,是由多个节点构成的二叉树通路,每个节点将上游的数据同样地发给下游的两个节点,将下游的两个节点返回的数据进行合并,并返回给上游的节点。例如,在卷积神经网络开始计算阶段,主运算模块5内的神经元数据通过互连模块4发送给各个从运算模块6;当从运算模块6的计算过程完成后,当从运算模块的计算过程完成后,每个从运算模块输出的神经元的值会在互连模块中逐级拼成一个完整的由神经元组成的向量。举例说明,假设装置中共有N个从运算模块,则输入数据xi被发送到N个从运算模块,每个从运算模块将输入数据xi与该从运算模块相应的卷积核做卷积运算,得到一标量数据,各从运算模块的标量数据被互连模块4合并成一个含有N个元素的中间向量。假设卷积窗口总共遍历得到A*B个(X方向为A个,Y方向为B个,X、Y为三维正交坐标系的坐标轴)输入数据xi,则对A*B个xi执行上述卷积操作,得到的所有向量在主运算模块中合并得到A*B*N的三维中间结果。
图5示出了根据本发明实施例的用于执行卷积神经网络正向运算的装置中主运算模块5的结构的示例框图。如图5所示,主运算模块5包括第一运算单元51、第一数据依赖关系判定单元52和第一存储单元53。
其中,第一运算单元51包括向量加法单元511以及激活单元512。第一运算单元51接收来自控制器单元的控制信号,完成主运算模块5的各种运算功能,向量加法单元511用于实现卷积神经网络正向计算中的加偏置操作,该部件将偏置数据与所述中间结果对位相加得到偏置结果,激活运算单元512对偏置结果执行激活函数操作。所述偏置数据可以是从外部地址空间读入的,也可以是存储在本地的。
第一数据依赖关系判定单元52是第一运算单元51读写第一存储单元53的端口,保证第一存储单元53中数据的读写一致性。同时,第一数据依赖关系判定单元52也负责将从第一存储单元53读取的数据通过互连模块4发送给从运算模块,而从运算模块6的输出数据通过互连模块4直接发送给第一运算单元51。控制器单元2输出的指令发送给第一运算单元51和第一数据依赖关系判定单元52,来控制其行为。
第一存储单元53用于缓存主运算模块5在计算过程中用到的输入数据和输出数据。
图6示出了根据本发明实施例的用于执行卷积神经网络正向运算的装置中从运算模块6的结构的示例框图。如图4所示,每个从运算模块6包括第二运算单元61、数据依赖关系判定单元62、第二存储单元63和第三存储单元64。
第二运算单元61接收控制器单元2发出的控制信号并进行卷积运算。第二运算单元包括向量乘单元611和累加单元612,分别负责卷积运算中的向量乘运算和累加运算。
第二数据依赖关系判定单元62负责计算过程中对第二存储单元63的读写操作。第二数据依赖关系判定单元62执行读写操作之前会首先保证指令之间所用的数据不存在读写一致性冲突。例如,所有发往第二数据依赖关系单元62的控制信号都会被存入第二数据依赖关系单元62内部的指令队列里,在该队列中,读指令的读取数据的范围如果与队列位置靠前的写指令写数据的范围发生冲突,则该指令必须等到所依赖的写指令被执行后才能够执行。
第二存储单元63缓存该从运算模块6的输入数据和输出标量数据。
第三存储单元64缓存该从运算模块6在计算过程中需要的卷积核数据。
图7是本发明实施例提供的卷积神经网络运算装置执行卷积神经网络的流程图,如图7所示,执行卷积神经网络指令的过程包括:
在步骤S1,在指令存储单元1的首地址处预先存入一条IO指令。
在步骤S2,运算开始,控制器单元2从指令存储单元1的首地址读取该条IO指令,根据译出的控制信号,数据访问单元3从外部地址空间读取相应的所有卷积神经网络运算指令,并将其缓存在指令存储单元1中。
在步骤S3,控制器单元2接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元3从外部地址空间读取主运算模块5需要的所有数据(例如,包括输入数据、用于作快速的激活函数运算的插值表、用于配置运算器件参数的常数表、偏置数据等)至主运算模块5的第一存储单元53。
在步骤S4,控制器单元2接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元3从外部地址空间读取从运算模块6需要的卷积核数据。
在步骤S5,控制器单元2接着从指令存储单元读入下一条CONFIG指令,根据译出的控制信号,装置配置该层神经网络计算需要的各种常数。例如,第一运算单元51、第二运算单元61根据控制信号里的参数配置单元内部寄存器的值,所述参数包括例如激活函数需要的数据。
在步骤S6,控制器单元2接着从指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,主运算模块5首先通过互连模块4将卷积窗口内的输入数据发给各从运算模块6,保存至从运算模块6的第二存储单元63,之后,再依据指令移动卷积窗口。
在步骤S7,根据COMPUTE指令译出的控制信号,从运算模块6的运算单元61从第三存储单元64读取卷积核,从第二存储单元63读取输入数据,完成输入数据和卷积核的卷积运算,将中间结果通过互连模块4返回。
在步骤S8,在互连模块4中,各从运算模块6返回的中间结果被逐级拼成完整的中间向量。
在步骤S9,主运算模块5得到互连模块4返回的中间向量,卷积窗口遍历所有输入数据,主运算模块将所有返回向量拼接成中间结果,根据COMPUTE指令译出的控制信号,从第一存储单元53读取偏置数据,与中间结果通过向量加单元511相加得到偏置结果,然后激活单元512对偏置结果做激活,并将最后的输出数据写回至第一存储单元53中。
在步骤S10,控制器单元2接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元3将第一存储单元53中的输出数据存至外部地址空间指定地址,运算结束。
对于多层神经网络卷积层,其实现过程与单层神经网络卷积层类似,当上一层卷积神经网络执行完毕后,下一层的运算指令会将主运算单元中存储的上一层的输出数据地址作为本层的输入数据地址。同样地,指令中的卷积核和偏置数据地址也会变更至本层对应的地址。
通过采用用于执行卷积神经网络正向运算的装置和指令集,解决了CPU和GPU运算性能不足,前端译码开销大的问题。有效提高了对多层卷积神经网络正向运算的支持。
通过采用针对多层卷积神经网络正向运算的专用片上缓存,充分挖掘了输入神经元和卷积核数据的重用性,避免了反复向内存读取这些数据,降低了内存访问带宽,避免了内存带宽成为多层卷积神经网络正向运算性能瓶颈的问题。
前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,被具体化在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。
在前述的说明书中,参考其特定示例性实施例描述了本发明的各实施例。显然,可对各实施例做出各种修改,而不背离所附权利要求所述的本发明的更广泛的精神和范围。相应地,说明书和附图应当被认为是说明性的,而不是限制性的。
Claims (26)
1.一种用于执行卷积神经网络正向运算的装置,包括:控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块,其中:
所述控制器单元,用于读取指令,将所述指令译成控制所述数据访问单元、所述主运算模块和所述从运算模块行为的控制信号;
所述数据访问单元,用于执行所述装置的片外存储的地址空间与所述装置之间的数据或指令读写操作;
所述从运算模块,用于输入数据和各自的卷积核并行执行卷积运算,获得对应的输出标量;
所述互连模块,用于所述主运算模块和所述从运算模块之间的数据传输,在神经网络全连接层正向运算开始之前,主运算模块通过互连模块将输入数据输送到每一个从运算模块,在从运算模块的计算过程结束后,互连模块逐级将各从运算模块的输出标量拼成中间结果,输送回主运算模块;
所述主运算模块,用于根据所述中间结果获得偏置结果,并利用偏置结果执行激活函数操作。
2.根据权利要求1所述的装置,其中所述主运算模块执行激活函数操作使用的激活函数active是非线性函数sigmoid,tanh,relu,softmax中的任一个或线性函数。
3.根据权利要求1所述的装置,其中,所述装置还包括:
指令存储单元,通过所述数据访问单元读入指令并存储读入的指令。
4.根据权利要求2所述的装置,其中,所述指令包括至少1个操作码和至少1个操作域,其中,操作码用于指示该指令的功能;操作域用于指示该指令的数据信息,所述指令包括卷积神经网络COMPUTE指令。
5.根据权利要求4所述的装置,其中,卷积神经网络COMPUTE指令包括以下至少一种:卷积神经网络sigmoid指令,根据该指令,所述装置分别从存储单元的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做sigmoid激活;卷积神经网络TanH指令,根据该指令,装置分别从存储单元的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做TanH激活;卷积神经网络ReLU指令,根据该指令,装置分别从存储单元的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做ReLU激活;卷积神经网络group指令,根据该指令,装置分别从存储单元的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,然后将输出结果做激活;以及用于进行线性激活操作的运算指令。
6.根据权利要求3所述的装置,其中所述指令还包括:
CONFIG指令,用于在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
IO指令,用于从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间;
NOP指令,用于清空当前装置内部所有控制信号缓存队列中的控制信号,保证NOP指令之前的所有指令全部指令完毕,NOP指令本身不包含任何操作;
JUMP指令,用于控制将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
MOVE指令,用于将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
7.根据权利要求1所述的装置,其中,所述互连模块是所述主运算模块和所述多个从运算模块之间的连续或离散化数据的数据通路,互连模块为以下任一种结构:树状结构、环状结构、网格状结构、分级互连、总线结构。
8.根据权利要求1所述的装置,其中,所述主运算模块包括第一运算单元、第一数据依赖关系判定单元和第一存储单元,其中:
所述第一存储单元,用于缓存主运算模块在计算过程中用到的输入数据和输出数据;
所述第一运算单元,用于完成主运算模块的各种运算功能;
所述第一数据依赖关系判定单元是第一运算单元读写所述第一存储单元的端口,用于保证对所述第一存储单元的数据读写不存在一致性冲突,并且负责从所述第一存储单元读取输入的神经元向量,并通过互连模块发送给所述从运算模块;以及来自所述互连模块的中间结果向量被发送到所述第一运算单元。
9.根据权利要求1所述的装置,其中,每个从运算模块包括第二运算单元、第二数据依赖关系判定单元、第二存储单元和第三存储单元,其中:
所述第二运算单元,用于接收控制器单元发出的控制信号并进行算数逻辑运算;
所述第二数据依赖关系判定单元,用于负责计算过程中对第二存储单元和第三存储单元的读写操作,保证对第二存储单元和第三存储单元的读写不存在一致性冲突;
所述第二存储单元,用于缓存输入数据以及该从运算模块计算得到的输出标量;以及
所述第三存储单元,用于缓存该从运算模块在计算过程中需要的卷积核。
10.根据权利要求8所述的装置,其中,所述第一数据依赖关系判定单元通过以下方式保证读写不存在一致性冲突:判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许尚未执行的控制信号立即发射,否则需要等到尚未执行的控制信号所依赖的所有控制信号全部执行完成后,尚未执行的控制信号才允许被发射。
11.根据权利要求8所述的装置,其中,所述第一数据依赖关系判定单元通过以下方式保证读写不存在一致性冲突:判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许尚未执行的控制信号立即发射,否则需要等到尚未执行的控制信号所依赖的所有控制信号全部执行完成后,尚未执行的控制信号才允许被发射。
12.根据权利要求1所述的装置,其中,数据访问单元从外部地址空间读入以下中的至少一个:输入数据、偏置数据、或卷积核。
13.一种用于执行卷积神经网络正向运算的方法,应用于如权利要求1至12中任一所述用于执行卷积神经网络正向运算的装置,该方法包括:
采用控制器单元读取指令,将所述指令译成控制所述数据访问单元、所述主运算模块和所述从运算模块行为的控制信号;
采用数据访问单元执行所述装置的片外存储的地址空间与所述装置之间的数据或指令读写操作;
采用从运算模块输入数据和各自的卷积核并行执行卷积运算,获得对应的输出标量;
采用互连模块所述主运算模块和所述从运算模块之间的数据传输,在神经网络全连接层正向运算开始之前,主运算模块通过互连模块将输入数据输送到每一个从运算模块,在从运算模块的计算过程结束后,互连模块逐级将各从运算模块的输出标量拼成中间结果,输送回主运算模块;
采用主运算模块根据所述中间结果获得偏置结果,并利用偏置结果执行激活函数操作。
14.根据权利要求13所述的方法,其中,所述方法还包括:
采用指令存储单元,通过所述数据访问单元读入指令并存储读入的指令。
15.根据权利要求14所述的方法,其中,所述指令包括至少1个操作码和至少1个操作域,其中,操作码用于指示该指令的功能;操作域用于指示该指令的数据信息,所述指令包括卷积神经网络COMPUTE指令。
16.根据权利要求15所述的方法,其中,卷积神经网络COMPUTE指令包括以下至少一种:卷积神经网络sigmoid指令,根据该指令,所述装置分别从存储单元的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做sigmoid激活;卷积神经网络TanH指令,根据该指令,装置分别从存储单元的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做TanH激活;卷积神经网络ReLU指令,根据该指令,装置分别从存储单元的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做ReLU激活;卷积神经网络group指令,根据该指令,装置分别从存储单元的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,然后将输出结果做激活;以及用于进行线性激活操作的运算指令。
17.根据权利要求14所述的方法,其中所述指令还包括:
CONFIG指令,用于在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
IO指令,用于从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间;
NOP指令,用于清空当前装置内部所有控制信号缓存队列中的控制信号,保证NOP指令之前的所有指令全部指令完毕,NOP指令本身不包含任何操作;
JUMP指令,用于控制将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
MOVE指令,用于将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
18.根据权利要求13所述的方法,其中,所述互连模块是所述主运算模块和所述多个从运算模块之间的连续或离散化数据的数据通路,互连模块为以下任一种结构:树状结构、环状结构、网格状结构、分级互连、总线结构。
19.根据权利要求13所述的方法,其中,采用主运算模块根据所述中间结果获得偏置结果,并利用偏置结果执行激活函数操作的步骤包括:
采用第一存储单元缓存主运算模块在计算过程中用到的输入数据和输出数据;
采用第一运算单元完成主运算模块的各种运算功能;
采用第一数据依赖关系判定单元保证对所述第一存储单元的数据读写不存在一致性冲突,并且负责从所述第一存储单元读取输入的神经元向量,并通过互连模块发送给所述从运算模块;以及来自所述互连模块的中间结果向量被发送到所述第一运算单元。
20.根据权利要求13所述的方法,其中,采用从运算模块输入数据和各自的卷积核并行执行卷积运算获得对应的输出标量的步骤包括:
采用第二运算单元接收控制器单元发出的控制信号并进行算数逻辑运算;
采用第二数据依赖关系判定单元负责计算过程中对第二存储单元和第三存储单元的读写操作,保证对第二存储单元和第三存储单元的读写不存在一致性冲突;
采用第二存储单元缓存输入数据以及该从运算模块计算得到的输出标量;以及
采用第三存储单元缓存该从运算模块在计算过程中需要的卷积核。
21.根据权利要求19所述的方法,其中,所述第一数据依赖关系判定单元通过以下方式保证读写不存在一致性冲突:判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许尚未执行的控制信号立即发射,否则需要等到尚未执行的控制信号所依赖的所有控制信号全部执行完成后,尚未执行的控制信号才允许被发射。
22.根据权利要求19所述的方法,其中,所述第一数据依赖关系判定单元通过以下方式保证读写不存在一致性冲突:判断尚未执行的控制信号与正在执行过程中的控制信号的数据之间是否存在依赖关系,如果不存在,允许尚未执行的控制信号立即发射,否则需要等到尚未执行的控制信号所依赖的所有控制信号全部执行完成后,尚未执行的控制信号才允许被发射。
23.根据权利要求13所述的方法,其中,所述数据访问单元从外部地址空间读入以下中的至少一个:输入数据、偏置数据、或卷积核。
24.一种用于执行单层卷积神经网络正向运算的方法,包括:
在指令存储单元的首地址处预先存入一条IO指令;
运算开始,控制器单元从指令存储单元的首地址读取该条IO指令,根据译出的控制信号,数据访问单元从外部地址空间读取相应的所有卷积神经网络运算指令,并将其缓存在指令存储单元中;
控制器单元接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元从外部地址空间读取主运算模块需要的所有数据至主运算模块的第一存储单元;
控制器单元接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元从外部地址空间读取从运算模块需要的卷积核数据;
控制器单元接着从指令存储单元读入下一条CONFIG指令,根据译出的控制信号,装置配置该层神经网络计算需要的各种常数;
控制器单元接着从指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,主运算模块首先通过互连模块将卷积窗口内的输入数据发给各从运算模块,保存至从运算模块的第二存储单元,之后,在依据指令移动卷积窗口;
根据COMPUTE指令译出的控制信号,从运算模块的运算单元从第三存储单元读取卷积核,从第二存储单元读取输入数据,完成输入数据和卷积核的卷积运算,将得到的输出标量通过互连模块返回;
在互连模块中,各从运算模块返回的输出标量被逐级拼成完整的中间向量;
主运算模块得到互连模块返回的中间向量,卷积窗口遍历所有输入数据,主运算模块将所有返回向量拼接成中间结果,根据COMPUTE指令译出的控制信号,从第一存储单元读取偏置数据,与中间结果通过向量加单元相加得到偏置结果,然后激活单元对偏置结果做激活,并将最后的输出数据写回至第一存储单元中;
控制器单元接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元将第一存储单元中的输出数据存至外部地址空间指定地址,运算结束。
25.一种用于执行多层卷积神经网络正向运算的方法,包括:
对每一层执行根据权利要求13至24中任一所述的方法,当上一层卷积神经网络执行完毕后,本层的运算指令将主运算单元中存储的上一层的输出数据地址作为本层的输入数据地址,并且指令中的卷积核和偏置数据地址变更至本层对应的地址。
26.一种电子设备,包括权利要求1-12任一所述的用于执行卷积神经网络正向运算的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010616975.2A CN111860813B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010616975.2A CN111860813B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
CN201610282534.7A CN107329734B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610282534.7A Division CN107329734B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111860813A CN111860813A (zh) | 2020-10-30 |
CN111860813B true CN111860813B (zh) | 2024-01-16 |
Family
ID=60161791
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010616975.2A Active CN111860813B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
CN201710903509.0A Active CN107704267B (zh) | 2016-04-29 | 2016-04-29 | 一种卷积神经网络运算指令及其方法 |
CN201811148189.3A Active CN109086877B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
CN201610282534.7A Active CN107329734B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710903509.0A Active CN107704267B (zh) | 2016-04-29 | 2016-04-29 | 一种卷积神经网络运算指令及其方法 |
CN201811148189.3A Active CN109086877B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
CN201610282534.7A Active CN107329734B (zh) | 2016-04-29 | 2016-04-29 | 一种用于执行卷积神经网络正向运算的装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10592801B2 (zh) |
EP (1) | EP3451157B1 (zh) |
KR (1) | KR102402111B1 (zh) |
CN (4) | CN111860813B (zh) |
WO (1) | WO2017185386A1 (zh) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860813B (zh) | 2016-04-29 | 2024-01-16 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
US10908962B1 (en) * | 2017-06-12 | 2021-02-02 | Apple Inc. | System and method to share GPU resources |
CN109784125A (zh) * | 2017-11-10 | 2019-05-21 | 福州瑞芯微电子股份有限公司 | 深度学习网络处理装置、方法及图像处理单元 |
US11468332B2 (en) * | 2017-11-13 | 2022-10-11 | Raytheon Company | Deep neural network processor with interleaved backpropagation |
CN111105024B (zh) * | 2017-12-14 | 2024-03-01 | 中科寒武纪科技股份有限公司 | 神经网络处理器板卡及相关产品 |
WO2019114842A1 (zh) | 2017-12-14 | 2019-06-20 | 北京中科寒武纪科技有限公司 | 一种集成电路芯片装置 |
CN109961136B (zh) * | 2017-12-14 | 2020-05-19 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109978157B (zh) * | 2017-12-28 | 2020-06-02 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109978158B (zh) * | 2017-12-28 | 2020-05-12 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109976887B (zh) * | 2017-12-28 | 2020-03-24 | 中科寒武纪科技股份有限公司 | 调度方法及相关装置 |
CN109978155A (zh) * | 2017-12-28 | 2019-07-05 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN109074335A (zh) * | 2017-12-29 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 数据处理方法、设备、dma控制器及计算机可读存储介质 |
CN109993292B (zh) | 2017-12-30 | 2020-08-04 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
WO2019129302A1 (zh) | 2017-12-30 | 2019-07-04 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN113807510B (zh) | 2017-12-30 | 2024-05-10 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109993290B (zh) * | 2017-12-30 | 2021-08-06 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN110163349B (zh) * | 2018-02-12 | 2021-03-23 | 上海寒武纪信息科技有限公司 | 一种网络模型的计算方法及装置 |
CN110147249B (zh) * | 2018-02-12 | 2021-02-09 | 上海寒武纪信息科技有限公司 | 一种网络模型的计算方法及装置 |
CN110197263B (zh) * | 2018-02-27 | 2020-10-09 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
WO2019190185A1 (ko) * | 2018-03-30 | 2019-10-03 | 삼성에스디에스 주식회사 | 인공지능을 이용한 시계열 데이터 학습 및 분석 방법 |
CN108470211B (zh) * | 2018-04-09 | 2022-07-12 | 郑州云海信息技术有限公司 | 一种卷积计算的实现方法、设备和计算机存储介质 |
US11941501B2 (en) * | 2018-05-30 | 2024-03-26 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
CN110728364A (zh) * | 2018-07-17 | 2020-01-24 | 上海寒武纪信息科技有限公司 | 一种运算装置和运算方法 |
CN110874605B (zh) * | 2018-08-31 | 2024-05-03 | 嘉楠明芯(北京)科技有限公司 | 图像识别处理方法和装置 |
CN110874632B (zh) * | 2018-08-31 | 2024-05-03 | 嘉楠明芯(北京)科技有限公司 | 图像识别处理方法和装置 |
US11423284B2 (en) * | 2018-09-07 | 2022-08-23 | Black Sesame Technologies, Inc | Subgraph tile fusion in a convolutional neural network |
US10331983B1 (en) * | 2018-09-11 | 2019-06-25 | Gyrfalcon Technology Inc. | Artificial intelligence inference computing device |
CN109146065B (zh) * | 2018-09-30 | 2021-06-08 | 中国人民解放军战略支援部队信息工程大学 | 二维数据的卷积运算方法及装置 |
CN111047027A (zh) * | 2018-10-12 | 2020-04-21 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111062483A (zh) * | 2018-10-16 | 2020-04-24 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111124497B (zh) * | 2018-10-11 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111026440B (zh) * | 2018-10-09 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN110096283A (zh) * | 2018-10-12 | 2019-08-06 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN110096310B (zh) * | 2018-11-14 | 2021-09-03 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN110119807B (zh) * | 2018-10-12 | 2021-11-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111079911B (zh) * | 2018-10-19 | 2021-02-09 | 中科寒武纪科技股份有限公司 | 运算方法、系统及相关产品 |
CN111079915B (zh) * | 2018-10-19 | 2021-01-26 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
US11354888B2 (en) * | 2018-11-16 | 2022-06-07 | GM Global Technology Operations LLC | Method and apparatus for a neural network |
CN111260045B (zh) * | 2018-11-30 | 2022-12-02 | 上海寒武纪信息科技有限公司 | 译码器和原子指令解析方法 |
CN109558564B (zh) * | 2018-11-30 | 2022-03-11 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
TWI696961B (zh) | 2018-12-12 | 2020-06-21 | 財團法人工業技術研究院 | 深度神經網路硬體加速器與其操作方法 |
CN109726800B (zh) * | 2018-12-29 | 2019-12-24 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109736910A (zh) * | 2019-01-14 | 2019-05-10 | 珠海格力电器股份有限公司 | 蒸汽处理方法和烹饪器具 |
US11526753B2 (en) * | 2019-02-12 | 2022-12-13 | Irida Labs S.A. | System and a method to achieve time-aware approximated inference |
CN109857460B (zh) * | 2019-02-20 | 2021-09-21 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
CN111626399B (zh) * | 2019-02-27 | 2023-07-28 | 中国科学院半导体研究所 | 卷积神经网络计算装置、数据计算方法 |
WO2020191573A1 (en) * | 2019-03-25 | 2020-10-01 | Hangzhou Fabu Technology Co. Ltd | Acceleration method, apparatus and system on chip |
CN111831328A (zh) * | 2019-04-18 | 2020-10-27 | 华为技术有限公司 | 数据处理的方法及装置 |
CN111966306A (zh) * | 2019-05-20 | 2020-11-20 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
US20210089873A1 (en) * | 2019-09-24 | 2021-03-25 | Alibaba Group Holding Limited | Apparatus and system for execution of neural network |
CN111047036B (zh) * | 2019-12-09 | 2023-11-14 | Oppo广东移动通信有限公司 | 神经网络处理器、芯片和电子设备 |
CN110851787B (zh) * | 2020-01-14 | 2020-05-08 | 中科寒武纪科技股份有限公司 | 合并指令处理方法、装置、电子设备和存储介质 |
US11568021B2 (en) | 2020-02-21 | 2023-01-31 | Alibaba Group Holding Limited | Vector-vector multiplication techniques for processing systems |
EP3882823A1 (en) | 2020-03-17 | 2021-09-22 | Samsung Electronics Co., Ltd. | Method and apparatus with softmax approximation |
CN112348179B (zh) * | 2020-11-26 | 2023-04-07 | 湃方科技(天津)有限责任公司 | 一种高效的卷积神经网络运算指令集架构构建方法及装置、服务器 |
CN112597079B (zh) * | 2020-12-22 | 2023-10-17 | 上海安路信息科技股份有限公司 | 卷积神经网络加速器的数据回写系统 |
CN112799599B (zh) * | 2021-02-08 | 2022-07-15 | 清华大学 | 一种数据存储方法、计算核、芯片和电子设备 |
CN112596684B (zh) | 2021-03-08 | 2021-06-22 | 成都启英泰伦科技有限公司 | 一种用于语音深度神经网络运算的数据存储方法 |
CN114154624A (zh) * | 2021-12-07 | 2022-03-08 | 广州小鹏自动驾驶科技有限公司 | 基于卷积神经网络的数据处理方法、装置及设备 |
CN114492781A (zh) * | 2022-04-02 | 2022-05-13 | 苏州浪潮智能科技有限公司 | 一种硬件加速器及数据处理方法、系统、设备、介质 |
CN115393174B (zh) * | 2022-10-27 | 2023-03-24 | 之江实验室 | 一种粗粒度的图像神经网络加速器指令集架构方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346622A (zh) * | 2013-07-31 | 2015-02-11 | 富士通株式会社 | 卷积神经网络分类器及其分类方法和训练方法 |
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
WO2016030230A1 (fr) * | 2014-08-28 | 2016-03-03 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Reseau de neurones convolutionnels |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
Family Cites Families (18)
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 |
US5583964A (en) * | 1994-05-02 | 1996-12-10 | Motorola, Inc. | Computer utilizing neural network and method of using same |
US6606614B1 (en) * | 2000-08-24 | 2003-08-12 | Silicon Recognition, Inc. | Neural network integrated circuit with fewer pins |
CN100545804C (zh) * | 2003-08-18 | 2009-09-30 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微控制器及其指令集的实现方法 |
CN1331092C (zh) * | 2004-05-17 | 2007-08-08 | 中国科学院半导体研究所 | 模式识别专用神经网络计算机系统 |
US7747070B2 (en) * | 2005-08-31 | 2010-06-29 | Microsoft Corporation | Training convolutional neural networks on graphics processing units |
JP5171118B2 (ja) * | 2007-06-13 | 2013-03-27 | キヤノン株式会社 | 演算処理装置及びその制御方法 |
JP5376920B2 (ja) * | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
CN102637157B (zh) * | 2011-02-15 | 2014-12-03 | 郑磊 | 一种片上数字模板系统dtsoc |
KR101382703B1 (ko) * | 2012-08-28 | 2014-04-08 | 인하대학교 산학협력단 | 증강현실 기술과 대용량 데이터의 통합을 위한 상호작용 방법 및 장치 |
US9153230B2 (en) * | 2012-10-23 | 2015-10-06 | Google Inc. | Mobile speech recognition hardware accelerator |
US9811775B2 (en) * | 2012-12-24 | 2017-11-07 | Google Inc. | Parallelizing neural networks during training |
CN103199806B (zh) * | 2013-02-04 | 2015-12-02 | 中国科学院电子学研究所 | 对传感器信号处理的可编程的模拟单元 |
CN103150596B (zh) * | 2013-02-22 | 2015-12-23 | 百度在线网络技术(北京)有限公司 | 一种反向传播神经网络dnn的训练系统 |
CN104809426B (zh) * | 2014-01-27 | 2019-04-05 | 日本电气株式会社 | 卷积神经网络的训练方法、目标识别方法及装置 |
CN104063719B (zh) * | 2014-06-27 | 2018-01-26 | 深圳市赛为智能股份有限公司 | 基于深度卷积网络的行人检测方法及装置 |
CN105184366B (zh) * | 2015-09-15 | 2018-01-09 | 中国科学院计算技术研究所 | 一种时分复用的通用神经网络处理器 |
CN111860813B (zh) | 2016-04-29 | 2024-01-16 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络正向运算的装置和方法 |
-
2016
- 2016-04-29 CN CN202010616975.2A patent/CN111860813B/zh active Active
- 2016-04-29 CN CN201710903509.0A patent/CN107704267B/zh active Active
- 2016-04-29 CN CN201811148189.3A patent/CN109086877B/zh active Active
- 2016-04-29 CN CN201610282534.7A patent/CN107329734B/zh active Active
- 2016-05-04 EP EP16899897.9A patent/EP3451157B1/en active Active
- 2016-05-04 KR KR1020187033947A patent/KR102402111B1/ko active IP Right Grant
- 2016-05-04 WO PCT/CN2016/080967 patent/WO2017185386A1/zh active Application Filing
-
2018
- 2018-10-29 US US16/174,155 patent/US10592801B2/en active Active
-
2019
- 2019-12-11 US US16/709,961 patent/US20200110983A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346622A (zh) * | 2013-07-31 | 2015-02-11 | 富士通株式会社 | 卷积神经网络分类器及其分类方法和训练方法 |
WO2016030230A1 (fr) * | 2014-08-28 | 2016-03-03 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Reseau de neurones convolutionnels |
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
Non-Patent Citations (1)
Title |
---|
DaDianNao: A Machine-Learning Supercomputer;Yun ji Chen 等;2014 47th Annual IEEE/ACM International Symposium on Microarchitecture;609-622 * |
Also Published As
Publication number | Publication date |
---|---|
CN107704267B (zh) | 2020-05-08 |
KR20190003610A (ko) | 2019-01-09 |
CN107329734A (zh) | 2017-11-07 |
EP3451157A1 (en) | 2019-03-06 |
WO2017185386A1 (zh) | 2017-11-02 |
US20190073583A1 (en) | 2019-03-07 |
US10592801B2 (en) | 2020-03-17 |
CN109086877A (zh) | 2018-12-25 |
CN107329734B (zh) | 2020-08-07 |
EP3451157A4 (en) | 2020-01-15 |
CN107704267A (zh) | 2018-02-16 |
US20200110983A1 (en) | 2020-04-09 |
KR102402111B1 (ko) | 2022-05-25 |
CN109086877B (zh) | 2020-05-08 |
EP3451157B1 (en) | 2023-09-27 |
CN111860813A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111860813B (zh) | 一种用于执行卷积神经网络正向运算的装置和方法 | |
CN111860812B (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
CN111860811B (zh) | 一种用于执行人工神经网络全连接层正向运算的装置和方法 | |
CN107832843B (zh) | 一种信息处理方法及相关产品 | |
CN110929863B (zh) | 用于执行lstm运算的装置和方法 | |
KR102470264B1 (ko) | 완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법 | |
CN109358900B (zh) | 支持离散数据表示的人工神经网络正向运算装置和方法 | |
CN107886166B (zh) | 一种执行人工神经网络运算的装置和方法 | |
CN109754062B (zh) | 卷积扩展指令的执行方法以及相关产品 | |
EP3451238A1 (en) | Apparatus and method for executing pooling operation | |
EP3451240A1 (en) | Apparatus and method for performing auto-learning operation of artificial neural network | |
CN111860772B (zh) | 一种用于执行人工神经网络pooling运算的装置和方法 |
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 |