CN111860812B - 一种用于执行卷积神经网络训练的装置和方法 - Google Patents

一种用于执行卷积神经网络训练的装置和方法 Download PDF

Info

Publication number
CN111860812B
CN111860812B CN202010615117.6A CN202010615117A CN111860812B CN 111860812 B CN111860812 B CN 111860812B CN 202010615117 A CN202010615117 A CN 202010615117A CN 111860812 B CN111860812 B CN 111860812B
Authority
CN
China
Prior art keywords
data
unit
module
output
neural network
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
Application number
CN202010615117.6A
Other languages
English (en)
Other versions
CN111860812A (zh
Inventor
陈云霁
支天
刘少礼
郭崎
陈天石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202010615117.6A priority Critical patent/CN111860812B/zh
Publication of CN111860812A publication Critical patent/CN111860812A/zh
Application granted granted Critical
Publication of CN111860812B publication Critical patent/CN111860812B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/048Activation functions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种执行卷积神经网络反向训练的装置和方法,其中装置部分包括了指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、以及多个从运算模块。对于每一层来说,首先对输入神经元向量依据卷积窗口进行数据选择,然后依据选择得到的来自前一层的数据和来自后一层的数据梯度作为本装置运算单元的输入,计算并且更新卷积核,其次依据卷积核、数据的梯度以及激活函数的导函数,计算得到本装置输出的数据梯度,并且存入存储器以输出给前一层进行反向传播计算。本发明将参与计算的数据和权重参数暂存在高速暂存存储器上,使得可以更加灵活有效地支持卷积神经网络反向训练运算,提升包含大量访存应用的执行性能。

Description

一种用于执行卷积神经网络训练的装置和方法
技术领域
本发明涉及一种用于执行卷积神经网络反向训练的装置和方法,用于根据卷积神经网络反向训练运算指令高效灵活地执行卷积神经网络反向训练运算,能够很好地解决当前计算机领域越来越多的算法包含大量卷积神经网络反向训练运算的问题。
背景技术
卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简单、训练参数少和适应性强、平移、旋转、缩放等特点。由于CNN/DNN的特征检测层通过训练数据进行学习,所以在使用CNN/DNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。
本发明提供的卷积神经网络训练算法的流程图,如图1所示,其流程包括两个阶段:
第一阶段,向前传播阶段:
a)从样本集中取一个样本(X,Yp),将X输入网络;
b)计算相应的实际输出Op。
在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果):
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
第二阶段,向后传播阶段
a)算实际输出Op与相应的理想输出Yp的差;
b)按极小化误差的方法反向传播调整权矩阵。
在已有的计算机领域应用中,与卷积运算相关的应用十分普遍。本发明专注于卷积神经网络,目前可以执行此种运算的主流装置如下:
在现有技术中,一种进行卷积神经网络反向训练运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行卷积神经网络反向训练运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行卷积神经网络反向训练运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。
在另一种现有技术中,使用图形处理器(GPU)来进行向量计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行卷积神经网络反向训练运算。然而,上述方案中,GPU片上缓存太小,在进行大规模卷积神经网络反向训练运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。
发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种支持卷积神经网络反向训练的装置,解决现有技术中存在的受限于片间通讯、片上缓存不够等问题。
(二)技术方案
本发明的一个方面提供了一种用于执行卷积神经网络反向训练的装置,包括指令存储单元、控制器单元、数据访问单元、互连模块、主运算模块、多个从运算模块,其中:
指令存储单元用于存储指令;
控制器单元用于从指令存储单元读取指令,并将该指令译码成控制互连模块、主运算模块、以及所述多个从运算模块行为的控制信号;
数据访问单元执行外部地址空间与所述装置之间的数据或指令读写操作;
在每层神经网络反向训练开始计算的阶段,主运算模块通过互连模块向所有的从运算模块传输本层的输入数据;
每个从运算模块计算自身的卷积核与输入数据的点积作为中间结果部分和,该卷积核与该中间结果部分和相对应;
在从运算模块的计算过程完成后,互连模块逐级将各从运算模块的输出数据部分和拼接得到本层的中间结果;
主运算模块在每一层的计算过程中,利用本层的中间结果完成后续计算。
本发明的另一方面提供了一种执行卷积神经网络指令的方法。
(三)有益效果
本发明提供的卷积神经网络反向训练运算装置及配套指令,将参与计算的输入数据、输出梯度和卷积核暂存在高速暂存存储器上(Scratchpad Memory)。在仅发送同一条指令的情况下,卷积神经网络反向训练运算单元中可以更加灵活有效地支持不同宽度的数据,并可以解决数据存储中的相关性问题,从而提升了包含大量卷积神经网络计算任务的执行性能,本发明采用的指令具有精简的格式,使得指令集使用方便、支持的向量长度灵活。
本发明可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。
附图说明
图1是卷积神经网络反向训练算法的流程图
图2是本发明提供的支持卷积神经网络反向训练装置的指令示意图。
图3示出了根据本发明实施例的用于执行人工神经网络卷积层训练运算的装置的整体结构的示例框图。
图4示意性示出了根据本发明实施例的用于执行人工神经网络卷积层训练运算的装置中互连模块的结构。
图5示出了根据本发明实施例的用于执行人工神经网络卷积层训练运算的装置中主运算模块结构的示例框图。
图6示出了根据本发明实施例的用于执行人工神经网络卷积层训练运算的装置中从运算模块结构的示例框图。
图7示出了根据本发明实施例的神经网络卷积层训练运算过程的示例框图。
具体实施方式
本发明提供一种卷积神经网络反向训练装置及配套指令集,包括存储单元、寄存器单元和卷积神经网络反向训练运算单元,存储单元中存储有数据、输入输出数据梯度和卷积核,寄存器单元中存储有数据、输入输出数据梯度和卷积核存储的地址,首先对输入神经元向量依据卷积窗口,对来自前一层的输出数据进行数据选择得到当前层的输入数据,然后依据选择得到的输入数据和来自当前层的后一层的输出数据的梯度,计算并且更新卷积核,其次依据卷积核和输出数据的梯度以及激活函数的导函数,计算得到输入数据的梯度,并且存入存储器以进行下一层计算。将输入数据的梯度作为下一层的输出数据的梯度。本发明将参与计算的输入数据和卷积核暂存在高速暂存存储器上,使得卷积神经网络反向训练运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量卷积神经网络反向训练计算任务的执行性能。
图1为卷积神经网络反向训练算法示意图,如图所示,包含卷积神经网络输入数据,激活函数的导函数,输出数据的梯度,和卷积核。
首先,其反向训练的每一层计算过程,首先需要依据卷积窗口,从当前层的前一层的输出数据中选取出对应本层运算模块的输入数据,然后依据这部分输入数据和来自当前层的后一层的数据梯度进行向量乘向量运算,得到卷积核的梯度,该梯度是一个标量。其卷积核的梯度计算过程为dw=∑xidsi,即每个从运算模块将来自前一层的数据x乘以来自后一层的数据梯度ds,在卷积窗口遍历完数据之后,对进行求和,得到该卷积核对应的梯度,最后,主运算模块求解当前层所有的从运算模块的卷积核的梯度对应的平方平均数当c大于阈值时t,所有梯度进行缩放dw′=dw/c*t,最后,依据新的卷积核的梯度更新卷积核的值。
同时,主运算模块依据卷积核和当前层的输入数据,可以得到要输出到前一层的数据梯度dx=h(x)∑widsi,其中,ds为与当前层的输入数据x有相互关系的当前层的输出数据梯度,w为该输入数据x和输出数据的梯度ds对应的卷积核数据,h(x)为该输入数据对应的激活函数的导函数的值。即将卷积核与来自后一层的数据梯度进行乘加运算,然后乘以当前层的输入数据对应的激活函数的导函数的值,得到输出给前一层的数据梯度,最后,将该梯度输出到存储器,用以进行其前一层的卷积神经网络反向训练运算。
卷积窗口依据卷积核的大小kx和ky,在大小为W和H的输入数据集上,从最开始选取出和卷积核同样大小的输入数据,然后依据卷积窗口的平移位矢Sx和Sy,以此先作水平平移,然后再做垂直平移,将整幅输入图像做遍历。
图2是本发明提供的指令集的格式示意图,如图2所示,卷积神经网络反向训练运算指令包括1个操作码和7个操作域,其中,操作码用于指示该卷积神经网络反向训练运算指令的功能,卷积神经网络反向训练运算单元通过识别该操作码可进行卷积神经网络反向训练运算,操作域用于指示该卷积神经网络反向训练运算指令的数据信息,其中,数据信息可以是立即数或寄存器号,包括输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,输出梯度的起始地址和数据长度以及激活函数的类型。
指令集包含有不同功能的卷积神经网络COMPUTE指令以及CONFIG指令、IO指令、NOP指令、JUMP指令和MOVE指令。在一种实施例中,COMPUTE指令包括:
卷积神经网络sigmoid指令。根据该指令,装置分别从高速暂存存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做sigmoid激活。
卷积神经网络TanH指令。根据该指令,装置分别从高速暂存存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做TanH激活。
卷积神经网络ReLU指令。根据该指令,装置分别从高速暂存存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后将输出结果做ReLU激活。
卷积神经网络group指令。根据该指令,装置分别从高速暂存存储器的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,然后将输出结果做激活。
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的一种结构。互连模块4构成主运算模块5和多个从运算模块6之间的数据通路,并且是具有H树型的结构。H树是由多个节点构成的二叉树通路,每个节点将上游的数据同样地发给下游的两个节点,将下游的两个节点返回的数据进行合并,并返回给上游的节点。例如,在人工神经网络卷积层训练开始计算阶段,主运算模块5内的神经元数据通过互连模块4发送给各个从运算模块6;当从运算模块6的计算过程完成后,当从运算模块的计算过程完成后,首先进行卷积核更新,然后每个从运算模块输出的神经元的值会在互连模块中逐级拼成一个完整的由神经元组成的向量,作为中间结果向量。举例说明,假设装置中共有N个从运算模块,则中间结果向量按N分段,每段有N个元素,第i个从运算模块计算每段中的第i个元素。N个元素经过互连模块拼成长度为N的向量并返回给主运算模块。所以如果网络只有N个输出神经元,则每个从运算单元只需输出单个神经元的值,若网络有m*N个输出神经元,则每个从运算单元需输出m个神经元值。
图5示出了根据本发明实施例的用于执行人工神经网络卷积层反向训练运算的装置中主运算模块5的结构的示例框图。如图5所示,主运算模块5包括第一运算单元51、第一数据依赖关系判断单元52和第一存储单元53。
其中,第一运算单元51包括向量加法单元511以及激活单元512。第一运算单元51接收来自控制器单元的控制信号,完成主运算模块5的各种运算功能,向量加法单元511用于实现人工神经网络卷积层反向训练运算中的加偏置操作,该部件的输入为从外部地址空间读取出来的偏置向量,以及通过所述互连模块4从从运算模块6传送回来的中间结果向量,输出为向量相加后的值,激活单元512用于实现人工神经网络卷积层激活函数导函数乘法操作。该部件的输入为通过所述互连模块4从从运算模块6传送回来的中间结果,或向量加法单元511的输出结果,输出为与激活函数导函数相乘后的输出数据梯度向量。
第一数据依赖关系判断单元52是第一运算单元51读写第一存储单元53的端口,保证神经元缓存单元中数据的读写一致性。同时,第一数据依赖关系判断单元52也负责将读取数据通过互连模块4发送给从计算模块,而从计算模块6的输出数据通过互连模块4直接发送给第一运算单元51。控制器单元2输出的指令发送给计算单元51和第一数据依赖关系判断单元52,来控制其行为;
第一存储单元53用于缓存主运算模块5在计算过程中用到的输入输出数据,输入输出数据梯度和卷积核数值。
图6示出了根据本发明实施例的用于执行人工神经网络卷积层反向训练运算的装置中从运算模块6的结构的示例框图。如图6所示,每个从运算模块6包括第二运算单元61、数据依赖关系判定单元62、第二存储单元63和第三存储单元64。
第二运算单元61首先根据输入数据和输出数据的梯度,更新卷积核。然后第二运算单元61接收控制器单元2发出的控制信号并进行点积运算。第二运算单元61包括向量乘单元611,以及累加单元612。其中,向量乘单元611用于实现神经元向量和权值向量的对位乘法,累加单元612用于实现对向量每一项累加到一起的操作。
第二数据依赖关系判断单元62负责计算过程中对神经元缓存单元的读写操作。第二数据依赖关系判断单元62执行读写操作之前会首先保证指令之间所用的数据不存在读写一致性冲突。例如,所有发往数据依赖关系单元62的控制信号都会被存入数据依赖关系单元62内部的指令队列里,在该队列中,读指令的读取数据的范围如果与队列位置靠前的写指令写数据的范围发生冲突,则该指令必须等到所依赖的写指令被执行后才能够执行。
第二存储单元63缓存该从运算模块6的输入神经元向量数据和输出神经元值数据。
第三存储单元64缓存该从运算模块6在计算过程中需要的卷积核数据。对于每一个从运算模块6,都只会存储部分输出神经元对应的部分卷积核。输出神经元按照从运算单元的个数N进行分段,每段的第n个输出神经元对应的权值存放在第n个从运算单元中。
从运算模块6实现人工神经网络卷积核层运算过程中点积运算的并行性。当对应单个卷积窗口内部的数据时,人工神经网络卷积层中,单个卷积核对应的过程为s=s(∑wx+b),并且每个人工神经网络卷积层包涵有多个卷积核,因此,可以依据卷积核,将整个卷积层的计算任务切分成多个并行的独立的任务,输出数据与输入数据是列向量,每个从运算模块6计算输出数据中的部分和所对应的卷积核与输入数据的点积,得到的每个输出向量都是最终结果的激活前的值,这些部分和在互连模块4中逐级两两合并得到最后的结果。所以计算过程变成了并行的计算部分和的过程和后面的合并的过程。每个从运算模块6计算出输出神经元值,所有的输出神经元值在互连模块4中拼成得到中间结果向量。每个从运算模块6只需要计算出中间结果向量y中与本模块对应的输出神经元值即可。互连模块4对所有从运算模块6输出的神经元值合并,得到最终的中间结果向量y。
图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读取输入数据,完成卷积核向量和输入数据的点积运算,更新第三存储单元64,计算输出数据梯度,并将中间结果通过互连模块返回。
在步骤S8,在互连模块4中,各从运算模块6返回的中间结果被逐级拼成完整的中间结果向量。
在步骤S9,主运算模块5得到互连模块4的返回值,根据COMPUTE指令译出的控制信号,从第一存储单元53读取偏置向量,与互连模块4返回的向量通过向量加单元512相加,然后激活单元511对相加结果与激活函数的导函数相乘,并将最后的输出写回至第一存储单元53中。
在步骤S10,控制器单元2接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元3将第一存储单元53中的输出的数据梯度存至外部地址空间指定地址,运算结束。
通过采用用于执行人工神经网络卷积层反向训练运算的装置和指令集,解决了CPU和GPU在进行神经网络卷积层运算时性能不足,前端译码开销大的问题。有效提高了对多层人工神经网络卷积层反向训练运算的支持。
通过采用针对多层人工神经网络卷积层反向训练运算的专用片上缓存,充分挖掘了输入神经元和卷积核数据的重用性,避免了反复向内存读取这些数据,降低了内存访问带宽,避免了内存带宽成为多层人工神经网络卷积层反向训练运算性能瓶颈的问题。
前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,被具体化在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。
在前述的说明书中,参考其特定示例性实施例描述了本发明的各实施例。显然,可对各实施例做出各种修改,而不背离所附权利要求所述的本发明的更广泛的精神和范围。相应地,说明书和附图应当被认为是说明性的,而不是限制性的。

