CN106203621A - 用于卷积神经网络计算的处理器 - Google Patents

用于卷积神经网络计算的处理器 Download PDF

Info

Publication number
CN106203621A
CN106203621A CN201610543294.1A CN201610543294A CN106203621A CN 106203621 A CN106203621 A CN 106203621A CN 201610543294 A CN201610543294 A CN 201610543294A CN 106203621 A CN106203621 A CN 106203621A
Authority
CN
China
Prior art keywords
input
unit
output
channel
data
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
Application number
CN201610543294.1A
Other languages
English (en)
Other versions
CN106203621B (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.)
Xilinx Technology Beijing Ltd
Original Assignee
姚颂
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 姚颂 filed Critical 姚颂
Priority to CN201610543294.1A priority Critical patent/CN106203621B/zh
Publication of CN106203621A publication Critical patent/CN106203621A/zh
Application granted granted Critical
Publication of CN106203621B publication Critical patent/CN106203621B/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/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
    • 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
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
    • 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
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • 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
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

本发明公开了一种用于卷积神经网络计算的处理器。其中,处理器中设置了多个并行的计算单元,每个计算单元可以针对其所对应的对应输出通道,基于N个输入通道的输入数据和分别分配给对应输出通道的权重组,计算对应输出通道的输出数据。上述多个计算单元可以同步地接收N个输入通道的输入数据,并且同步地进行计算。由此,本发明的处理器在用于卷积神经网络计算时,可以实现并行化计算,从而可以大大缩短完成整个卷积神经网络计算所需的时间。

Description