Claims (7)

1.一种用于执行卷积神经网络反向训练的装置,包括控制器单元、数据访问单元、互连模块、主运算模块、多个从运算模块,其中:
所述控制器单元,用于读取指令,并将该指令译码成控制互连模块、主运算模块、以及所述多个从运算模块行为的控制信号;
数据访问单元用于执行从所述装置的外部地址空间与所述装置之间的数据或指令读写操作;
所述从运算模块,用于根据卷积窗口,对来自前一层的输出数据进行数据选择得到当前层的输入数据,然后依据选择得到的输入数据和来自当前层的后一层的输出数据的梯度,计算并且更新卷积核;利用所述卷积核与输入数据的点积作为中间结果部分和,该卷积核与该中间结果部分和相对应;
所述互连模块,用于将各从运算模块的输出的中间结果部分和拼接得到所述卷积神经网络对应层的中间结果,并传输至所述主运算模块;
所述主运算模块,用于执行所述卷积神经网络每一层的计算过程中,利用每层的中间结果完成后续计算。
2.根据权利要求1所述的装置,其中,所述主运算模块包括第一运算单元和第一存储单元,其中:
第一运算单元包括向量加法单元以及激活单元,第一运算单元接收来自控制器单元的控制信号,完成主运算模块的各种运算功能;
向量加法单元用于实现卷积神经网络反向训练运算中的加偏置操作,该单元的输入为从外部地址空间读取出来的偏置向量,以及通过所述互连模块从从运算模块传送回来的中间结果,输出为偏置向量与中间结果相加后的偏置结果;
激活单元用于实现卷积神经网络激活函数导函数乘法操作,该单元的输入为通过所述互连模块从所述从运算模块传送回来的中间结果,或向量加法单元输出的偏置结果,输出为所述中间结果或偏置结果与激活函数导函数相乘后的输出数据;
第一存储单元存储主运算模块在计算过程中用到的输入输出数据,输入输出数据梯度和卷积核数值。
3.根据权利要求1所述的装置,其中:所述从运算模块包括第二运算单元、第二存储单元和第三存储单元;其中,第二运算单元包括向量乘单元以及累加单元,其中,向量乘单元用于实现输入数据和卷积核的对位乘法,累加单元用于实现将对位乘法结果的每一项累加到一起的操作;
第二存储单元存储该从运算模块的输入数据和输出的中间结果部分和;
第三存储单元存储该从运算模块在计算过程中需要的卷积核数据。
4.根据权利要求1所述的装置,其中,所述主运算模块依据卷积核和当前层的输入数据,得到要输出到前一层的数据梯度dx=h(x)∑widsi,其中,ds为与当前层的输入数据x有相互关系的当前层的输出数据梯度,w为该输入数据x与输出数据的梯度ds对应的卷积核数据,h(x)为该输入数据对应的激活函数的导函数的值,即,将卷积核与来自后一层的数据梯度进行乘加运算,然后乘以当前层的输入数据对应的激活函数的导函数的值,得到输出给前一层的数据梯度,最后,将该梯度输出到外部地址空间,用以进行其前一层的卷积反向运算。
5.根据权利要求1所述的装置,其中,所述互连模块构成主运算模块和所述多个从运算模块之间的数据通路,互连模块为以下任一种结构:树状结构、环状结构、网格状结构、分级互连、总线结构。
6.根据权利要求1所述的装置,其中,所述指令包括1个操作码和7个操作域,其中,操作码用于指示该卷积神经网络反向训练运算指令的功能,操作域用于指示该卷积神经网络反向训练运算指令的数据信息,其中,数据信息是立即数或寄存器号,包括输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,输出梯度的起始地址和数据长度以及激活函数的类型。
7.根据权利要求1所述的装置,其中,所述装置还包括:指令存储单元;其中,所述指令存储单元用于存储指令。
CN202010615117.6A 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法 Active CN111860812B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010615117.6A CN111860812B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610283838.5A CN107341547B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法
CN202010615117.6A CN111860812B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201610283838.5A Division CN107341547B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法

Publications (2)

Publication Number Publication Date
CN111860812A CN111860812A (zh) 2020-10-30
CN111860812B true CN111860812B (zh) 2024-03-01

Family

ID=60160560

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202010164111.1A Active CN111310904B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法
CN202010615117.6A Active CN111860812B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法
CN201610283838.5A Active CN107341547B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010164111.1A Active CN111310904B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201610283838.5A Active CN107341547B (zh) 2016-04-29 2016-04-29 一种用于执行卷积神经网络训练的装置和方法

Country Status (5)

Country Link
US (2) US10643129B2 (zh)
EP (2) EP3944157A1 (zh)
KR (1) KR102544275B1 (zh)
CN (3) CN111310904B (zh)
WO (1) WO2017185391A1 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111310904B (zh) 2016-04-29 2024-03-08 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络训练的装置和方法
EP3451239A4 (en) * 2016-04-29 2020-01-01 Cambricon Technologies Corporation Limited APPARATUS AND METHOD FOR PERFORMING RECURRENT NEURONAL NETWORK AND LTSM CALCULATIONS
US10402527B2 (en) 2017-01-04 2019-09-03 Stmicroelectronics S.R.L. Reconfigurable interconnect
CN109961138B (zh) * 2017-12-14 2020-04-14 中科寒武纪科技股份有限公司 神经网络训练方法及相关产品
CN111160542B (zh) * 2017-12-14 2023-08-29 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109978148B (zh) * 2017-12-28 2020-06-23 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993288B (zh) * 2017-12-29 2020-04-28 中科寒武纪科技股份有限公司 神经网络处理方法、计算机系统及存储介质
CN108388446A (zh) * 2018-02-05 2018-08-10 上海寒武纪信息科技有限公司 运算模块以及方法
CN110147249B (zh) * 2018-02-12 2021-02-09 上海寒武纪信息科技有限公司 一种网络模型的计算方法及装置
CN108364061B (zh) * 2018-02-13 2020-05-05 北京旷视科技有限公司 运算装置、运算执行设备及运算执行方法
CN110163363B (zh) * 2018-02-13 2021-05-11 上海寒武纪信息科技有限公司 一种计算装置及方法
CN108829719B (zh) * 2018-05-07 2022-03-01 中国科学院合肥物质科学研究院 一种非事实类问答答案选择方法及系统
CN110728364A (zh) * 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
US11579921B2 (en) * 2018-08-29 2023-02-14 Alibaba Group Holding Limited Method and system for performing parallel computations to generate multiple output feature maps
US11423284B2 (en) * 2018-09-07 2022-08-23 Black Sesame Technologies, Inc Subgraph tile fusion in a convolutional neural network
CN109343978B (zh) * 2018-09-27 2020-10-20 苏州浪潮智能科技有限公司 一种深度学习分布式框架用的数据交换方法与装置
CN109389588A (zh) * 2018-09-28 2019-02-26 大连民族大学 度量视频连续帧与其卷积特征图间差异的方法
CN109344764A (zh) * 2018-09-28 2019-02-15 大连民族大学 度量视频连续帧与其卷积特征图间差异的系统及装置
CN111338694B (zh) * 2018-12-19 2022-05-31 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN111047028A (zh) * 2018-10-12 2020-04-21 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111045729A (zh) * 2018-10-12 2020-04-21 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN110059797B (zh) * 2018-10-10 2020-03-10 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN111047025B (zh) * 2018-10-15 2024-04-09 华为技术有限公司 一种卷积计算方法及装置
CN111078286B (zh) * 2018-10-19 2023-09-01 上海寒武纪信息科技有限公司 数据通信方法、计算系统和存储介质
US10387772B1 (en) * 2018-10-22 2019-08-20 Gyrfalcon Technology Inc. Ensemble learning based image classification systems
US11526759B2 (en) * 2018-11-05 2022-12-13 International Business Machines Corporation Large model support in deep learning
US11537853B1 (en) 2018-11-28 2022-12-27 Amazon Technologies, Inc. Decompression and compression of neural network data using different compression schemes
CN109670578A (zh) * 2018-12-14 2019-04-23 北京中科寒武纪科技有限公司 神经网络首层卷积层数据处理方法、装置及计算机设备
WO2020160608A1 (en) * 2019-02-07 2020-08-13 Ocean Logic Pty Ltd Highly parallel convolutional neural network
US11526753B2 (en) * 2019-02-12 2022-12-13 Irida Labs S.A. System and a method to achieve time-aware approximated inference
CN110058943B (zh) * 2019-04-12 2021-09-21 三星(中国)半导体有限公司 用于电子设备的内存优化方法和设备
CN110059818B (zh) * 2019-04-28 2021-01-08 山东师范大学 卷积核参数可配的神经卷积阵列电路核、处理器及电路
WO2021012215A1 (zh) * 2019-07-24 2021-01-28 华为技术有限公司 神经网络切分方法、预测方法及相关装置
CN110807170B (zh) * 2019-10-21 2023-06-27 中国人民解放军国防科技大学 多样本多通道卷积神经网络Same卷积向量化实现方法
CN111161705B (zh) * 2019-12-19 2022-11-18 寒武纪(西安)集成电路有限公司 语音转换方法及装置
CN113222101A (zh) * 2020-02-05 2021-08-06 北京百度网讯科技有限公司 深度学习处理装置、方法、设备和存储介质
US11593609B2 (en) 2020-02-18 2023-02-28 Stmicroelectronics S.R.L. Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks
IN202011021305A (zh) * 2020-05-20 2020-06-26 Hcl Technologies Ltd
US11531873B2 (en) 2020-06-23 2022-12-20 Stmicroelectronics S.R.L. Convolution acceleration with embedded vector decompression
CN112418419B (zh) * 2020-11-20 2022-10-11 复旦大学 一种面向神经网络处理的按优先级调度的数据输出电路结构
CN112633498B (zh) * 2020-12-22 2023-04-07 天津大学 基于数据流的卷积神经网络权重梯度优化方法
CN112799599B (zh) * 2021-02-08 2022-07-15 清华大学 一种数据存储方法、计算核、芯片和电子设备
CN115456149B (zh) * 2022-10-08 2023-07-25 鹏城实验室 脉冲神经网络加速器学习方法、装置、终端及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101253493A (zh) * 2005-08-31 2008-08-27 微软公司 在图形处理单元上训练卷积神经网络
CN104102919A (zh) * 2014-07-14 2014-10-15 同济大学 一种有效防止卷积神经网络过拟合的图像分类方法
CN104281858A (zh) * 2014-09-15 2015-01-14 中安消技术有限公司 三维卷积神经网络训练方法、视频异常事件检测方法及装置
CN104809426A (zh) * 2014-01-27 2015-07-29 日本电气株式会社 卷积神经网络的训练方法、目标识别方法及装置
CN104933722A (zh) * 2015-06-29 2015-09-23 电子科技大学 一种基于Spiking-卷积网络模型的图像边缘检测方法
CN105512723A (zh) * 2016-01-20 2016-04-20 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
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
CA2069811C (en) * 1991-10-03 1998-08-11 John Stewart Denker Projective training system for neural networks
JP5184824B2 (ja) * 2007-06-15 2013-04-17 キヤノン株式会社 演算処理装置及び方法
US8942430B2 (en) * 2010-07-19 2015-01-27 The University Of Maryland, College Park Method and apparatus for authenticating area biometric scanners
US8965819B2 (en) * 2010-08-16 2015-02-24 Oracle International Corporation System and method for effective caching using neural networks
US10078620B2 (en) * 2011-05-27 2018-09-18 New York University Runtime reconfigurable dataflow processor with multi-port memory access module
CN102346719B (zh) * 2011-09-20 2016-08-10 北京国科环宇空间技术有限公司 面向航天器的高速运算方法及系统
US10071687B2 (en) * 2011-11-28 2018-09-11 Magna Electronics Inc. Vision system for vehicle
CN102707931A (zh) * 2012-05-09 2012-10-03 刘大可 一种基于并行数据通道的数字信号处理器
US9153230B2 (en) * 2012-10-23 2015-10-06 Google Inc. Mobile speech recognition hardware accelerator
CN103105773A (zh) * 2012-12-27 2013-05-15 电子科技大学 基于神经网络逆辨识与自适应pid的声参量阵控制方法
CN103150596B (zh) * 2013-02-22 2015-12-23 百度在线网络技术(北京)有限公司 一种反向传播神经网络dnn的训练系统
US9679258B2 (en) * 2013-10-08 2017-06-13 Google Inc. Methods and apparatus for reinforcement learning
US9665823B2 (en) * 2013-12-06 2017-05-30 International Business Machines Corporation Method and system for joint training of hybrid neural networks for acoustic modeling in automatic speech recognition
US10373047B2 (en) * 2014-02-28 2019-08-06 Educational Testing Service Deep convolutional neural networks for automated scoring of constructed responses
CN113255885A (zh) * 2014-04-11 2021-08-13 谷歌有限责任公司 使卷积神经网络的训练并行化
US9346167B2 (en) * 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
CN103971163B (zh) * 2014-05-09 2017-02-15 哈尔滨工程大学 一种基于归一化最小均方自适应滤波的自适应学习率小波神经网络控制方法
US20160026912A1 (en) * 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
CN104103033B (zh) * 2014-08-05 2017-06-06 广州国米科技有限公司 图像实时处理方法
US10417525B2 (en) * 2014-09-22 2019-09-17 Samsung Electronics Co., Ltd. Object recognition with reduced neural network weight precision
US10387773B2 (en) * 2014-10-27 2019-08-20 Ebay Inc. Hierarchical deep convolutional neural network for image classification
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN104537393B (zh) * 2015-01-04 2018-01-16 大连理工大学 一种基于多分辨率卷积神经网络的交通标志识别方法
CN205139973U (zh) * 2015-10-26 2016-04-06 中国人民解放军军械工程学院 基于fpga器件构建的bp神经网络
CN111310904B (zh) 2016-04-29 2024-03-08 中科寒武纪科技股份有限公司 一种用于执行卷积神经网络训练的装置和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101253493A (zh) * 2005-08-31 2008-08-27 微软公司 在图形处理单元上训练卷积神经网络
CN104809426A (zh) * 2014-01-27 2015-07-29 日本电气株式会社 卷积神经网络的训练方法、目标识别方法及装置
CN104102919A (zh) * 2014-07-14 2014-10-15 同济大学 一种有效防止卷积神经网络过拟合的图像分类方法
CN104281858A (zh) * 2014-09-15 2015-01-14 中安消技术有限公司 三维卷积神经网络训练方法、视频异常事件检测方法及装置
CN104933722A (zh) * 2015-06-29 2015-09-23 电子科技大学 一种基于Spiking-卷积网络模型的图像边缘检测方法
CN105512723A (zh) * 2016-01-20 2016-04-20 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DaDianNao: A Machine-Learning Supercomputer;Yunji Chen 等;2014 47th Annual IEEE/ACM International Symposium on Microarchitecture;第609-622页 *
Yunji Chen 等.DaDianNao: A Machine-Learning Supercomputer.2014 47th Annual IEEE/ACM International Symposium on Microarchitecture.2014,第609-622页. *
林建忠 编.金融信息分析.上海交通大学出版社,2015,第174-179页. *