用于卷积神经网络计算的处理器
技术领域
本发明涉及卷积神经网络计算领域,特别涉及一种用于卷积神经网络计算的处理器。
背景技术
卷积神经网络(Convolutional Neural Network,以下简称CNN)近年来成为图像识别领域的研究热点。经过训练后的CNN模型,可以用于图像分类、物体识别与显著性检测等诸多领域。
CNN主要由三部分组成:卷积层、降采样层以及全连接层。通过改变不同层的数目、相互间的级联方式以及层内的配置,可以获得不同的网络结构。
现有的大部分CNN的实现主要是基于通用处理器CPU实现的。在CNN网络结构中,层内计算是独立不相关的,而层间结构可以理解为是一个流水线结构。通用处理器CPU由于其自身特点无法充分地挖掘CNN内部的并行性,在进行CNN计算时,会增加CNN的计算规模,提升CNN计算的复杂度。
由此,需要一种能够对卷积神经网络计算过程进行优化的处理器。
发明内容
本发明主要解决的技术问题是提供一种用于卷积神经网络计算的处理器,其可以实现CNN的层内计算并行化,从而能够实现对卷积神经网络计算过程的优化。
根据本发明的一个方面,提供了一种用于卷积神经网络计算的处理器,其基于N个输入通道的输入数据分别计算M个输出通道的输出数据,其中N和M是大于或等于2的自然数,该处理器包括:m个计算单元,每个计算单元用于针对其所对应的对应输出通道,基于N个输入通道的输入数据和分别分配给对应输出通道的权重组,计算对应输出通道的输出数据,其中m是大于或等于2的自然数,其中,m个计算单元同步地接收N个输入通道的输入数据,并且同步地进行计算。
优选地,每个计算单元可以包括:n个卷积计算模块,分别同步接收其所对应的输入通道的输入数据,并对其进行卷积计算,其中n是大于或等于2的自然数。
优选地,n和m的值可以是根据计算单元的计算资源和外部存储的输入输出带宽设定的,以使得数据输入速度基本上等于数据被使用的速度,数据输出速度基本上等于数据产生速度。
优选地,每个卷积计算模块可以包括:输入端,用于接收其所对应的输入通道的输入数据;输入缓存,用于缓存输入数据;卷积器,用于使用针对该计算单元所对应的对应输出通道和该卷积计算模块所对应的输入通道的权重矩阵,对输入数据进行循环卷积计算,其中,在卷积器的一个计算周期内,卷积器从输入缓存中读取对应于权重矩阵的元素数的一批输入数据,并进行卷积计算,输出计算结果。
优选地,每个计算单元还可以包括:输出端,用于输出计算单元的最终计算结果;加法模块,设置在n个卷积计算模块和输出端之间,用于将n个卷积计算模块针对N个输入通道的输入数据进行卷积计算的相应计算结果相加。
优选地,加法模块可以包括:加法树,用于将n个卷积计算模块同步计算得到的相应计算结果相加。
优选地,加法模块还可以包括:中间结果缓存,设置在加法树和输出端之间,用于在n个卷积计算模块完成对N个输入通道的所有卷积计算以前,缓存中间计算结果。
优选地,在N>n的情况下,N个输入通道可以被分为多组输入通道,每组最多n个输入通道,将多组输入通道分批次输入到每个计算单元,n个卷积计算模块在完成针对一组输入通道的计算之后,开始输入下一组输入通道的输入数据,加法模块还可以包括:第一加法单元,用于将加法树的输出结果与中间计算结果缓存中针对先前一组或多组输入通道进行计算得到的相应中间计算结果相加,并且在完成针对所有输入通道的输入数据的计算以前,将相加的结果保存在中间结果缓存中,而在完成对所有输入通道的输入数据的计算之后,输出相加的结果。
优选地,该处理器还可以包括:第二加法单元,用于将加法模块的输出结果与偏置值相加,偏置值是针对该计算单元所对应的对应输出通道设置的。
优选地,该处理器还可以包括:第一移位器,用于对预设偏置值进行移位以得到偏置值,以使偏置值的小数点与加法模块的输出结果的小数点位置对齐,其中,第二加法单元将加法模块的输出结果与移位得到的偏置值相加。
优选地,该处理器还可以包括:多路选择单元,用于从其多个输入端口的输入中选择一个输出,其中,第二加法单元的输出连接到多路选择单元的一个输入端口。
优选地,该处理器还可以包括:非线性单元,用于对第二加法单元的输出结果进行非线性运算,并且非线性单元的输出连接到多路选择单元的一个输入端口。
优选地,该处理器还可以包括:池化单元,用于对非线性单元的输出结果进行池化操作,并且池化单元的输出连接到多路选择单元的一个输入端口。
优选地,该处理器还可以包括:第二移位器,设置在多路选择单元和输出端之间,用于对多路选择单元的输出结果进行移位,以便对多路选择单元的输出结果进行适当的截断,从而确保输出端的输出结果的位宽和输入通道的输入数据一致。
综上,本发明的处理器包括多个可以并行计算的计算单元,不同的计算单元可以独立且同步地负责计算不同的输出通道的输出数据。由此,本发明的处理器在用于卷积神经网络计算时,可以实现并行化计算,从而可以大大缩短完成整个卷积神经网络计算所需的时间。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本发明一实施例的用于卷积神经网络计算的处理器的结构的示意性方框图。
图2示出了根据本发明一实施例的计算单元的结构的示意性方框图。
图3示出了根据本发明一实施例的卷积计算模块可以具有的具体结构的示意性方框图。
图4示出了根据本发明另一实施例的计算单元的结构的示意性方框图。
图5示出了根据本发明另一实施例的计算单元的结构的示意性方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
如前所述,基于CNN网络结构的层内计算独立不相关的特点,本发明提出了一种能够实现CNN的并行化计算的处理器。
图1示出了根据本发明一实施例的用于卷积神经网络计算的处理器的结构的示意性方框图。
在卷积神经网络的一层计算中,往往需要对多个输入通道的输入数据进行计算,得到多个输出通道的输出数据,作为下一层计算的输入数据或作为计算结果。
本发明的发明人注意到,在针对一个输出通道的计算过程中,需要用到多个(一般是全部)输入通道的输入数据。但是针对任何一个输出通道的计算过程与针对其它任何输出通道的计算过程是不相关的。因此,本发明提出,采用多个硬件来分别同步执行针对多个输出通道的计算,从而实现针对多个输出通道的并行化计算,提高计算效率。
本发明的处理器可以基于N个输入通道的输入数据分别计算M个输出通道的输出数据,其中N和M是大于或等于2的自然数。这里,在图像处理的场景下,对于第一层计算而言,输入通道可以是例如RGB的三帧像素值,此时输入通道可以是3个。输出通道的数量可以根据要计算的卷积神经网络的网络结构得到,其中,每个输出通道可以对应于一个权重组,每个权重组可以包括N个权重,例如这里的权重可以用Wij表示,其中,i为输入通道的编号,i=1、2、3……N,j为输出通道的编号,j=1、2、3……M。权重Wij可以是预先设定的。
参见图1,本发明实施例的处理器1包括m个计算单元2,其中,m是大于或等于2的自然数。
在一个循环周期内,一个计算单元2独立地针对一个输出通道进行计算。
每个计算单元2针对其所对应的对应输出通道,基于N个输入通道的输入数据和分别分配给该计算单元2所对应的对应输出通道的权重组,计算对应输出通道的输出数据,m个计算单元2可以同步地接收N个输入通道的输入数据,并且同步地进行计算。
其中,处理器1所包含的计算单元的个数m可以小于或等于输出通道的个数M。此时,可以同时针对全部输出通道进行并行计算。
而在m<M的情况下,可以分批进行同步计算。即,在m个计算单元完成对应的对应输出通道的计算后,可以接下来为下一批尚未进行计算的输出通道进行计算。
也就是说,在处理器1所包含的计算单元2的个数小于输出通道的个数时,每个计算单元2可以具有多个对应的对应输出通道,在每个计算单元2计算完一个对应输出通道的输出数据后,就可以继续计算其所对应的其它对应输出通道的输出数据。
不同的计算单元2可以共享相同的输入通道的输入数据,以计算不同的输入通道的输出数据,这样,可以减少读取数据的次数。
综上,本发明的处理器1包括多个可以并行计算的计算单元2,不同的计算单元2可以独立且同步地负责计算不同的输出通道的输出数据。由此,本发明的处理器1在用于卷积神经网络计算时,可以实现并行化计算,从而可以大大缩短完成整个卷积神经网络计算所需的时间。
其中,处理器1所包含的计算单元2的个数m可以根据计算单元2的计算资源和外部存储的输入输出带宽设定,以使得数据输入速度基本上等于数据被使用的速度,数据输出速度基本上等于数据产生速度。由此,可以在不浪费计算资源的情况下,外部存储的输入输出带宽的利用效率最大化。
至此,结合图1就本发明的处理器的基本构成做了详细说明。下面就本发明的处理器中的每个计算单元2可以具有的具体结构做进一步说明。
图2示出了根据本发明一实施例的计算单元2的结构的示意性方框图。
对于卷积神经网络计算的每一层计算而言,卷积计算的计算量往往是非常繁重的。
本发明的发明人注意到,在针对一个输出通道的计算中,可以针对不同输入通道的输入数据分别进行卷积计算。因此,本发明提出,在针对一个输出通道进行计算的一个计算单元中,设置多个卷积计算模块,分别对多个输入通道的数据进行卷积计算,从而实现针对多个输入通道的并行化计算,进一步提高计算效率。
参见图2,计算单元2可以包括n个卷积计算模块21。每个卷积计算模块21可以同步接收其所对应的输入通道的输入数据,并可以对接收到的输入数据进行卷积计算,其中n是大于或等于2的自然数。
由此,不同输入通道的输入数据可以交由计算单元2中相应的卷积计算模块21分别同步进行卷积计算。
其中,不同的计算单元2所包含的卷积计算模块21的个数可以相同,也可以不同。作为优选方案,不同的计算单元2可以包含相同个数量的卷积计算模块21,这样,每个计算单元2的计算能力基本相同,可以更好地实现不同的计算单元2之间的同步计算。
另外,每个计算单元2所包含的卷积计算模块21的个数可以小于或等于输入通道的个数。在每个计算单元2所包含卷积计算模块21的个数小于输出通道的个数时,每个卷积计算模块21可以具有多个对应的输入通道,即每个卷积计算模块21可以分别先后接收多个输入通道的输入数据,并对其先后进行卷积计算。
具体来说,在每个卷积计算模块21计算完一个其对应的输入通道的输入数据的卷积后,就可以继续计算其所对应的其它输入通道的输入数据的卷积。
另外,每个计算单元2所包含的卷积计算模块21的个数n,可以根据计算单元2的计算资源和外部存储的输入输出带宽设定,以使得数据输入速度基本上等于数据被使用的速度,数据输出速度基本上等于数据产生速度。由此,可以在不浪费计算资源的情况下,外部存储的输入输出带宽的利用效率最大化。
这里,可以根据计算单元2的计算资源和外部存储的输入输出带宽,综合设定计算单元2的个数m以及每个计算单元2可以具有的卷积计算模块21的个数n。
作为示例,这里给出一种确定计算单元输入输出通道个数的方法。
以现场可编程门阵列(FPGA)平台为例,通常而言,乘法单元由片上的数字信号处理(DSP)模块搭建,因此DSP模块的数量约束了乘法单元的数量。以最大吞吐率为要求的话则乘法器的数量应至少等于DSP模块的数量。因此,
输入通道个数×输出通道个数×卷积核大小=FPGA平台的DSP模块数量。
实际上,由于FPGA本身的资源也可以构建乘法器,因此乘法器的数量可以略微大于DSP模块的数量。
选定了总的并行度之后,需要确定输入通道个数和输出通道个数。为了保证计算单元最高效地被利用,需要使数据输入的速度和数据被使用的速度尽可能相同。
假设每一个输入通道对应的(在计算单元外的)缓存大小相同为B,则一组数据的输入时间约为:
B×输入通道个数/输入带宽。
卷积核因为数据较少(对应于权重矩阵)可以基本忽略。
数据计算的时间为:
B×数据复用的次数。
由于中间结果缓存的存在,因此有可能用一组输入数据计算多组中间结果同时缓存。
在已知上述公式中的其他参数的情况下,可以根据输入时间基本上等于输出时间的原则来确定输入通道的个数,进而确定输出通道的个数。
图3示出了根据本发明一实施例的卷积计算模块21可以具有的具体结构的示意性方框图。
参见图3,卷积计算模块21可以包括输入端211、输入缓存212以及卷积器213。
其中,输入端211可以接收其所对应的输入通道的输入数据。
由于卷积计算中,需要对一些输入数据重复利用。例如,在输入数据为图像数据的情况下,在针对对应于权重矩阵的多个像素(可以称为一个“计算窗口”)的数据完成一次卷积计算之后,将计算窗口平移一个像素,进行下一次卷积计算。这种情况下,每个像素数据需要被重复利用多次。
输入缓存212可以缓存输入端211所接收的输入数据,以便于卷积器213多次使用。
如上文所述,一个卷积计算模块21可以用来先后计算多个输入通道的输入数据的卷积。因此,输入端211也可以先后接收多个输入通道的输入数据,相应地,输入缓存212也可以同时或先后缓存多个输入通道的输入数据。
图3示出了为每一个卷积计算模块21分别设置一个输入缓存212,以缓存该卷积计算模块21要进行计算处理的输入通道的输入数据的情况。应当明白,也可以在计算单元2中统一设置输入缓存,其中缓存所有输入通道的输入数据。所有卷积计算模块21都从该统一设置的输入缓存中读取各自所针对的输入通道的输入数据。
另外,输入缓存212的容量可以被设置为缓存一个输入通道的所有输入数据。另一方面,输入缓存212的容量也可以被设置为缓存一个输入通道的部分输入数据。当在后续的卷积计算中不再需要使用一个数据时,可以不再保留该数据。
卷积器213可以使用针对该计算单元(包含该卷积器213的卷积计算模块21所对应的计算单元2)所对应的对应输出通道和该卷积计算模块(包含该卷积器213的卷积计算模块21)所对应的输入通道的权重矩阵,对输入数据进行循环卷积计算。
这里,卷积器213可以首先完成一个输入通道的输入数据的循环卷积计算,然后进行下一个输入通道的输入数据的循环卷积计算。
具体地说,在卷积器213的一个计算周期内,卷积器213可以从输入缓存212中读取对应于权重矩阵的元素数的一批输入数据,并进行卷积计算,输出计算结果。
这里述及的计算周期是卷积器213计算对应于权重矩阵的元素数的输入数据的卷积所需的时间。因此,卷积器213计算完成一个输入通道的所有输入数据的卷积需要多个计算周期。在一个计算周期结束后,卷积器213可以从输入缓存中读取对应于权重矩阵的元素数的下一批输入数据,并进行卷积计算,输出计算结果,直到把输入缓存212中的所有输入数据的卷积都计算完为止。
其中,在计算输入数据卷积的过程中,可能存在一个或多个批次的输入数据的个数与权重矩阵的元素数不对等(例如当涉及图像数据的边缘行或列时),此时可以添加相应个数(整行或阵列)的“0”或“1”,以使得计算可以正常进行。
图4示出了根据本发明另一实施例的计算单元2的结构的示意性方框图。
参见图4,本发明实施例的计算单元2可以包括n个卷积计算模块21、加法模块22以及输出模块23。
其中,关于卷积计算模块21可参见上文结合图2、图3的相关描述,这里不再赘述。
输出端23可以输出计算单元2的最终计算结果。加法模块22设置在n个卷积计算模块21和输出端23之间,可以将n个卷积计算模块21针对N个输入通道的输入数据进行卷积计算的相应计算结果相加。
由此,将针对各个输入通道独立计算得到的数据整合起来。
参见图4,加法模块22可以可选地包括图中虚线框所示的加法树221,加法树221可以将n个卷积计算模块21同步计算得到的相应计算结果相加。
由于卷积计算模块是同步进行计算的,针对不同输入通道的相应位置处(例如图像上相同横纵坐标处)的数据的卷积计算基本上是同步完成的。这样,每当卷积计算模块完成一次卷积计算(使用一次权重矩阵进行计算为一次卷积计算,例如,权重矩阵为3×3矩阵的情况下,卷积核的一次卷积计算需要9次乘法计算和8次加法计算),就可以将数据输入到加法树221。由此,可以对不同输入通道的相应卷积结果进行加和计算。
另外,参见图4,加法模块22还可以可选地包括图中虚线框所示的中间结果缓存222。中间结果缓存222设置在加法树221和输出端23之间,用于在n个卷积计算模块21完成对N个输入通道的所有卷积计算以前,缓存中间计算结果。中间结果缓存222可以对加法树221的每次加和结果进行缓存,直到完成针对这一批输入通道的输入数据的卷积及加和计算。
另外,在n<N时,换言之,可以同时对所有输入通道的输入数据进行卷积计算的情况下,可以不设置或不使用中间结果缓存222,而将加法树221的每次计算结果直接提供给后续计算部分。当然,也可以提供缓存,完成所有卷积计算之后再进行后续计算。
在N>n的情况下,N个输入通道可以被分为多组输入通道,每组可以包括最多n个输入通道,可以将多组输入通道分批次输入到每个计算单元2。n个卷积计算模块21在完成针对一组输入通道的计算之后,开始输入下一组输入通道的输入数据。
如图4所示,加法模块22还可以包括第一加法单元223。
第一加法单元223可以将加法树221的输出结果与中间计算结果缓存中针对先前一组或多组输入通道进行计算得到的相应中间计算结果相加,并且在完成针对所有输入通道的输入数据的计算以前,将相加的结果保存在中间结果缓存222中,而在完成对所有输入通道的输入数据的计算之后,输出相加的结果。
通过设置中间结果缓存222和第一加法单元223,在输入通道数N大于计算单元2一次可并行操作的输入通道数量m(卷积计算模块21的数量)的情况下,可以将分批计算得到的数据整合起来。另外,还可以将需要较大存储空间的中间计算结果通过累加的形式完成,减少了对所占用的存储空间,因此不必存入外部存储。
图5示出了根据本发明另一实施例的计算单元2的结构的示意性方框图。
参见图5,本发明实施例的计算单元2可以包括n个卷积计算模块21、加法模块22以及第二加法单元24。
其中,关于卷积计算模块21和加法模块22,可以参见上文相关描述,这里不再赘述。
第二加法单元24可以将加法模块22的输出结果与偏置值相加,其中,偏置值是针对该计算单元所对应的对应输出通道设置的。
参见图5,本发明实施例的计算单元2还可以可选地包括第一移位器25。第一移位器25可以对预设偏置值进行移位以得到偏置值,得到的偏置值的小数点与加法模块22的输出结果的小数点位置对齐。这是由于采用char格式表示数值,而不是采用浮点格式表示数值,所以需要指定小数点在某两位之间,因此需要通过移位来将小数点位置对齐。
其中,第二加法单元24可以将加法模块22的输出结果与移位得到的偏置值相加。
参见图5,本发明实施例的计算单元2还可以可选地包括多路选择单元26。多路选择单元26用于从其多个输入端口的输入中选择一个输出,其中,如图5所示,第二加法单元24的输出可以直接连接到多路选择单元26的一个输入端口。
参见图5,本发明实施例的计算单元2还可以可选地包括非线性单元27。非线性单元27可以对第二加法单元24的输出结果进行非线性运算,并且非线性单元27的输出可以直接连接到多路选择单元27的一个输入端口。
参见图5,本发明实施例的计算单元2还可以可选地包括池化(pooling)单元28。池化单元28用于对非线性单元27的输出结果进行池化操作,并且池化单元28的输出也可以连接到多路选择单元26的一个输入端口。
参见图5,本发明实施例的计算单元2还可以可选地包括第二移位器29。第二移位器29可以设置在多路选择单元26和输出端23之间,用于对多路选择单元26的输出结果进行移位,以便对多路选择单元26的输出结果进行适当的截断,从而确保输出端23的输出结果的位宽和输入通道的输入数据一致,以备下一层计算过程中使用。
如上所述,多路选择单元26的多个输入端口可以分别与第二加法单元24、非线性单元27以及池化单元28的输出连接。根据实际情况,多路选择单元26可以从多个输入端口的输入中选择一个进行输出。
综上,本发明的用于卷积神经网络计算的处理器同时在输入通道、输出通道以及卷积核层面都可以进行并行计算,可以提供较高的并行度,充分利用计算资源。并且通过改变输入和输出通道的并行度,可以形成各种规模的硬件设计,在电路面积和速度之间权衡。在给定计算系统和外部存储的输入输出带宽的情况下,可以选择合适的输入以及输出通道并行度,使得输入输出带宽的利用效率最大化,同时不浪费计算资源。
本发明的发明人在一款包含CPU和FPGA的片上系统平台上搭建了一个神经网络加速系统AEye,在这个系统上构建了一个人脸检测应用,该算法以卷积神经网络来标定人脸上的特征点。其中,CPU平台负责控制人脸检测算法的主要流程,FPGA部分包括含一个由本发明作为控制器的卷积神经网络加速器。该加速器负责算法中的卷积神经网络的计算部分。
下表对比了采用本发明提出的用于卷积神经网络计算的处理器和通用处理器在计算该任务中的神经网络的性能。作为对比的CPU使用的是英伟达公司生产的Terga K1处理平台的CPU。
可以看到,对比Terga K1平台的CPU计算性能,本发明可以带来明显的速度提升。
本发明的发明人在另一款包含CPU和FPGA的片上系统平台上同样搭建了一个用于卷积神经网络计算的处理器,本实施例的处理器采用了和前一实施例不同的设计参数。本实施例的处理器仅进行神经网络加速计算,因此可以较为准确地估计实际运行中加速器和外部存储之间的输入输出带宽。该处理器的外部存储为带宽4.2GB/s的DDR3存储器。根据FPGA平台上的缓存资源以及计算资源,本实施例的处理器采用了2个计算单元,每个计算单元使用64个卷积计算模块进行计算,可以在带宽约束条件下最大化计算速度。
上文中已经参考附图详细描述了根据本发明的用于卷积神经网络计算的处理器。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种用于卷积神经网络计算的处理器,其基于N个输入通道的输入数据分别计算M个输出通道的输出数据,其中N和M是大于或等于2的自然数,该处理器包括:
m个计算单元,每个计算单元用于针对其所对应的对应输出通道,基于所述N个输入通道的输入数据和分别分配给所述对应输出通道的权重组,计算所述对应输出通道的输出数据,其中m是大于或等于2的自然数,
其中,所述m个计算单元同步地接收所述N个输入通道的输入数据,并且同步地进行计算。
2.根据权利要求1所述的处理器,其中,每个计算单元包括:
n个卷积计算模块,分别同步接收其所对应的输入通道的输入数据,并对其进行卷积计算,其中n是大于或等于2的自然数。
3.根据权利要求2所述的处理器,其中,n和m的值是根据计算单元的计算资源和外部存储的输入输出带宽设定的,以使得数据输入速度基本上等于数据被使用的速度,数据输出速度基本上等于数据产生速度。
4.根据权利要求2所述的处理器,其中,每个所述卷积计算模块包括:
输入端,用于接收其所对应的输入通道的输入数据;
输入缓存,用于缓存所述输入数据;
卷积器,用于使用针对该计算单元所对应的对应输出通道和该卷积计算模块所对应的输入通道的权重矩阵,对所述输入数据进行循环卷积计算,
其中,在所述卷积器的一个计算周期内,所述卷积器从所述输入缓存中读取对应于所述权重矩阵的元素数的一批输入数据,并进行卷积计算,输出计算结果。
5.根据权利要求2至4中任何一项所述的处理器,其中,每个计算单元还包括:
输出端,用于输出所述计算单元的最终计算结果;
加法模块,设置在所述n个卷积计算模块和所述输出端之间,用于将所述n个卷积计算模块针对所述N个输入通道的输入数据进行卷积计算的相应计算结果相加。
6.根据权利要求5所述的处理器,其中,所述加法模块包括:
加法树,用于将所述n个卷积计算模块同步计算得到的相应计算结果相加。
7.根据权利要求6所述的处理器,其中,所述加法模块还包括:
中间结果缓存,设置在所述加法树和所述输出端之间,用于在所述n个卷积计算模块完成对所述N个输入通道的所有卷积计算以前,缓存中间计算结果。
8.根据权利要求7所述的处理器,其中,在N>n的情况下,所述N个输入通道被分为多组输入通道,每组最多n个输入通道,将所述多组输入通道分批次输入到每个所述计算单元,
所述n个卷积计算模块在完成针对一组输入通道的计算之后,开始输入下一组输入通道的输入数据,
所述加法模块还包括:
第一加法单元,用于将所述加法树的输出结果与中间计算结果缓存中针对先前一组或多组输入通道进行计算得到的相应中间计算结果相加,并且在完成针对所有输入通道的输入数据的计算以前,将相加的结果保存在所述中间结果缓存中,而在完成对所有输入通道的输入数据的计算之后,输出相加的结果。
9.根据权利要求5所述的处理器,还包括:
第二加法单元,用于将所述加法模块的输出结果与偏置值相加,所述偏置值是针对该计算单元所对应的对应输出通道设置的。
10.根据权利要求9所述的处理器,还包括:
第一移位器,用于对预设偏置值进行移位以得到所述偏置值,以使所述偏置值的小数点与所述加法模块的输出结果的小数点位置对齐,
其中,所述第二加法单元将所述加法模块的输出结果与移位得到的偏置值相加。
11.根据权利要求9所述的处理器,还包括:
多路选择单元,用于从其多个输入端口的输入中选择一个输出,
其中,所述第二加法单元的输出连接到所述多路选择单元的一个输入端口。
12.根据权利要求11所述的处理器,还包括:
非线性单元,用于对所述第二加法单元的输出结果进行非线性运算,并且所述非线性单元的输出连接到所述多路选择单元的一个输入端口。
13.根据权利要求12所述的处理器,还包括:
池化单元,用于对所述非线性单元的输出结果进行池化操作,并且所述池化单元的输出连接到所述多路选择单元的一个输入端口。
14.根据权利要求11所述的处理器,还包括:
第二移位器,设置在所述多路选择单元和所述输出端之间,用于对所述多路选择单元的输出结果进行移位,以便对所述多路选择单元的输出结果进行适当的截断,从而确保所述输出端的输出结果的位宽和所述输入通道的输入数据一致。
CN201610543294.1A 2016-07-11 2016-07-11 用于卷积神经网络计算的处理器 Active CN106203621B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610543294.1A CN106203621B (zh) 2016-07-11 2016-07-11 用于卷积神经网络计算的处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610543294.1A CN106203621B (zh) 2016-07-11 2016-07-11 用于卷积神经网络计算的处理器