Also Published As

Publication number Publication date
EP3944157A1 (en) 2022-01-26
CN111310904A (zh) 2020-06-19
EP3451241A1 (en) 2019-03-06
KR20190004306A (ko) 2019-01-11
US10643129B2 (en) 2020-05-05
CN111310904B (zh) 2024-03-08
EP3451241A4 (en) 2019-12-25
US20200111007A1 (en) 2020-04-09
WO2017185391A1 (zh) 2017-11-02
KR102544275B1 (ko) 2023-06-16
CN107341547A (zh) 2017-11-10
CN111860812A (zh) 2020-10-30
CN107341547B (zh) 2021-04-20
US20190065959A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
CN111860812B (zh) 一种用于执行卷积神经网络训练的装置和方法
CN111860813B (zh) 一种用于执行卷积神经网络正向运算的装置和方法
CN110929863B (zh) 用于执行lstm运算的装置和方法
US11922132B2 (en) Information processing method and terminal device
CN111860811B (zh) 一种用于执行人工神经网络全连接层正向运算的装置和方法
KR102470264B1 (ko) 완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법
CN111353589B (zh) 用于执行人工神经网络正向运算的装置和方法
CN110135581B (zh) 用于执行人工神经网络反向运算的装置和方法
CN109358900B (zh) 支持离散数据表示的人工神经网络正向运算装置和方法
WO2017185347A1 (zh) 用于执行循环神经网络和lstm运算的装置和方法
CN111260025A (zh) 用于执行lstm神经网络运算的装置和运算方法
EP3451238A1 (en) Apparatus and method for executing pooling operation
CN111860772B (zh) 一种用于执行人工神经网络pooling运算的装置和方法
CN111340200B (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
GR01 Patent grant
GR01 Patent grant