Publications (2)

Publication Number Publication Date
CN106203621A true CN106203621A (zh) 2016-12-07
CN106203621B CN106203621B (zh) 2019-04-30

Family

ID=57476499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610543294.1A Active CN106203621B (zh) 2016-07-11 2016-07-11 用于卷积神经网络计算的处理器

Country Status (1)

Country Link
CN (1) CN106203621B (zh)

Cited By (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN107085562A (zh) * 2017-03-23 2017-08-22 中国科学院计算技术研究所 一种基于高效复用数据流的神经网络处理器及设计方法
CN107169563A (zh) * 2017-05-08 2017-09-15 中国科学院计算技术研究所 应用于二值权重卷积网络的处理系统及方法
CN107392224A (zh) * 2017-06-12 2017-11-24 天津科技大学 一种基于三通道卷积神经网络的作物病害识别算法
CN107451659A (zh) * 2017-07-27 2017-12-08 清华大学 用于位宽分区的神经网络加速器及其实现方法
CN107633297A (zh) * 2017-03-10 2018-01-26 南京大学 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN107679620A (zh) * 2017-04-19 2018-02-09 北京深鉴科技有限公司 人工神经网络处理装置
CN107679621A (zh) * 2017-04-19 2018-02-09 北京深鉴科技有限公司 人工神经网络处理装置
CN107704922A (zh) * 2017-04-19 2018-02-16 北京深鉴科技有限公司 人工神经网络处理装置
CN107818367A (zh) * 2017-10-30 2018-03-20 中国科学院计算技术研究所 用于神经网络的处理系统和处理方法
CN107944548A (zh) * 2017-11-30 2018-04-20 睿视智觉(深圳)算法技术有限公司 一种fpga实现卷积层的设计方法
CN108009631A (zh) * 2017-11-30 2018-05-08 睿视智觉(深圳)算法技术有限公司 一种基于fpga的vgg-16通用处理模块及其控制方法
CN108090496A (zh) * 2017-12-22 2018-05-29 银河水滴科技(北京)有限公司 基于卷积神经网络的图像处理的方法和装置
CN108256638A (zh) * 2018-01-05 2018-07-06 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
CN108268941A (zh) * 2017-01-04 2018-07-10 意法半导体股份有限公司 深度卷积网络异构架构
CN108268931A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 数据处理的方法、装置和系统
CN108268939A (zh) * 2016-12-30 2018-07-10 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
WO2018130029A1 (zh) * 2017-01-13 2018-07-19 华为技术有限公司 用于神经网络计算的计算设备和计算方法
CN108320022A (zh) * 2018-01-23 2018-07-24 深圳市易成自动驾驶技术有限公司 深度学习系统构建方法、装置、深度学习系统及存储介质
CN108345934A (zh) * 2018-01-16 2018-07-31 中国科学院计算技术研究所 一种用于神经网络处理器的激活装置及方法
CN108416435A (zh) * 2018-03-19 2018-08-17 中国科学院计算技术研究所 一种具有低带宽激活装置的神经网络处理器及其方法
CN108416430A (zh) * 2017-02-10 2018-08-17 耐能股份有限公司 卷积神经网络的池化运算装置及方法
WO2018149217A1 (zh) * 2017-02-17 2018-08-23 清华大学 神经网络计算核信息处理方法、系统和计算机设备
CN108446758A (zh) * 2018-02-11 2018-08-24 江苏金羿智芯科技有限公司 一种面向人工智能计算的神经网络数据串行流水处理方法
CN108470211A (zh) * 2018-04-09 2018-08-31 郑州云海信息技术有限公司 一种卷积计算的实现方法、设备和计算机存储介质
CN108549933A (zh) * 2018-04-23 2018-09-18 北京旷视科技有限公司 一种数据处理方法、装置、电子设备和计算机可读介质
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108875914A (zh) * 2018-06-01 2018-11-23 北京地平线信息技术有限公司 对神经网络数据进行预处理和后处理的方法和装置
WO2018232615A1 (zh) * 2017-06-21 2018-12-27 华为技术有限公司 一种信号处理方法及装置
CN109165728A (zh) * 2018-08-06 2019-01-08 济南浪潮高新科技投资发展有限公司 一种卷积神经网络的基本计算单元及计算方法
CN109272113A (zh) * 2018-09-13 2019-01-25 深思考人工智能机器人科技(北京)有限公司 一种卷积神经网络的建立装置及方法
CN109284821A (zh) * 2017-07-19 2019-01-29 华为技术有限公司 一种神经网络运算装置
CN109447241A (zh) * 2018-09-29 2019-03-08 西安交通大学 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN109557996A (zh) * 2017-09-22 2019-04-02 株式会社东芝 运算装置
CN109726805A (zh) * 2017-10-30 2019-05-07 上海寒武纪信息科技有限公司 利用黑盒模拟器进行神经网络处理器设计的方法
CN109800705A (zh) * 2019-01-17 2019-05-24 深圳英飞拓科技股份有限公司 加速人脸检测速率的方法及装置
CN109814927A (zh) * 2018-12-19 2019-05-28 成都海光集成电路设计有限公司 一种机器学习推理协处理器
CN110073329A (zh) * 2016-12-16 2019-07-30 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
CN110337658A (zh) * 2018-04-26 2019-10-15 深圳市大疆创新科技有限公司 神经网络加速装置与方法
CN110516801A (zh) * 2019-08-05 2019-11-29 西安交通大学 一种高吞吐率的动态可重构卷积神经网络加速器架构
CN110716751A (zh) * 2018-07-12 2020-01-21 赛灵思公司 高并行度计算平台、系统及计算实现方法
CN110807519A (zh) * 2019-11-07 2020-02-18 清华大学 基于忆阻器的神经网络的并行加速方法及处理器、装置
CN111310115A (zh) * 2020-01-22 2020-06-19 深圳市商汤科技有限公司 数据处理方法、装置及芯片、电子设备、存储介质
CN111811694A (zh) * 2020-07-13 2020-10-23 广东博智林机器人有限公司 一种温度校准方法、装置、设备及存储介质
CN111814972A (zh) * 2020-07-08 2020-10-23 上海雪湖科技有限公司 一种基于fpga的神经网络卷积运算加速方法
CN111860815A (zh) * 2017-08-31 2020-10-30 中科寒武纪科技股份有限公司 一种卷积运算方法及装置
CN112074846A (zh) * 2018-05-04 2020-12-11 苹果公司 用于在神经网络处理器中分配任务的系统和方法
CN111738432B (zh) * 2020-08-10 2020-12-29 电子科技大学 一种支持自适应并行计算的神经网络处理电路
CN112308217A (zh) * 2019-07-31 2021-02-02 北京欣奕华科技有限公司 一种卷积神经网络加速方法及系统
CN115550607A (zh) * 2020-09-27 2022-12-30 北京天玛智控科技股份有限公司 基于fpga实现的模型推理加速器及智能视觉感知终端
CN110210610B (zh) * 2018-03-27 2023-06-20 腾讯科技(深圳)有限公司 卷积计算加速器、卷积计算方法及卷积计算设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086729A (zh) * 2007-07-09 2007-12-12 西安飞鹰科技有限责任公司 一种基于fpga的动态可重构高性能运算方法与装置
US20100214936A1 (en) * 2007-09-26 2010-08-26 Canon Kabushiki Kaisha Calculation processing apparatus and method
CN102208005A (zh) * 2011-05-30 2011-10-05 华中科技大学 一种2-d卷积器
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
US20150120632A1 (en) * 2013-10-28 2015-04-30 Qualcomm Incorporated Evaluation of a system including separable sub-systems over a multidimensional range
CN205139973U (zh) * 2015-10-26 2016-04-06 中国人民解放军军械工程学院 基于fpga器件构建的bp神经网络
CN105681628A (zh) * 2016-01-05 2016-06-15 西安交通大学 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101086729A (zh) * 2007-07-09 2007-12-12 西安飞鹰科技有限责任公司 一种基于fpga的动态可重构高性能运算方法与装置
US20100214936A1 (en) * 2007-09-26 2010-08-26 Canon Kabushiki Kaisha Calculation processing apparatus and method
CN102208005A (zh) * 2011-05-30 2011-10-05 华中科技大学 一种2-d卷积器
US20150120632A1 (en) * 2013-10-28 2015-04-30 Qualcomm Incorporated Evaluation of a system including separable sub-systems over a multidimensional range
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN205139973U (zh) * 2015-10-26 2016-04-06 中国人民解放军军械工程学院 基于fpga器件构建的bp神经网络
CN105681628A (zh) * 2016-01-05 2016-06-15 西安交通大学 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法

Cited By (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110073329B (zh) * 2016-12-16 2021-06-22 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
CN110073329A (zh) * 2016-12-16 2019-07-30 华为技术有限公司 访存设备、计算设备和应用于卷积神经网络运算的设备
CN108268931B (zh) * 2016-12-30 2022-10-25 华为技术有限公司 数据处理的方法、装置和系统
CN108268939A (zh) * 2016-12-30 2018-07-10 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
CN108268931A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 数据处理的方法、装置和系统
CN108268941A (zh) * 2017-01-04 2018-07-10 意法半导体股份有限公司 深度卷积网络异构架构
CN108304922A (zh) * 2017-01-13 2018-07-20 华为技术有限公司 用于神经网络计算的计算设备和计算方法
WO2018130029A1 (zh) * 2017-01-13 2018-07-19 华为技术有限公司 用于神经网络计算的计算设备和计算方法
CN106875012B (zh) * 2017-02-09 2019-09-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN108416430A (zh) * 2017-02-10 2018-08-17 耐能股份有限公司 卷积神经网络的池化运算装置及方法
WO2018149217A1 (zh) * 2017-02-17 2018-08-23 清华大学 神经网络计算核信息处理方法、系统和计算机设备
CN107633297B (zh) * 2017-03-10 2021-04-06 南京风兴科技有限公司 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN107633297A (zh) * 2017-03-10 2018-01-26 南京大学 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN107085562A (zh) * 2017-03-23 2017-08-22 中国科学院计算技术研究所 一种基于高效复用数据流的神经网络处理器及设计方法
CN107085562B (zh) * 2017-03-23 2020-11-03 中国科学院计算技术研究所 一种基于高效复用数据流的神经网络处理器及设计方法
CN107704922B (zh) * 2017-04-19 2020-12-08 赛灵思公司 人工神经网络处理装置
CN107704922A (zh) * 2017-04-19 2018-02-16 北京深鉴科技有限公司 人工神经网络处理装置
CN107679621A (zh) * 2017-04-19 2018-02-09 北京深鉴科技有限公司 人工神经网络处理装置
CN107679620A (zh) * 2017-04-19 2018-02-09 北京深鉴科技有限公司 人工神经网络处理装置
US10902315B2 (en) 2017-04-19 2021-01-26 Xilinx, Inc. Device for implementing artificial neural network with separate computation units
US10824939B2 (en) 2017-04-19 2020-11-03 Xilinx, Inc. Device for implementing artificial neural network with flexible buffer pool structure
CN107169563A (zh) * 2017-05-08 2017-09-15 中国科学院计算技术研究所 应用于二值权重卷积网络的处理系统及方法
US11551068B2 (en) 2017-05-08 2023-01-10 Institute Of Computing Technology, Chinese Academy Of Sciences Processing system and method for binary weight convolutional neural network
CN107392224A (zh) * 2017-06-12 2017-11-24 天津科技大学 一种基于三通道卷积神经网络的作物病害识别算法
WO2018232615A1 (zh) * 2017-06-21 2018-12-27 华为技术有限公司 一种信号处理方法及装置
CN109284821A (zh) * 2017-07-19 2019-01-29 华为技术有限公司 一种神经网络运算装置
CN107451659A (zh) * 2017-07-27 2017-12-08 清华大学 用于位宽分区的神经网络加速器及其实现方法
CN111860815A (zh) * 2017-08-31 2020-10-30 中科寒武纪科技股份有限公司 一种卷积运算方法及装置
CN109557996A (zh) * 2017-09-22 2019-04-02 株式会社东芝 运算装置
CN109726805A (zh) * 2017-10-30 2019-05-07 上海寒武纪信息科技有限公司 利用黑盒模拟器进行神经网络处理器设计的方法
CN107818367A (zh) * 2017-10-30 2018-03-20 中国科学院计算技术研究所 用于神经网络的处理系统和处理方法
CN109726805B (zh) * 2017-10-30 2021-02-09 上海寒武纪信息科技有限公司 利用黑盒模拟器进行神经网络处理器设计的方法
CN108009631A (zh) * 2017-11-30 2018-05-08 睿视智觉(深圳)算法技术有限公司 一种基于fpga的vgg-16通用处理模块及其控制方法
CN107944548A (zh) * 2017-11-30 2018-04-20 睿视智觉(深圳)算法技术有限公司 一种fpga实现卷积层的设计方法
CN108090496A (zh) * 2017-12-22 2018-05-29 银河水滴科技(北京)有限公司 基于卷积神经网络的图像处理的方法和装置
CN108256638B (zh) * 2018-01-05 2021-06-22 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
US11468311B2 (en) 2018-01-05 2022-10-11 Shanghai Zhaoxin Semiconductor Co., Ltd. Micro-processor circuit and method of performing neural network operation
CN108256638A (zh) * 2018-01-05 2018-07-06 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
CN108345934A (zh) * 2018-01-16 2018-07-31 中国科学院计算技术研究所 一种用于神经网络处理器的激活装置及方法
CN108345934B (zh) * 2018-01-16 2020-11-03 中国科学院计算技术研究所 一种用于神经网络处理器的激活装置及方法
CN108320022A (zh) * 2018-01-23 2018-07-24 深圳市易成自动驾驶技术有限公司 深度学习系统构建方法、装置、深度学习系统及存储介质
CN108446758B (zh) * 2018-02-11 2021-11-30 江苏金羿智芯科技有限公司 一种面向人工智能计算的神经网络数据串行流水处理方法
CN108446758A (zh) * 2018-02-11 2018-08-24 江苏金羿智芯科技有限公司 一种面向人工智能计算的神经网络数据串行流水处理方法
CN108416435A (zh) * 2018-03-19 2018-08-17 中国科学院计算技术研究所 一种具有低带宽激活装置的神经网络处理器及其方法
CN110210610B (zh) * 2018-03-27 2023-06-20 腾讯科技(深圳)有限公司 卷积计算加速器、卷积计算方法及卷积计算设备
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108564168B (zh) * 2018-04-03 2021-03-09 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108470211B (zh) * 2018-04-09 2022-07-12 郑州云海信息技术有限公司 一种卷积计算的实现方法、设备和计算机存储介质
CN108470211A (zh) * 2018-04-09 2018-08-31 郑州云海信息技术有限公司 一种卷积计算的实现方法、设备和计算机存储介质
CN108549933A (zh) * 2018-04-23 2018-09-18 北京旷视科技有限公司 一种数据处理方法、装置、电子设备和计算机可读介质
WO2019205064A1 (zh) * 2018-04-26 2019-10-31 深圳市大疆创新科技有限公司 神经网络加速装置与方法
CN110337658A (zh) * 2018-04-26 2019-10-15 深圳市大疆创新科技有限公司 神经网络加速装置与方法
CN112074846A (zh) * 2018-05-04 2020-12-11 苹果公司 用于在神经网络处理器中分配任务的系统和方法
CN108875914B (zh) * 2018-06-01 2021-03-23 北京地平线信息技术有限公司 对神经网络数据进行预处理和后处理的方法和装置
CN108875914A (zh) * 2018-06-01 2018-11-23 北京地平线信息技术有限公司 对神经网络数据进行预处理和后处理的方法和装置
CN110716751A (zh) * 2018-07-12 2020-01-21 赛灵思公司 高并行度计算平台、系统及计算实现方法
CN109165728B (zh) * 2018-08-06 2020-12-18 浪潮集团有限公司 一种卷积神经网络的基本计算单元及计算方法
CN109165728A (zh) * 2018-08-06 2019-01-08 济南浪潮高新科技投资发展有限公司 一种卷积神经网络的基本计算单元及计算方法
CN109272113A (zh) * 2018-09-13 2019-01-25 深思考人工智能机器人科技(北京)有限公司 一种卷积神经网络的建立装置及方法
CN109447241B (zh) * 2018-09-29 2022-02-22 西安交通大学 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN109447241A (zh) * 2018-09-29 2019-03-08 西安交通大学 一种面向物联网领域的动态可重构卷积神经网络加速器架构
CN109814927B (zh) * 2018-12-19 2021-01-29 成都海光集成电路设计有限公司 一种机器学习推理协处理器
CN109814927A (zh) * 2018-12-19 2019-05-28 成都海光集成电路设计有限公司 一种机器学习推理协处理器
CN109800705A (zh) * 2019-01-17 2019-05-24 深圳英飞拓科技股份有限公司 加速人脸检测速率的方法及装置
CN112308217A (zh) * 2019-07-31 2021-02-02 北京欣奕华科技有限公司 一种卷积神经网络加速方法及系统
CN110516801A (zh) * 2019-08-05 2019-11-29 西安交通大学 一种高吞吐率的动态可重构卷积神经网络加速器架构
CN110807519A (zh) * 2019-11-07 2020-02-18 清华大学 基于忆阻器的神经网络的并行加速方法及处理器、装置
CN111310115A (zh) * 2020-01-22 2020-06-19 深圳市商汤科技有限公司 数据处理方法、装置及芯片、电子设备、存储介质
CN111814972A (zh) * 2020-07-08 2020-10-23 上海雪湖科技有限公司 一种基于fpga的神经网络卷积运算加速方法
CN111814972B (zh) * 2020-07-08 2024-02-02 上海雪湖科技有限公司 一种基于fpga的神经网络卷积运算加速方法
CN111811694A (zh) * 2020-07-13 2020-10-23 广东博智林机器人有限公司 一种温度校准方法、装置、设备及存储介质
WO2022012276A1 (zh) * 2020-07-13 2022-01-20 广东博智林机器人有限公司 一种温度校准方法、装置、设备及存储介质
CN111738432B (zh) * 2020-08-10 2020-12-29 电子科技大学 一种支持自适应并行计算的神经网络处理电路
CN115550607A (zh) * 2020-09-27 2022-12-30 北京天玛智控科技股份有限公司 基于fpga实现的模型推理加速器及智能视觉感知终端

Also Published As

Publication number Publication date
CN106203621B (zh) 2019-04-30

Similar Documents

Publication Publication Date Title
CN106203621A (zh) 用于卷积神经网络计算的处理器
Ma et al. Optimizing the convolution operation to accelerate deep neural networks on FPGA
CN111178519B (zh) 卷积神经网络加速引擎、卷积神经网络加速系统及方法
CN110097174B (zh) 基于fpga和行输出优先的卷积神经网络实现方法、系统及装置
CN110231958B (zh) 一种矩阵乘向量运算方法及装置
CN109992743A (zh) 矩阵乘法器
CN103677739B (zh) 一种可配置的乘累加运算单元及其构成的乘累加运算阵列
CN107301456B (zh) 基于向量处理器的深度神经网络多核加速实现方法
CN106951395A (zh) 面向压缩卷积神经网络的并行卷积运算方法及装置
CN108564168A (zh) 一种对支持多精度卷积神经网络处理器的设计方法
CN106844294A (zh) 卷积运算芯片和通信设备
US20140344203A1 (en) Neural network computing apparatus and system, and method therefor
CN109034373A (zh) 卷积神经网络的并行处理器及处理方法
CN104112053B (zh) 一种面向图像处理的可重构架构平台设计方法
CN105930902A (zh) 一种神经网络的处理方法、系统
CN108875956B (zh) 原生张量处理器
CN106127302A (zh) 处理数据的电路、图像处理系统、处理数据的方法和装置
CN105589677A (zh) 一种基于fpga的脉动结构矩阵乘法器及其实现方法
CN108537331A (zh) 一种基于异步逻辑的可重构卷积神经网络加速电路
CN109447241A (zh) 一种面向物联网领域的动态可重构卷积神经网络加速器架构
JP2021510219A (ja) マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式
CN107273969A (zh) 一种参数化可扩展的神经网络全连接层多层互连结构
CN110163357A (zh) 一种计算装置及方法
Huang et al. IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency
CN114462587A (zh) 一种用于光电混合计算神经网络的fpga实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20161221

Address after: 100083 Beijing city Haidian District Wangzhuang Road No. 1 Building No. four hospital room 1706

Applicant after: Beijing deep Intelligent Technology Co., Ltd.

Address before: 100000 Beijing city Haidian District Wangzhuang road Tongfang Technology Plaza, D block, 807

Applicant before: Yao Song

TA01 Transfer of patent application right

Effective date of registration: 20180124

Address after: 100083 Beijing city Haidian District Wangzhuang Road No. 1 Building No. four hospital 8 floor room 807

Applicant after: Beijing insight Technology Co., Ltd.

Address before: 100083 Beijing city Haidian District Wangzhuang Road No. 1 Building No. four hospital room 1706

Applicant before: Beijing deep Intelligent Technology Co., Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180605

Address after: 100083, 17 floor, four building four, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant after: Beijing deep Intelligent Technology Co., Ltd.

Address before: 100083, 8 floor, 807 building, four building, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant before: Beijing insight Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200909

Address after: Unit 01-19, 10 / F, 101, 6 / F, building 5, yard 5, Anding Road, Chaoyang District, Beijing 100029

Patentee after: Xilinx Electronic Technology (Beijing) Co., Ltd

Address before: 100083, 17 floor, four building four, 1 Wang Zhuang Road, Haidian District, Beijing.

Patentee before: BEIJING DEEPHI TECHNOLOGY Co.,Ltd.