CN110197265B - 集成电路芯片装置及相关产品 - Google Patents

集成电路芯片装置及相关产品 Download PDF

Info

Publication number
CN110197265B
CN110197265B CN201810161886.6A CN201810161886A CN110197265B CN 110197265 B CN110197265 B CN 110197265B CN 201810161886 A CN201810161886 A CN 201810161886A CN 110197265 B CN110197265 B CN 110197265B
Authority
CN
China
Prior art keywords
data block
processing circuit
data
basic
processed
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
CN201810161886.6A
Other languages
English (en)
Other versions
CN110197265A (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.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Anhui Cambricon Information Technology Co 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 Anhui Cambricon Information Technology Co Ltd filed Critical Anhui Cambricon Information Technology Co Ltd
Priority to CN201810161886.6A priority Critical patent/CN110197265B/zh
Priority to PCT/CN2019/076088 priority patent/WO2019165946A1/zh
Publication of CN110197265A publication Critical patent/CN110197265A/zh
Application granted granted Critical
Publication of CN110197265B publication Critical patent/CN110197265B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • 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

本披露提供一种集成电路芯片装置及相关产品,所述集成电路芯片装置包括:所述集成电路芯片装置用于执行神经网络正向运算,所述神经网络包含n层;所述集成电路芯片装置包括:主处理电路以及多个基础处理电路;所述主处理电路包括第一映射电路,所述多个基础处理电路中至少一个电路包括第二映射电路,所述第一映射电路以及所述第二映射电路均用于执行神经网络运算中的各个数据的压缩处理。本披露提供的技术方案具有计算量小,功耗低的优点。

Description

集成电路芯片装置及相关产品
技术领域
本披露涉及神经网络领域,尤其涉及一种集成电路芯片装置及相关产品。
背景技术
人工神经网络(Artificial Neural Network,即ANN),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。现有的神经网络的运算基于CPU(Central Processing Unit,中央处理器)或GPU(英文:Graphics Processing Unit,图形处理器)来实现神经网络的运算,此种运算的计算量大,功耗高。
发明内容
本披露实施例提供了一种集成电路芯片装置及相关产品,可提升计算装置的处理速度,提高效率。
第一方面,提供一种集成电路芯片装置,所述集成电路芯片装置用于执行神经网络正向运算,所述神经网络包含多层;所述集成电路芯片装置包括:主处理电路以及多个基础处理电路;所述主处理电路包括第一映射电路,所述多个基础处理电路中至少一个电路(即部分或全部基础处理电路)包括第二映射电路,所述第一映射电路以及所述第二映射电路均用于执行神经网络运算中的各个数据的压缩处理;
所述多个基础处理电路呈阵列分布;每个基础处理电路与相邻的其他基础处理电路连接,所述主处理电路连接第1行的n个基础处理电路、第m行的n个基础处理电路以及第1列的m个基础处理电路;
所述主处理电路,用于接收正向运算指令,解析所述正向运算指令得到所述正向运算指令在所述神经网络正向运算中第i层包含的第一运算指令以及所述第一运算指令所需的输入数据块和权值数据块,所述i的取值范围为大于等于1,且小于等于n的整数,如所述i大于等于2,所述输入数据块为第i-1层的输出数据块;
所述主处理电路,还用于依据所述第一运算指令将所述输入数据块划分为竖向数据块,将所述权值数据块划分为横向数据块;根据所述第一运算指令的运算控制确定是否启动第一映射电路对第一数据块进行处理,以得到处理后的第一数据块,所述第一数据块包括所述横向数据块和/或所述竖向数据块;依据所述正向运算指令将处理后的第一数据块发送至与所述主处理电路相连的基础处理电路中的至少一个基础处理电路;
所述多个基础处理电路,用于依据所述第一运算指令的运算控制确定是否启动第二映射电路对第二数据块进行处理,依据处理后的第二数据块以并行方式执行神经网络中的运算得到运算结果,并将该运算结果通过与所述主处理电路连接的基础处理电路传输给所述主处理电路;所述第二数据块为所述基础处理电路确定的接收所述主处理电路发送的数据块,所述第二数据块与所述处理后的第一数据块关联;
所述主处理电路,用于将所述运算结果进行处理得到所述第一运算指令的指令结果,完成所述第i层包含的所述第一运算指令的运算。
第二方面,提供一种神经网络运算装置,所述神经网络运算装置包括一个或多个第一方面提供的集成电路芯片装置。
第三方面,提供一种组合处理装置,所述组合处理装置包括:第二方面提供的神经网络运算装置、通用互联接口和通用处理装置;
所述神经网络运算装置通过所述通用互联接口与所述通用处理装置连接。
第四方面,提供一种芯片,所述芯片集成第一方面的装置、第二方面的装置或第三方面的装置。
第五方面,提供一种电子设备,所述电子设备包括第四方面的芯片。
第六方面,提供一种神经网络正向运算的方法,所述方法应用在集成电路芯片装置内,所述集成电路芯片装置包括:第一方面所述的集成电路芯片装置,所述集成电路芯片装置用于执行神经网络的正向运算。
可以看出,通过本披露实施例,提供映射电路将数据块压缩处理后再进行运算,节省了传输资源以及计算资源,所以其具有功耗低,计算量小的优点。
附图说明
图1a是一种神经网络的正向运算示意图。
图1b是一种神经网络运算的示意图。
图2a为卷积输入数据示意图。
图2b为卷积核示意图。
图2c为输入数据的一个三维数据块的运算窗口示意图。
图2d为输入数据的一个三维数据块的另一运算窗口示意图。
图2e为输入数据的一个三维数据块的又一运算窗口示意图.
图3a是一种神经网络芯片的结构示意图。
图3b是另一种神经网络芯片的结构示意图。
图4a为矩阵乘以矩阵示意图。
图4b为矩阵乘以矩阵的方法流程图。
图4c为矩阵乘以向量示意图。
图4d为矩阵乘以向量的方法流程图。
图5为本披露实施例流提供的一种神经网络芯片的结构示意图;
图6a-图6b为本申请实施例提供的两种映射电路的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本披露方案,下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
在第一方面提供的装置中,所述主处理电路,用于接收正向运算指令,解析所述正向运算指令得到所述正向运算指令在所述神经网络正向运算中第i层包含的第一运算指令以及所述第一运算指令所需的输入数据块和权值数据块,所述i的取值范围为大于等于1,且小于等于n的整数,如所述i大于等于2,所述输入数据块为第i-1层的输出数据块;
所述主处理电路,还用于依据所述第一运算指令将所述输入数据块划分为竖向数据块,将所述权值数据块划分为横向数据块;根据所述第一运算指令的运算控制确定是否启动第一映射电路对第一数据块进行处理,以得到处理后的第一数据块,所述第一数据块包括所述横向数据块和/或所述竖向数据块;依据所述正向运算指令将处理后的第一数据块发送至与所述主处理电路相连的基础处理电路中的至少一个基础处理电路;
所述多个基础处理电路,用于依据所述第一运算指令的运算控制确定是否启动第二映射电路对第二数据块进行处理,依据处理后的第二数据块以并行方式执行神经网络中的运算得到运算结果,并将该运算结果通过与所述主处理电路连接的基础处理电路传输给所述主处理电路;所述第二数据块为所述基础处理电路确定的接收所述主处理电路发送的数据块,所述第二数据块与所述处理后的第一数据块关联;
所述主处理电路,用于将所述运算结果进行处理得到所述第一运算指令的指令结果,完成所述第i层包含的所述第一运算指令的运算。
在第一方面提供的装置中,当所述第一数据块包括横向数据块和竖向数据块时,所述主处理电路,具体用于启动所述第一映射电路对所述横向数据块和所述竖向数据块进行处理得到处理后的横向数据块以及该横向数据块关联的标识数据块,处理后的竖向数据块以及该竖向数据块关联的标识数据块;将所述处理后的横向数据块以及该横向数据块关联的标识数据块进行拆分处理得到多个基本数据块以及所述基本数据块各自关联的标识数据块,将所述多个基本数据块以及所述多个基本数据块各自关联的标识数据块分发至与其连接的基础处理电路,将所述处理后的竖向数据块以及该竖向数据块关联的标识数据块广播至与其连接的基础处理电路;其中,所述标识数据块具体可用直接索引或者步长索引的方式来表示,可选的还可用列表的列表(List of Lists,LIL)、坐标列表(Coordinatelist,COO)、压缩稀疏行(Compressed Sparse Row,CSR)、压缩稀疏列(Compressed SparseColumn,CSC)、(ELL Pack,ELL)以及混合(Hybird,HYB)等方式表示,本申请不做限定。
以所述标识数据块用直接索引的方式表示为例,所述标识数据块具体可为是由0和1构成的数据块,其中,0表示数据块中包含的数据(如权值或输入神经元)的绝对值小于或等于第一阈值,1表示数据块中包含的数据(如权值或输入神经元)的绝对值大于第一阈值,第一阈值为用户侧或装置侧自定义随机设置的,例如0.05、0等等。
为节省数据传输量、提高数据传输效率,在所述主处理电路向所述基础处理电路发送数据的过程中,具体可将所述多个基本数据块中的目标数据以及所述多个基本数据块各自关联的标识数据块分发至与其连接的基础处理电路;可选,还可将所述处理后的竖向数据块中的目标数据以及该竖向数据块关联的标识数据块广播至与其连接的基础处理电路。其中,所述目标数据是指数据块中绝对值大于第一阈值的数据,或者是指数据块(这里具体可为处理后的横向数据块或处理后的竖向数据块)中的非0数据。
相应地,所述基础处理电路,具体用于启动所述第二映射电路根据所述竖向数据块关联的标识数据块和所述基本数据块关联的标识数据获得连接标识数据块,并根据所述连接标识数据块对所述竖向数据块和所述基本数据块进行处理得到处理后的竖向数据块和基本数据块;对所述处理后的竖向数据块和基本数据块执行正向运算得到运算结果,将所述运算结果发送至所述主处理电路;其中。所述正向运算包括但不限于以下中的任一项或多项的组合:卷积运算(即内积运算)、乘积运算、偏置运算、全连接运算、GEMM运算、GEMV运算、激活运算中的一种或任意组合;
所述主处理电路,用于对所述运算结果处理得到所述指令结果。
例如,横向数据块为M1行N1列的矩阵,基本数据块为M2行N2列的矩阵,其中M1>M2,N1>N2。相应地,该横向数据块关联的标识数据块同样也为M1行N1列的矩阵,该基本数据块关联的标识数据块同样为M2行N2列的矩阵。以基本数据块为2*2的矩阵为例,设为
Figure GDA0002717682190000041
第一阈值为0.05,则该基本数据块关联的标识数据块为
Figure GDA0002717682190000042
关于第一映射电路和第二映射电路对数据块的处理将在后文进行具体阐述。
在第一方面提供的装置中,当所述第一数据块包括横向数据块时,所述主处理电路,具体用于启动所述第一映射电路对所述横向数据块进行处理得到处理后的横向数据块以及该横向数据块关联的标识数据块,或者启动所述第一映射电路根据预存的所述横向数据块关联的标识数据块对所述横向数据块进行处理得到处理后的横向数据块;将所述处理后的横向数据块以及该横向数据块关联的标识数据块进行拆分处理得到多个基本数据块以及所述基本数据块各自关联的标识数据块,将所述多个基本数据块以及所述多个基本数据块各自关联的标识数据块分发至与其连接的基础处理电路,将所述竖向数据块广播至与其连接的基础处理电路;
所述基础处理电路,具体用于启动所述第二映射电路根据所述基本数据块关联的标识数据块对所述竖向数据块进行处理,得到处理后的竖向数据块;对所述处理后的竖向数据块和所述处理后的基本数据块执行正向运算得到运算结果,将所述运算结果发送至所述主处理电路。
在可选实施例中,所述主处理电路,还具体用于将所述竖向数据块或处理后的竖向数据块以及该竖向数据块关联的标识数据块进行拆分处理得到多个部分竖向数据块以及所述多个部分竖向数据块各自关联的标识数据块;将所述多个部分竖向数据块以及所述多个部分竖向数据块各自关联的标识数据块通过一次或多次广播给所述基础处理电路;其中,所述多个部分竖向数据块组合形成所述竖向数据块或处理后的竖向数据块。
相应地,所述基础处理电路,具体用于启动所述第二映射电路根据所述部分竖向数据块关联的标识数据块以及所述基本数据块关联的标识数据块得到连接标识数据块;根据所述连接标识数据对所述部分竖向数据块以及所述基本数据块进行处理得到处理后的部分竖向数据块以及处理后的基本数据块;对所述处理后的部分竖向数据块以及所述处理后的基本数据块执行正向运算。
其中,该连接标识数据块是通过对所述基本数据块关联的标识数据块和所述部分竖向数据块关联的标识数据块进行逐元素与操作而获得的数据块。可选的,该连接标识数据块用于表示两个数据块(具体为基本数据块以及竖向数据块)中数据均大于绝对值的数据。具体在后文进行详述。
例如,横向数据块关联的标识数据块为2*3的矩阵
Figure GDA0002717682190000051
部分竖向数据块关联的标识数据块为2*2的矩阵
Figure GDA0002717682190000052
则对应获得的连接标识数据块为
Figure GDA0002717682190000053
在第一方面提供的装置中,当所述第一数据块包括竖向数据块时,所述主处理电路,具体用于启动所述第一映射电路对所述竖向数据块进行处理,得到处理后的竖向数据块以及该竖向数据块关联的标识数据块,或者启动所述第一映射电路根据预存的所述竖向数据块关联的标识数据块对所述竖向数据块进行处理得到处理后的竖向数据块;对所述横向数据块进行拆分处理得到多个基本数据块;将所述多个基本数据块分发至与其连接的基础处理电路,将所述处理后的竖向数据块以及该竖向数据块关联的标识数据块广播至与其连接的基础处理电路;
所述基础处理电路,具体用于启动所述第二映射电路根据所述竖向数据块关联的标识数据块对所述基本数据块进行处理得到处理后的基本数据块;对所述处理后的竖向数据块和所述处理后的基本数据块执行正向运算得到运算结果,将所述运算结果发送至所述主处理电路。
在可选实施例中,所述主处理电路,还具体用于将所述处理后的竖向数据块和该竖向数据块关联的标识数据块进行拆分处理得到多个部分竖向数据块以及所述多个部分竖向数据块关联的标识数据块;将所述多个部分竖向数据块以及所述多个部分竖向数据块各自关联的标识数据块通过一次或多次广播给所述基础处理电路;其中,所述多个部分竖向数据块组合形成所述竖向数据块或处理后的竖向数据块。
相应地,所述基础处理电路具体用于根据所述部分竖向数据块关联的标识数据块对所述基本数据块进行处理得到处理后的基本数据块;对所述处理后的基本数据块以及所述部分竖向数据块执行正向运算。
在第一方面提供的装置中,所述主处理电路,具体用于将该竖向数据块(具体可为所述竖向数据块或者处理后的竖向数据块)通过一次广播发送至与其连接的所述基础处理电路。
在第一方面提供的装置中,所述基础处理电路,具体用于将该基本数据块(同理可为所述基本数据块或处理后的基本数据块)与该竖向数据块执行正向运算处理得到正向运算结果,将所述正向运算结果累加得到运算结果,将所述运算结果发送至所述主处理电路。
在第一方面提供的装置中,所述基础处理电路,具体用于该基本数据块与该竖向数据块执行正向运算处理得到处理结果,将所述处理结果累加得到运算结果,将所述运算结果发送至所述主处理电路;
所述主处理电路,用于对所述运算结果累加后得到累加结果,将该累加结果排列得到所述指令结果。
在第一方面提供的装置中,所述主处理电路,具体用于将所述竖向数据块分成多个部分竖向数据块,将所述多个部分竖向数据块通过多次广播至所述基础处理电路;所述多个部分竖向数据块组合形成所述竖向数据块。
在第一方面提供的装置中,所述主处理电路,具体用于如所述第一运算指令的类型为乘法指令,确定所述输入数据为分发数据块,所述权值数据为广播数据块;如所述第一运算指令的类型为卷积指令,确定所述输入数据为广播数据块,所述权值数据为分发数据块。
在第一方面提供的装置中,所述基础处理电路,具体用于将该部分竖向数据块(具体可为部分竖向数据块或者处理后的部分竖向数据块)与该基本数据块执行一次内积处理后得到内积处理结果,将所述内积处理结果累加得到部分运算结果,将所述部分运算结果发送至所述主处理电路。
在第一方面提供的装置中,所述基础处理电路,具体用于复用n次该部分竖向数据块执行该部分竖向数据块与该n个基本数据块内积运算得到n个部分处理结果,将n个部分处理结果分别累加后得到n个部分运算结果,将所述n个部分运算结果发送至主处理电路,所述n为大于等于2的整数。
在第一方面提供的装置中,所述第i层的运算还包括:偏置运算、全连接运算、GEMM运算、GEMV运算、激活运算中的一种或任意组合。
在第一方面提供的装置中,所述主处理电路包括:主寄存器或主片上缓存电路;
所述基础处理电路包括:基本寄存器或基本片上缓存电路。
在第一方面提供的装置中,所述主处理电路包括:第一映射电路、向量运算器电路、算数逻辑单元电路、累加器电路、矩阵转置电路、直接内存存取电路或数据重排电路中的一种或任意组合。
在第一方面提供的装置中,所述输入数据块可用张量表示,其具体可为:向量、矩阵、三维数据块、四维数据块以及n维数据块中一种或任意组合;
所述权值数据块可用张量表示,其具体可为:向量、矩阵、三维数据块、四维数据块以及n维数据块中一种或任意组合。
如图3a所示,为本披露提供的一种集成电路芯片装置,所述集成电路芯片装置用于执行神经网络正向运算,所述神经网络包含多层;所述集成电路芯片装置包括:主处理电路以及多个基础处理电路;所述主处理电路包括第一映射电路,所述多个基础处理电路中至少一个电路包括第二映射电路,所述第一映射电路以及所述第二映射电路均用于执行神经网络运算中的各个数据的压缩处理;
所述多个基础处理电路呈阵列分布;每个基础处理电路与相邻的其他基础处理电路连接,所述主处理电路连接第1行的n个基础处理电路、第m行的n个基础处理电路以及第1列的m个基础处理电路;
所述主处理电路,用于接收正向运算指令,解析所述正向运算指令得到所述正向运算指令在所述神经网络正向运算中第i层包含的第一运算指令以及所述第一运算指令所需的输入数据块和权值数据块,所述i的取值范围为大于等于1,且小于等于n的整数,如所述i大于等于2,所述输入数据块为第i-1层的输出数据块;
所述主处理电路,还用于依据所述第一运算指令将所述输入数据块划分为竖向数据块,将所述权值数据块划分为横向数据块;根据所述第一运算指令的运算控制确定是否启动第一映射电路对第一数据块进行处理,以得到处理后的第一数据块,所述第一数据块包括所述横向数据块和/或所述竖向数据块;依据所述正向运算指令将处理后的第一数据块发送至与所述主处理电路相连的基础处理电路中的至少一个基础处理电路;
所述多个基础处理电路,用于依据所述第一运算指令的运算控制确定是否启动第二映射电路对第二数据块进行处理,依据处理后的第二数据块以并行方式执行神经网络中的运算得到运算结果,并将该运算结果通过与所述主处理电路连接的基础处理电路传输给所述主处理电路;所述第二数据块为所述基础处理电路确定的接收所述主处理电路发送的数据块,所述第二数据块与所述处理后的第一数据块关联;
所述主处理电路,用于将所述运算结果进行处理得到所述第一运算指令的指令结果,完成所述第i层包含的所述第一运算指令的运算。
如图1a所示,为本披露实施例提供的一种神经网络的正向运算,每一层使用自己的输入数据和权值按照层的类型所指定的运算规则计算得到相应的输出数据;
神经网络的正向运算过程(也叫推理,inference)是逐层处理各层的输入数据,经过一定的计算,得到输出数据的过程,具有如下特征:
某一层的输入:
某一层的输入可以是神经网络的输入数据;
某一层的输入可以是其他层的输出;
某一层的输入可以是本层上一时刻的输出(对应于循环神经网络的情况);
某一层可以同时从多个上述输入源获取输入;
某一层的输出:
某一层的输出可以作为神经网络的输出结果;
某一层的输出可以是其它层的输入;
某一层的输出可以是下一时刻本层的输入(循环神经网络的情况);
某一层的输出可以向上述多个输出方向输出结果;
具体地,所述神经网络中的层的运算的类型包括但不限于以下几种:
卷积层(即执行卷积运算);
全连接层(即执行全连接运算);
归一化(规则化)层:包括LRN(Local Response Normalization)层,BN(BatchNormalization)层等类型;
池化层;
激活层:包括但不限于以下类型Sigmoid层,ReLU层,PReLu层,LeakyReLu层,Tanh层;
层的反向运算,每一层的反向运算需要执行两部分运算:一部分是使用可能是稀疏表示的输出数据梯度和可能是稀疏表示的输入数据计算出权值的梯度(用于在“权值更新”步骤更新本层的权值),另一部分是使用可能是稀疏表示的输出数据梯度和可能是稀疏表示的权值,计算出输入数据梯度(用于作为反向运算中下一层的输出数据梯度以供其进行反向运算);
反向运算按照与正向运算相反的顺序,从最后一层开始反向传递梯度。
在一种可选方案中,某一层反向计算得到的输出数据梯度可以来自:
神经网络最后的损失函数(lost function或者cost function)回传的梯度;
其它层的输入数据梯度;
本层上一时刻的输入数据梯度(对应于循环神经网络的情况);
某一层可以同时从多个上述源获取输出数据梯度;
在执行完神经网络的反向运算之后,就计算出了各层的权值的梯度,在这个步骤中,所述装置的第一输入缓存和第二输入缓存分别用于存储本层的权值和权值的梯度,然后在运算单元中使用权值梯度对权值进行更新;
上文中提到的运算都是神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出数据作为下一层的输入数据进行运算(或者是对该输出数据进行某些操作再作为下一层的输入数据),同时,将权值也替换为下一层的权值;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入数据梯度作为下一层的输出数据梯度进行运算(或者是对该输入数据梯度进行某些操作再作为下一层的输出数据梯度),同时将权值替换为下一层的权值;具体如图1b所示,图中虚线的箭头表示反向运算,实线的箭头表示正向运算,各图下面的标注表示图的含义。
本申请涉及的数据(即数据块中的数据)为压缩处理后的数据,具体可在第一映射电路和第二映射电路中实现。应理解的,由于神经网络是一个高计算量和高访存的算法,权值越多,计算量和访存量都会增大。特别是,针对权值较小(如为0,或小于设定数值的权值)的情况下,为提高计算速率、减小开销需对这些权值较小的数据进行压缩处理。在实际应用中,数据压缩处理在稀疏神经网络中应用,效果最为明显,如减小数据计算的工作量、减小数据额外开销,提高数据计算速率等。
以输入数据为例,阐述数据压缩处理涉及的具体实施例。所述输入数据包括但不限于至少一个输入神经元和/或至少一个权值。
第一实施例中:
第一映射电路接收到第一输入数据(具体可为主处理电路发送的待计算的数据块,如横向数据块或者竖向数据块等)后,所述第一映射电路可对所述第一输入数据进行处理,以获得处理后的第一输入数据以该第一输入数据关联的标识mask数据,该mask数据用于指示该第一输入数据的绝对值是否大于第一阈值,如0.5、0等等。
具体的,当所述第一输入数据的绝对值大于第一阈值,则保留该输入数据;否则删除该第一输入数据或将该第一输入数据置为0。例如,输入的矩阵数据块为
Figure GDA0002717682190000081
第一阈值为0.05,则经过第一映射电路处理后可获得处理后的矩阵数据块
Figure GDA0002717682190000082
与该矩阵数据块关联的标识数据块(也可称为mask矩阵)为
Figure GDA0002717682190000083
进一步地,为减少数据传输量,所述主处理电路再向与其连接的基础处理电路中分发数据时,可发送所述处理后的矩阵数据块中的目标数据(本例中即为1,0.06和0.5)以及该矩阵数据块关联的标识数据块。具体实施时,所述主处理电路可按照设定规则将所述处理后的矩阵数据块中的目标数据分发至基础处理电路中,例如按照行顺序依次发送或者按照列顺序依次等等,本申请不做限定。相应地,基础处理电路在接收到所述目标数据以及该目标数据对应关联的标识数据块后,按照设定规则(例如行顺序)将其还原为处理后的矩阵数据块。例如本例中,基础处理电路可根据接收的数据(1,0.06和0.5)以及标识数据块
Figure GDA0002717682190000084
可获知该数据对应的矩阵数据块(即主处理电路中第一映射电路处理后的矩阵数据块)为
Figure GDA0002717682190000085
在本发明实施例中,该第一输入数据可为横向数据块和/或竖向数据块。
相应地,第二映射电路可利用第一输入数据关联的标识数据对第二输入数据进行处理,从而获得处理后的第二输入数据;其中第一输入数据与所述第二输入数据不同。例如当所述第一输入数据为至少一个权值时,则所述第二输入数据可为至少一个输入神经元;或者,当所述第一输入数据为至少一个输入神经元时,则所述第二输入数据可为至少一个权值。
在本发明实施例中,该第二输入数据与所述第一输入数据不同,所述第二输入数据可为以下中的任一个:横向数据块、基本数据块、竖向数据块以及部分竖向数据块。
例如,当所述第一输入数据为横向数据块时,则第二输入数据为部分竖向数据块。假设第二输入数据为矩阵数据块
Figure GDA0002717682190000091
相应地利用上例中mask矩阵
Figure GDA0002717682190000092
处理后,获得处理后的部分竖向数据块为
Figure GDA0002717682190000093
由于在实际应用中,输入数据涉及的矩阵数据块维数较大,本申请这里仅为示意,本不构成限定。
第二实施例中:
所述第一映射电路可用于对第一输入数据和第二输入数据进行处理,以得到处理后的第一输入数据以及所述第一输入数据关联的第一标识mask数据、处理后的第二输入数据以及所述第二输入数据关联的第二标识mask数据。其中,所述第一mask数据或者第二mask数据用于指示第一或第二输入数据的绝对值是否大于第二阈值,该第二阈值为用户侧或装置侧自定义设置的,例如0.05、0等等。
所述处理后的第一输入数据或第二输入数据可为处理后的输入数据,也可为未处理前的输入数据。例如,第一输入数据为横向数据块,如上述例子中的矩阵数据块
Figure GDA0002717682190000094
经过第一映射电路处理后可获得处理后的横向数据块,这里处理后的横向数据块可为原矩阵数据块
Figure GDA0002717682190000095
也可为压缩处理后的矩阵数据块
Figure GDA0002717682190000096
应理解的,本申请为减少数据量的传输以及基础处理电路中数据处理效率,优选地所述处理后的输入数据(如处理后的基本数据块或部分竖向数据块等)应为压缩处理后的数据。优选地,主处理电路向基础处理电路中发送的数据,具体可为所述处理后的输入数据中的目标数据,该目标数据具体可为绝对值大于预设阈值的数据,也可为非0数据等等。
相应地在基础处理电路中,第二映射电路可根据所述第一输入数据关联的第一标识数据以及所述第二输入数据关联的第二标识数据得到连接标识数据;该连接标识数据用于指示所述第一输入数据和所述第二输入数据中绝对值均大于第三阈值的数据,其中第三阈值为用户侧或装置侧自定义设置的,如0.05、0等。进一步地,所述第二映射电路可根据所述连接标识数据分别对接收的第一输入数据和第二输入数据进行处理,从而获得处理后的第一输入数据和处理后的第二输入数据。
例如,第一输入数据为矩阵数据块
Figure GDA0002717682190000097
第二输入数据块同样也为矩阵数据块
Figure GDA0002717682190000101
经过第一映射电路处理后可获得该第一输入数据关联的第一标识数据块
Figure GDA0002717682190000102
以及处理后的第一输入数据块
Figure GDA0002717682190000103
相应地获得该第二输入数据关联的第二标识数据块
Figure GDA0002717682190000104
处理后的第二输入数据块为
Figure GDA0002717682190000105
相应地,为提高数据传输速率,主处理电路中仅可将处理后的第一输入数据块中的目标数据1,0.06和0.5、以及该第一输入数据块关联的第一标识数据块发送给基础处理电路;同时,将处理后的第二输入数据块中的目标数据1,1.1,0.6,0.3和0.5,以及该第二输入数据块关联的第二标识数据块发送给基础处理电路。
相应地,基础处理电路在接收到上述数据后,可通过第二映射电路对上述第一标识数据块和第二标识数据块进行逐元素与操作,得到连接标识数据块
Figure GDA0002717682190000106
相应地,第二映射电路利用该连接标识数据块分别对所述处理后的第一输入数据块和处理后的第二输入数据块分别进行处理,从而获得处理后的第一输入数据块为
Figure GDA0002717682190000107
处理后的第二输入数据块为
Figure GDA0002717682190000108
其中,在基础处理电路中可根据第一标识数据块以及接收的第一数据块中的目标数据,确定出该目标数据对应所在的第一数据块(即经过第一映射电路处理后的第一数据块);相应地,根据第二标识数据块以及接收的第二数据块中的目标数据,确定出该目标数据对应所在的第二数据块(即经过第一映射电路处理后的第二数据块);然后,在第二映射电路获知连接标识数据块后,利用该连接标识数据块分别与确定的第一数据块和确定的第二数据块进行逐元素与操作,以获得经由第二映射电路处理后的第一数据块和处理后的第二数据块。
第三实施例中:
所述主处理电路中并不会设置第一映射电路,但所述主处理电路可将第三输入数据以及预存的所述第三输入数据关联的第三标识数据发送至与其连接的基础处理电路中。该基础处理电路中设置有第二映射电路。下面阐述第二映射电路涉及的数据压缩处理的具体实施例。
应理解的,所述第三输入数据包括但不限于基础数据块、部分竖向数据块、竖向数据块等。同样地,在神经网络处理器中,该第三输入数据也可为至少一个权值,和/或至少一个输入神经,本申请不做限定。
在第二映射电路中,所述第二映射电路可根据接收的第三输入数据关联的第三标识数据对所述第三输入数据进行处理,从而获得处理后的第三输入数据,以便后续对处理后的第三输入数据执行相关运算操作,如内积运算等。
例如,第二映射电路接收的第三输入数据为矩阵数据块
Figure GDA0002717682190000109
相应地预存的该第三输入数据关联的第三标识数据块(也成mask矩阵数据块)为
Figure GDA0002717682190000111
进一步地,第二映射电路根据第三标识数据块对第三输入数据块进行处理得到处理后的第三输入数据块具体为
Figure GDA0002717682190000112
此外,本发明实施例中提到的输入神经元和输出神经元并非是指整个神经网络的输入层中的神经元和输出层中的神经元,而是对于神经网络中任意相邻的两层神经元,处于网络前馈运算下层中的神经元即为输入神经元,处于网络前馈运算上层中的神经元即为输出神经元。以卷积神经网络为例,假设一个卷积神经网络有L层,K=1,2,3…L-1,对于第K层和第K+1层来说,第K层被称为输入层,该层中的神经元为上述输入神经元,第K+1层被称为输入层,该层中的神经元为上述输出神经元,即除了顶层之外,每一层都可以作为输入层,其下一层为对应的输出层。
第四实施中:
所述主处理电路中并不设置映射电路,在所述基础处理电路中设置有第一映射电路和第二映射电路。关于所述第一映射电路和第二映射电路的数据处理具体可参见前述第一实施例至第三实施例所述,这里不再赘述。
可选的,还存在第五实施例。第五实施例中,所述基础处理电路中并不设置映射电路,将所述第一映射电路和第二映射电路均设置在主处理电路中,关于所述第一映射电路和第二映射电路的数据处理具体可参见前述第一实施例至第三实施例所述,这里不再赘述。即是,主处理电路中完成数据的压缩处理,将处理后的输入数据发送给基础处理电路,以便基础处理电路利用处理后的输入数据(具体可为处理后的神经元和处理后权值)执行相应地的运算操作。
下面阐述本申请涉及映射电路的具体结构示意图。如图6a和6b示出两种可能的映射电路。其中,如图6a所示的映射电路包括比较器和选择器。关于所述比较器和选择器的数量本申请不做限定。如图6a示出一个比较器和两个选择器,其中,所述比较器用于判定输入数据是否满足预设条件。该预设条件可为用户侧或设备侧自定义设置的,例如本申请上述的所述输入数据的绝对值大于或等于预设阈值。如果满足预设条件,则比较器可确定允许输出该输入数据,该输入数据对应关联的标识数据为1;否则可确定不输出该输入数据,或者默认该输入数据为0。相应地,此时该输入数据对应关联的标识数据为0。也即是,经过该比较器后,可获知输入数据关联的标识数据。
进一步地,所述比较器对输入数据进行预设条件的判定后,可将获得的标识数据输入至选择器中,以便选择器利用该标识数据来决定是否输出相应地的输入数据,即获得处理后的输入数据。
如图6a,以所述输入数据为矩阵数据块为例,经过比较器可对该矩阵数据块中的每个数据进行预设条件的判定,从而可获得该矩阵数据块关联的标识数据块(mask矩阵)。进一步地,在第一选择器中可利用该标识数据块对所述矩阵数据块进行筛选,将所述矩阵数据块中绝对值大于或等于预设阈值(即满足预设条件)的数据进行保留,其余数据进行删除,以输出处理后的矩阵数据块。可选的,在第二选择器中还可利用该标识数据块对其他输入数据(例如第二矩阵数据块)进行处理,例如进行逐元素与操作,以将该第二矩阵数据块中绝对值大于或等于预设阈值的数据进行保留,以输出处理后的第二矩阵数据块。
应理解的,对应于上述第一和第二实施例中,所述第一映射电路的具体结构可包括至少一个比较器和至少一个选择器,例如上例中图6a中的比较器和第一选择器;所述第二映射电路的具体结果可包括一个或多个选择器,例如上例中图6a的第二选择器。
如图6b,示出另一种映射电路的结构示意图。如图6b,所述映射电路包括选择器,所述选择器的数量不做限定,可为一个,也可为多个。具体的,所述选择器用于根据输入的输入数据所关联的标识数据来对输入的所述输入数据进行选择,以将所述输入数据中绝对值大于或等于预设阈值的数据进行输出,其余数据进行删除/不输出,从而获得处理后的输入数据。
以所述输入数据为矩阵数据块为例,向所述映射电路输入该矩阵数据块以及该矩阵数据块关联的标识数据块,选择器可根据该标识数据块对所述矩阵数据块进行选择,将其绝对值大于或等于0的数据进行输出,其余数据不予输出,从而输出处理后的矩阵数据块。
应理解的,如图6b所示的结构可应用于上述第三实施例中的第二映射电路,即是上述第三实施例中的第二映射电路的具体结果可包括至少一个选择器。同理,对于主处理电路和基础处理电路中设计的第一映射电路和第二映射电路可按照如图6a和图6b所示的功能部件进行交叉组合或部件拆分,本申请不做限定。
基于前述实施例,下面示例性地给出几种神经网络正向运算的具体实现方法。当第一运算指令为卷积指令时,所述输入数据块(即输入数据块中的数据)为卷积输入数据,所述权值数据(块)为卷积核。下面描述卷积运算,下面的图中一个方块表示一个数据,输入数据用图2a表示(N个样本,每个样本有C个通道,每个通道的特征图的高为H,宽为W),权值也即卷积核用图2b表示(有M个卷积核,每个卷积核有C个通道,高和宽分别为KH和KW)。对于输入数据的N个样本,卷积运算的规则都是一样的,下面解释在一个样本上进行卷积运算的过程,在一个样本上,M个卷积核中的每一个都要进行同样的运算,每个卷积核运算得到一张平面特征图,M个卷积核最终计算得到M个平面特征图,(对一个样本,卷积的输出是M个特征图),对于一个卷积核,要在一个样本的每一个平面位置进行内积运算,然后沿着H和W方向进行滑动,例如,图2c表示一个卷积核在输入数据的一个样本中右下角的位置进行内积运算的对应图;图2d表示卷积的位置向左滑动一格和图2e表示卷积的位置向上滑动一格。
具体的,该卷积运算处理的方式可以采用如图3a或图3b所示的芯片结构处理,主处理电路的第一映射电路可将权值的部分或全部卷积核中的数据进行处理,得到对应的mask数据以及处理后的权值数据(即是处理后权值的部分或全部卷积核中的数据)。
主处理电路的控制电路将权值的部分或全部卷积核中的数据(该数据可为原来的权值数据或者处理后的权值数据)发送到通过横向数据输入接口直接与主处理电路相连的那些基础处理电路(例如,图3b中最上方的灰色填充的竖向数据通路);同时,控制电路将与该数据对应关联的mask数据也一起发送给与主处理电路连接的基础处理电路中;
在一种可选方案中,主处理电路的控制电路将权值中某个卷积核的数据每次发送一个数或者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3行第1个数,第2次发送第3行数据中的第2个数,第3次发送第3行的第3个数……,或者第1次发送第3行前两个数,第二次发送第3行第3和第4个数,第三次发送第3行第5和第6个数……;)同时,控制电路将该权值中某个卷积核对应的mask数据也采用上述每次发生一个数或一部分数据给那个基础处理电路;
在一种可选方案中另一种情况是,主处理电路的控制电路将权值中某几个卷积核的数据每次各发送一个数者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3,4,5行每行的第1个数,第2次发送第3,4,5行每行的第2个数,第3次发送第3,4,5行每行的第3个数……,或者第1次发送第3,4,5行每行前两个数,第二次发送第3,4,5行每行第3和第4个数,第三次发送第3,4,5行每行第5和第6个数……;)相应地,控制电路将与该权值中某几个卷积核所对应关联的mask数据也采用上述相同的方法每次发生一个数或一部分数据给那个基础处理电路;
主处理电路的控制电路把输入数据按照卷积的位置进行划分,主处理电路的控制电路将输入数据中的部分或全部卷积位置中的数据发送到通过竖向数据输入接口直接与主处理电路相连的那些基础处理电路(例如,图3b中基础处理电路阵列左侧的灰色填充的横向数据通路);相应地,控制电路同样也会按照卷积的位置对于所述输入数据关联的mask数据进行划分,相应地控制电路同时也会将所述输入数据中的部分或全部卷积位置中的数据所对应的mask数据也一起发送给与主处理电路电性连接的基础处理电路中;
在一种可选方案中,主处理电路的控制电路将输入数据中某个卷积位置的数据以及与该数据对应关联的mask数据每次发送一个数或者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3列第1个数,第2次发送第3列数据中的第2个数,第3次发送第3列的第3个数……,或者第1次发送第3列前两个数,第二次发送第3列第3和第4个数,第三次发送第3列第5和第6个数……;)
在一种可选方案中另一种情况是,主处理电路的控制电路将输入数据中某几个卷积位置的数据以及与该数据对应关联的mask数据每次各发送一个数或者一部分数给某个基础处理电路;(例如,对于某一个基础处理电路,第1次发送第3,4,5列每列的第1个数,第2次发送第3,4,5列每列的第2个数,第3次发送第3,4,5列每列的第3个数……,或者第1次发送第3,4,5列每列前两个数,第二次发送第3,4,5列每列第3和第4个数,第三次发送第3,4,5列每列第5和第6个数……;)
基础处理电路接收到权值的数据(具体可为权值中卷积核的数据(简称权值数据)或者与该权值数据对应关联的mask数据)之后,将该数据通过其横向的数据输出接口传输给其相连接下一个基础处理电路(例如,图3b中基础处理电路阵列中间的白色填充的横向的数据通路);基础处理电路接收到输入数据的数据(该数据可为主处理电路发送的输入数据以及该输入数据关联的标识mask数据)后,将该数据通过其竖向的数据输出接口传输给与其相连接的下一个基础处理电路(例如,图3b中基础处理电路阵列中间的白色填充的竖向的数据通路);
具体的,主处理电路的控制电路可将输入数据以及该输入数据关联的mask数据一起发送给基处理电路,基础处理电路接收该输入数据以及该输入数据关联的mask数据;
每一个基础处理电路对接收到的数据进行运算;具体的,基础处理电路可启用第二映射电路根据输入数据关联的mask数据以及权值数据关联的mask数据(即权值中卷积核所关联的mask数据)得到连接标识数据;再利用连接标识数据选择输入数据以及权值数据中绝对值大于预设阈值的数据进行乘法运算;
在一种可选方案中,每个基础处理电路中若接收的数据(具体可为待计算的数据块,如权值中卷积核中的数据以及该数据关联的mask数据、输入数据或者该输入数据关联的mask数据)的数据量超过预设阈值时,该基础处理电路将不再接收新的输入数据,如主处理电路将后续发送的权值中某几个卷积核中的数据以及该数据对应关联的mask数据等等,直至基础处理电路中拥有足够的缓存/存储空间,再接收主处理电路新发送的数据。
在一种可选方案中,基础处理电路每次计算一组或多组两个数据的乘法,然后将结果累加到寄存器和/或片上缓存上;
在一种可选方案中,基础处理电路每次计算一组或多组两个向量的内积,然后将结果累加到寄存器和/或片上缓存上;
基础处理电路计算出结果后,可以将结果从数据输出接口传输出去;
在一种可选方案中,该计算结果可以是内积运算的最终结果或中间结果;
具体地,如果该基础处理电路有直接与主处理电路相连接的输出接口则从该接口传输结果,如果没有,则向着能够直接向主处理电路输出的基础处理电路的方向输出结果(例如图3b中,最下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果)。
基础处理电路接收到来自其他基础处理电路的计算结果之后,将该数据传输给与其相连接的其他基础处理电路或者主处理电路;
向着能够直接向主处理电路输出的方向输出结果(例如,最下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果);
主处理电路接收到各个基础处理电路内积运算的结果,即可得到输出结果。
使用图3a或3b所示装置完成张量乘张量运算,所述张量和前文所述的数据块相同,其可为矩阵、向量、三维数据块、四位数据块以及高维数据块中的任一项或多项的组合;下面如图4b和4d分别示出矩阵乘向量和矩阵乘矩阵运算的具体实现方法。
参阅图4a,图4a为一种矩阵乘以矩阵的运算,当所述第一运算指令所指示的正向运算为矩阵乘矩阵运算,所述输入数据为所述矩阵乘矩阵运算的第一矩阵,所述权值为所述矩阵乘矩阵运算的第二矩阵。
参阅图4b,使用如图3a或3b所示的装置完成矩阵乘矩阵的运算;
下面描述计算尺寸是M行L列的矩阵S和尺寸是L行N列的矩阵P的乘法的运算,(矩阵S中的每一行与矩阵P的每一列长度相同,如图2d所示)所述神经网络计算装置拥有K个基础处理电路:
步骤S401b、主处理电路的控制电路将矩阵S中的每一行数据分发到K个基础处理电路中的某一个上,基础处理电路将接收到的数据保存在片上缓存和/或寄存器中;
在一种可选的方案中,所述矩阵S的数据为处理后的数据。具体的,主处理电路启用第一映射电路对矩阵S进行处理,从而获得处理后的矩阵S以及该矩阵S关联的第一标识(mask)矩阵。或者,主处理电路的第一映射电路根据预存的矩阵S关联的第一mask矩阵对矩阵S进行处理,得到处理后的矩阵S。进一步地,通过控制电路将处理后的矩阵S中的每一行数据以及该行数据对应在第一mask矩阵中对应关联的标识数据一起发送给K个基础处理电路中的某一个或多个中。在主处理电路向基础处理电路发送数据时,具体可将处理后的矩阵S中绝对值大于预设阈值的数据,或者非0数据发送给基础处理电路,以减少数据传输量。
在一种可选方案中,如果S的行数M<=K则,主处理电路的控制电路给M个基础处理电路分别分发S矩阵的一行;可选的,同时还发送由该行对应在第一标识矩阵中的行的标识数据;
在一种可选方案中,如果S的行数M>K,主处理电路的控制电路给每个基础处理电路分别分发S矩阵中一行或多行的数据。可选的,同时还发送由该一行或几行对应在第一标识矩阵中的行的标识数据;
S中有Mi行分发到第i个基础处理电路,这Mi行的集合称为Ai,如图2e表示第i个基础处理电路上将要执行的计算。
在一种可选方案中,在每个基础处理电路中,例如第i个基础处理电路中:
接收的由主处理电路分发的矩阵Ai,将矩阵Ai保存在第i个基础处理电路寄存器和/或片上缓存中;优点是减少了之后的数据传输量,提高了计算效率,降低了功耗。
步骤S402b、主处理电路的控制电路将矩阵P中各部分以广播的方式传输给各个基础处理电路;
在一种可选方案中,所述矩阵P的数据(各部分)可为处理后的数据。具体的,主处理电路启用第一映射电路对矩阵P进行处理,从而获得处理后的矩阵P以及该矩阵P关联的第二标识(mask)矩阵。或者,主处理电路的第一映射电路根据预存的矩阵P关联的第二mask矩阵对矩阵P进行处理,得到处理后的矩阵P。进一步地,通过控制电路将处理后的矩阵P中的数据(即各部分)以及该数据对应在第二mask矩阵中对应关联的标识数据一起发送给K个基础处理电路中的某一个或多个中。在主处理电路向基础处理电路发送数据时,具体可将处理后的矩阵P中绝对值大于预设阈值的数据,或者非0数据发送给基础处理电路,以减少数据传输量。
在一种可选方案中,可以将矩阵P中各部分只广播一次到各个基础处理电路的寄存器或者片上缓存中,第i个基础处理电路对这一次得到的矩阵P的数据进行充分地复用,完成对应与矩阵Ai中每一行的内积运算;本实施例中的复用具体可以为基础处理电路在计算中重复使用,例如矩阵P的数据的复用,可以是对矩阵P的数据在多次使用。
在一种可选方案中,主处理电路的控制电路可以将矩阵P中各部分多次广播到各个基础处理电路的寄存器或者片上缓存中,第i个基础处理电路对每次得到的矩阵P的数据不进行复用,分次完成对应于矩阵Ai中的每一行的内积运算;
在一种可选方案中,主处理电路的控制电路可以将矩阵P中各部分多次广播到各个基础处理电路的寄存器或者片上缓存中,第i个基础处理电路对每次得到的矩阵P的数据进行部分复用,完成对应于矩阵Ai中的每一行的内积运算;
在一种可选方案中,每个基础处理电路,例如第i个基础处理电路,计算矩阵Ai的数据和矩阵P的数据的内积;
步骤S403b、每个基础处理电路的累加器电路将内积运算的结果进行累加并传输回主处理电路。
可选的,步骤S403b之前,基础处理电路的内积运算器需计算矩阵S和矩阵P的数据的内积,具体存在以下几种实施方案。
在一种具体实施方案中,所述基础处理电路接收到处理后的矩阵S中的数据以及该数据对应在第一mask矩阵中关联的标识数据;同时还接收到处理后的矩阵P中的数据。相应地,基础处理电路启用第二映射电路根据接收的第一mask矩阵中的标识数据对接收的矩阵P的数据进行处理,得到处理后的矩阵P的数据。进一步地,该基础处理电路启用内积运算器电路对接收的处理后的矩阵S中的数据和处理后的矩阵P的数据执行内积运算,得到内积运算的结果。
在一种具体实施方案中,所述基础处理电路接收到处理后的矩阵P中的数据以及该数据对应在第二mask矩阵中关联的标识数据;同时还接收到处理后的矩阵S中的数据。相应地,基础处理电路启用第二映射电路根据接收的第二mask矩阵中的标识数据对接收的矩阵S的数据进行处理,得到处理后的矩阵S的数据。进一步地,该基础处理电路启用内积运算器电路对接收的处理后的矩阵P的数据和处理后的矩阵S中的数据执行内积运算,得到内积运算的结果。
在一种具体实施方案中,所述基础处理电路接收到处理后的矩阵S中的数据以及该数据对应在第一mask矩阵中关联的标识数据;同时还接收到处理后的矩阵P中的数据以及该数据对应在第二mask矩阵中关联的标识数据。相应地,基础处理电路启用第二映射电路根据接收的第一mask矩阵中的标识数据和第二mask矩阵中的标识数据得到关系标识矩阵;然后利用关系标识矩阵中的标识数据分别对接收的矩阵S中的数据和矩阵P中的数据进行处理,得到处理后的矩阵S的数据和处理后的矩阵P的数据。进一步地,启用内积运算器电路对处理后的矩阵S中的数据和处理后的矩阵P的数据执行内积运算,得到内积运算的结果。例如,第i个基础处理电路,接收到矩阵Ai、该Ai关联的标识矩阵Bi、矩阵P以及矩阵P关联的第二标识矩阵;此时可启用第二映射电路利用Bi和第二标识矩阵获得关系标识矩阵,再利用该关系标识矩阵同时或分别对矩阵Ai和矩阵P进行处理,得到处理后的矩阵Ai和处理后的矩阵P。接着,启用内积运算器电路对处理后的矩阵Ai和处理后的矩阵P进行内积运算。
在一种可选方案中,基础处理电路可以将每次执行内积运算得到的部分和传输回主处理电路进行累加;
在一种可选方案中,也可以将每次基础处理电路执行的内积运算得到的部分和保存在基础处理电路的寄存器和/或片上缓存中,累加结束之后传输回主处理电路;
在一种可选方案中,也可以将每次基础处理电路执行的内积运算得到的部分和在部分情况下保存在基础处理电路的寄存器和/或片上缓存中进行累加,部分情况下传输到主处理电路进行累加,累加结束之后传输回主处理电路。
参阅图4c,为一种矩阵乘以向量的运算示意图。当所述第一运算指令所指示的正向运算为:矩阵乘向量运算,所述输入数据为所述矩阵乘向量运算的第一矩阵,所述权值为所述矩阵乘向量运算的向量。参阅图4d,图4d提供了一种矩阵乘向量的实现方法,具体可以包括:
步骤S401、主处理电路的控制电路将矩阵S中的每一行数据分发到K个基础处理电路中的某一个上,基础处理电路将接收到的分发数据保存在基础处理电路的片上缓存和/或寄存器中;
在一种可选的方案中,所述矩阵S的数据为处理后的数据。具体的,主处理电路启用第一映射电路对矩阵S进行处理,从而获得处理后的矩阵S以及该矩阵S关联的第一标识(mask)矩阵。或者,主处理电路的第一映射电路根据预存的矩阵S关联的第一mask矩阵对矩阵S进行处理,得到处理后的矩阵S。进一步地,通过控制电路将处理后的矩阵S中的每一行数据以及该行数据对应在第一mask矩阵中对应关联的标识数据一起发送给K个基础处理电路中的某一个或多个中。在主处理电路向基础处理电路发送数据时,具体可将处理后的矩阵S中绝对值大于预设阈值的数据,或者非0数据发送给基础处理电路,以减少数据传输量。例如,分发到第i个基础处理电路中处理后的矩阵S中的行的集合为Ai,共有Mi行;相应地,同时也分发有与Ai对应的标识矩阵Bi,Bi为第一mask矩阵的一部分,共有大于或等于Mi行。
在一种可选方案中,如果矩阵S的行数M<=K则,主处理电路的控制电路给K个基础处理电路分别分发S矩阵的一行;可选的,同时还发送由该行对应在第一标识矩阵中的行的标识数据;
在一种可选方案中,如果矩阵S的行数M>K,则主处理电路的控制电路给每个基础处理电路分别分发S矩阵中一行或多行的数据。可选的,同时还发送由该一行或几行对应在第一标识矩阵中的行的标识数据;
分发到第i个基础处理电路的S中的行的集合为Ai,共有Mi个行,如图2c表示第i个基础处理电路上将要执行的计算。
在一种可选方案中,在每个基础处理电路中,例如第i个基础处理电路中,可以将接收到的分发数据例如矩阵Ai保存在第i个基础处理电路的寄存器和/或片上缓存中;优点是减少了之后的分发数据的数据传输量,提高了计算效率,降低了功耗。
步骤S402、主处理电路的控制电路将向量P中的各部分以广播的方式传输给K个基础处理电路;
在一种可选方案中,所述向量P的数据(各部分)可为处理后的数据。具体的,主处理电路启用第一映射电路对向量P进行处理,从而获得处理后的向量P以及该向量P关联的第二标识(mask)矩阵。或者,主处理电路的第一映射电路根据预存的向量P关联的第二mask矩阵对向量P进行处理,得到处理后的向量P。进一步地,通过控制电路将处理后的向量P中的数据(即各部分)以及该数据对应在第二mask矩阵中对应关联的标识数据一起发送给K个基础处理电路中的某一个或多个中。在主处理电路向基础处理电路发送数据时,具体可将处理后的向量P中绝对值大于预设阈值的数据,或者非0数据发送给基础处理电路,以减少数据传输量。
在一种可选方案中,主处理电路的控制电路可以将向量P中各部分只广播一次到各个基础处理电路的寄存器或者片上缓存中,第i个基础处理电路对这一次得到的向量P的数据进行充分地复用,完成对应与矩阵Ai中每一行的内积运算。优点是,减少从主处理电路到基础处理电路的向量P的重复传输的数据传输量,提高执行效率,降低传输功耗。
在一种可选方案中,主处理电路的控制电路可以将向量P中各部分多次广播到各个基础处理电路的寄存器或者片上缓存中,第i个基础处理电路对每次得到的向量P的数据不进行复用,分次完成对应于矩阵Ai中的每一行的内积运算;优点是,减少基础处理电路内部的单次传输的向量P的数据传输量,并可以降低基础处理电路缓存和/或寄存器的容量,提高执行效率,降低传输功耗,降低成本。
在一种可选方案中,主处理电路的控制电路可以将向量P中各部分多次广播到各个基础处理电路的寄存器或者片上缓存中,第i个基础处理电路对每次得到的向量P的数据进行部分复用,完成对应于矩阵Ai中的每一行的内积运算;优点是,减少从主处理电路到基础处理电路的数据传输量,也减少基础处理电路内部的数据传输量,提高执行效率,降低传输功耗。
步骤S403、K个基础处理电路的内积运算器电路计算矩阵S和向量P的数据的内积,例如第i个基础处理电路,计算矩阵Ai的数据和向量P的数据的内积;
在一种具体实施方案中,所述基础处理电路接收到处理后的矩阵S中的数据以及该数据对应在第一mask矩阵中关联的标识数据;同时还接收到处理后的向量P中的数据。相应地,基础处理电路启用第二映射电路根据接收的第一mask矩阵中的标识数据对接收的向量P的数据进行处理,得到处理后的向量P的数据。进一步地,该基础处理电路启用内积运算器电路对接收的处理后的矩阵S中的数据和处理后的向量P的数据执行内积运算,得到内积运算的结果。例如,第i个基础处理电路,接收到矩阵Ai、该Ai关联的标识矩阵Bi以及向量P;此时可启用第二映射电路利用Bi对向量P进行处理得到处理后的向量P;再启用内积运算器电路对矩阵Ai和处理后的向量P进行内积运算。
在一种具体实施方案中,所述基础处理电路接收到处理后的向量P中的数据以及该数据对应在第二mask矩阵中关联的标识数据;同时还接收到处理后的矩阵S中的数据。相应地,基础处理电路启用第二映射电路根据接收的第二mask矩阵中的标识数据对接收的矩阵S的数据进行处理,得到处理后的矩阵S的数据。进一步地,该基础处理电路启用内积运算器电路对接收的处理后的向量P的数据和处理后的矩阵S中的数据执行内积运算,得到内积运算的结果。例如,第i个基础处理电路,接收到矩阵Ai、处理后的向量P以及该向量P关联的第二标识矩阵;此时可启用第二映射电路利用第二标识矩阵对Ai进行处理得到处理后的矩阵Ai;再启用内积运算器电路对处理后的矩阵Ai和处理后的向量P进行内积运算。
在一种具体实施方案中,所述基础处理电路接收到处理后的矩阵S中的数据以及该数据对应在第一mask矩阵中关联的标识数据;同时还接收到处理后的向量P中的数据以及该数据对应在第二mask矩阵中关联的标识数据。相应地,基础处理电路启用第二映射电路根据接收的第一mask矩阵中的标识数据和第二mask矩阵中的标识数据得到关系标识矩阵;然后利用关系标识矩阵中的标识数据分别对接收的矩阵S中的数据和向量P中的数据进行处理,得到处理后的矩阵S的数据和处理后的向量P的数据。进一步地,启用内积运算器电路对处理后的矩阵S中的数据和处理后的向量P的数据执行内积运算,得到内积运算的结果。例如,第i个基础处理电路,接收到矩阵Ai、该Ai关联的标识矩阵Bi、向量P以及向量P关联的第二标识矩阵;此时可启用第二映射电路利用Bi和第二标识矩阵获得关系标识矩阵,再利用该关系标识矩阵同时或分别对矩阵Ai和向量P进行处理,得到处理后的矩阵Ai和处理后的向量P。接着,启用内积运算器电路对处理后的矩阵Ai和处理后的向量P进行内积运算。
步骤S404、K个基础处理电路的累加器电路将内积运算的结果进行累加得到累加结果,将累加结果以定点类型形式传输回主处理电路。
在一种可选方案中,可以将每次基础处理电路执行内积运算得到的部分和(部分和即累加结果的一部分,例如累加结果为:F1*G1+F2*G2+F3*G3+F4*G4+F5*G5,那么部分和可以为:F1*G1+F2*G2+F3*G3的值)传输回主处理电路进行累加;优点是,减少了基础处理电路内部的运算量,提高基础处理电路的运算效率。
在一种可选方案中,也可以将每次基础处理电路执行的内积运算得到的部分和保存在基础处理电路的寄存器和/或片上缓存中,累加结束之后传输回主处理电路;优点是,减少了基础处理电路和主处理电路之间的数据传输量,提高了运算效率,降低了数据传输功耗。
在一种可选方案中,也可以将每次基础处理电路执行的内积运算得到的部分和在部分情况下保存在基础处理电路的寄存器和/或片上缓存中进行累加,部分情况下传输到主处理电路进行累加,累加结束之后传输回主处理电路;优点是,减少了基础处理电路和主处理电路之间的数据传输量,提高了运算效率,降低了数据传输功耗,减少了基础处理电路内部的运算量,提高基础处理电路的运算效率。
本披露还提供一种集成电路芯片装置,所述集成电路芯片装置用于执行神经网络的正向运算,所述神经网络包含多层,所述装置包括:处理电路以及外部接口;
所述外部接口,用于接收正向运算指令;
所述处理电路,用于解析所述正向运算指令得到所述正向运算指令在所述神经网络正向运算中第i层包含的第一运算指令以及所述第一运算指令所需的输入数据块和权值数据块,所述i的取值范围为大于等于1,且小于等于n的整数,如所述i大于等于2,所述输入数据块为第i-1层的输出数据块;
所述处理电路,还用于将输入数据以及权值数据执行所述正向运算的第i层包含的第一运算指令的运算。
本披露还揭露了一个神经网络运算装置,其包括一个或多个在如图3a或如图3b所示的芯片,用于从其他处理装置中获取待运算数据和控制信息,执行指定的神经网络运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上神如图3a或如图3b所示的芯片时,如图3a或如图3b所示的芯片间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该神经网络运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
在一个实施例里,本发明公开了一种芯片(如图5),用于执行如上所述方法实施例中提供的所有或部分实施方式。
在一个实施例里,本发明公开了一种电子装置,其包括用于执行如上所述方法实施例中的所有或部分实施方式的功能单元。
电子装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
以上所述的具体实施例,对本披露的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本披露的具体实施例而已,并不用于限制本披露,凡在本披露的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本披露的保护范围之内。

Claims (13)

1.一种集成电路芯片装置,其特征在于,所述集成电路芯片装置用于执行神经网络正向运算,所述神经网络包含多层;所述集成电路芯片装置包括:主处理电路以及多个基础处理电路;所述主处理电路包括第一映射电路,所述多个基础处理电路中至少一个电路包括第二映射电路,所述第一映射电路以及所述第二映射电路均用于执行神经网络运算中的各个数据的压缩处理;
所述多个基础处理电路呈阵列分布,所述阵列为m*n阵列,所述m、所述n的取值范围均为大于等于1的整数且所述m、所述n中至少有一个值大于等于2;每个基础处理电路与相邻的其他基础处理电路连接,所述主处理电路连接第1行的n个基础处理电路、第m行的n个基础处理电路以及第1列的m个基础处理电路;
所述主处理电路,用于接收正向运算指令,解析所述正向运算指令得到所述正向运算指令在所述神经网络正向运算中第i层包含的第一运算指令以及所述第一运算指令所需的输入数据块和权值数据块,所述i的取值范围为大于等于1,且小于等于n的整数,如所述i大于等于2,所述输入数据块为第i-1层的输出数据块;
所述主处理电路,还用于依据所述第一运算指令将所述输入数据块划分为竖向数据块,将所述权值数据块划分为横向数据块;根据所述第一运算指令的运算控制确定是否启动第一映射电路对第一数据块进行处理,以得到处理后的第一数据块,所述第一数据块包括所述横向数据块和/或所述竖向数据块;依据所述正向运算指令将处理后的第一数据块发送至与所述主处理电路相连的基础处理电路中的至少一个基础处理电路;
所述多个基础处理电路,用于依据所述第一运算指令的运算控制确定是否启动第二映射电路对第二数据块进行处理,依据处理后的第二数据块以并行方式执行神经网络中的运算得到运算结果,并将该运算结果通过与所述主处理电路连接的基础处理电路传输给所述主处理电路;所述第二数据块为所述基础处理电路确定的接收所述主处理电路发送的数据块,所述第二数据块与所述处理后的第一数据块关联;
所述主处理电路,用于将所述运算结果进行处理得到所述第一运算指令的指令结果,完成所述第i层包含的所述第一运算指令的运算。
2.根据权利要求1所述的集成电路芯片装置,其特征在于,当所述第一数据块包括横向数据块和竖向数据块时,
所述主处理电路,具体用于启动所述第一映射电路对所述横向数据块和所述竖向数据块进行处理得到处理后的横向数据块以及该横向数据块关联的标识数据块,处理后的竖向数据块以及该竖向数据块关联的标识数据块;将所述处理后的横向数据块以及该横向数据块关联的标识数据块进行拆分处理得到多个基本数据块以及所述基本数据块各自关联的标识数据块,将所述多个基本数据块以及所述多个基本数据块各自关联的标识数据块分发至与其连接的基础处理电路,将所述处理后的竖向数据块以及该竖向数据块关联的标识数据块广播至与其连接的基础处理电路;
所述基础处理电路,具体用于启动所述第二映射电路根据所述竖向数据块关联的标识数据块和所述基本数据块关联的标识数据获得连接标识数据块,并根据所述连接标识数据块对所述竖向数据块和所述基本数据块进行处理得到处理后的竖向数据块和基本数据块;对所述处理后的竖向数据块和基本数据块执行正向运算得到运算结果,将所述运算结果发送至所述主处理电路。
3.根据权利要求1所述的集成电路芯片装置,其特征在于,当所述第一数据块包括横向数据块时,
所述主处理电路,具体用于启动所述第一映射电路对所述横向数据块进行处理得到处理后的横向数据块以及该横向数据块关联的标识数据块,或者启动所述第一映射电路根据预存的所述横向数据块关联的标识数据块对所述横向数据块进行处理得到处理后的横向数据块;将所述处理后的横向数据块以及该横向数据块关联的标识数据块进行拆分处理得到多个基本数据块以及所述基本数据块各自关联的标识数据块,将所述多个基本数据块以及所述多个基本数据块各自关联的标识数据块分发至与其连接的基础处理电路,将所述竖向数据块广播至与其连接的基础处理电路;
所述基础处理电路,具体用于启动所述第二映射电路根据所述基本数据块关联的标识数据块对所述竖向数据块进行处理,得到处理后的竖向数据块;对所述处理后的竖向数据块和所述处理后的基本数据块执行正向运算得到运算结果,将所述运算结果发送至所述主处理电路。
4.根据权利要求1所述的集成电路芯片装置,其特征在于,当所述第一数据块包括竖向数据块时,
所述主处理电路,具体用于启动所述第一映射电路对所述竖向数据块进行处理,得到处理后的竖向数据块以及该竖向数据块关联的标识数据块,或者启动所述第一映射电路根据预存的所述竖向数据块关联的标识数据块对所述竖向数据块进行处理得到处理后的竖向数据块;对所述横向数据块进行拆分处理得到多个基本数据块;将所述多个基本数据块分发至与其连接的基础处理电路,将所述处理后的竖向数据块以及该竖向数据块关联的标识数据块广播至与其连接的基础处理电路;
所述基础处理电路,具体用于启动所述第二映射电路根据所述竖向数据块关联的标识数据块对所述基本数据块进行处理得到处理后的基本数据块;对所述处理后的竖向数据块和所述处理后的基本数据块执行内积运算得到运算结果,将所述运算结果发送至所述主处理电路。
5.根据权利要求2-4中任一项所述的集成电路芯片装置,其特征在于,
所述基础处理电路,具体用于该基本数据块与该竖向数据块执行正向运算得到正向运算结果,将所述正向运算结果累加得到运算结果,将所述运算结果发送至所述主处理电路;
所述主处理电路,用于对所述运算结果累加后得到累加结果,将该累加结果排列得到所述指令结果。
6.根据权利要求5所述的集成电路芯片装置,其特征在于,
所述主处理电路,具体用于将所述处理后的竖向数据块以及该竖向数据块关联的标识数据块分成多个部分竖向数据块以及所述部分竖向数据块关联的标识数据块,将所述多个部分竖向数据块以及所述多个部分竖向数据块各自关联的标识数据块通过多次广播至所述基础处理电路;所述多个部分竖向数据块组合形成所述竖向数据块;
所述基础处理电路,具体用于启动所述第二映射电路根据所述基本数据块关联的标识数据块以及所述部分竖向数据块关联的标识数据块获得连接标识数据块;根据所述连接标识数据块对所述基本数据块以及所述部分竖向数据块进行处理得到处理后的基本数据块以及处理后的部分广播数据;对所述处理后的基本数据块以及处理后的部分竖向数据块执行正向运算;
或者,所述基础处理电路,具体用于启动所述第二映射电路根据所述部分竖向数据块关联的标识数据块对所述基本数据块进行处理得到处理后的基本数据块;对所述处理后的基本数据块以及所述部分竖向数据块执行正向运算。
7.根据权利要求2-4中任一项所述的集成电路芯片装置,其特征在于,
所述主处理电路,具体用于如所述第一运算指令的类型为乘法指令,确定所述输入数据为分发数据块,所述权值数据为广播数据块;如所述第一运算指令的类型为卷积指令,确定所述输入数据为广播数据块,所述权值数据为分发数据块。
8.根据权利要求6任意一项所述的集成电路芯片装置,其特征在于,
所述第i层的运算还包括:偏置运算、全连接运算、GEMM运算、GEMV运算、激活运算中的一种或任意组合。
9.根据权利要求7所述的集成电路芯片装置,其特征在于,
所述第i层的运算还包括:偏执运算、全连接运算、GEMM运算、GEMV运算、激活运算中的一种或任意组合。
10.根据权利要求1所述的集成电路芯片装置,其特征在于,
所述主处理电路包括:主寄存器或主片上缓存电路;
所述基础处理电路包括:基本寄存器或基本片上缓存电路。
11.根据权利要求10所述的集成电路芯片装置,其特征在于,
所述主处理电路还包括:向量运算器电路、算数逻辑单元电路、累加器电路、矩阵转置电路、直接内存存取电路或数据重排电路中的一种或任意组合。
12.一种芯片,其特征在于,所述芯片集成如权利要求1-11任意一项所述装置。
13.一种神经网络正向运算的方法,其特征在于,所述方法应用在集成电路芯片装置内,所述集成电路芯片装置包括:如权利要求1-11任意一项所述的集成电路芯片装置,所述集成电路芯片装置用于执行神经网络的正向运算。
CN201810161886.6A 2018-02-27 2018-02-27 集成电路芯片装置及相关产品 Active CN110197265B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810161886.6A CN110197265B (zh) 2018-02-27 2018-02-27 集成电路芯片装置及相关产品
PCT/CN2019/076088 WO2019165946A1 (zh) 2018-02-27 2019-02-25 集成电路芯片装置、板卡及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810161886.6A CN110197265B (zh) 2018-02-27 2018-02-27 集成电路芯片装置及相关产品

Publications (2)

Publication Number Publication Date
CN110197265A CN110197265A (zh) 2019-09-03
CN110197265B true CN110197265B (zh) 2021-01-05

Family

ID=67750825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810161886.6A Active CN110197265B (zh) 2018-02-27 2018-02-27 集成电路芯片装置及相关产品

Country Status (1)

Country Link
CN (1) CN110197265B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112784973A (zh) * 2019-11-04 2021-05-11 北京希姆计算科技有限公司 卷积运算电路、装置以及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1846278A (zh) * 2003-09-04 2006-10-11 皇家飞利浦电子股份有限公司 集成电路和高速缓冲存储器的重新映射方法
CN106372723A (zh) * 2016-09-26 2017-02-01 上海新储集成电路有限公司 基于神经网络芯片的存储结构及其存储方法
WO2017073000A1 (ja) * 2015-10-29 2017-05-04 株式会社Preferred Networks 情報処理装置及び情報処理方法
CN107256424A (zh) * 2017-05-08 2017-10-17 中国科学院计算技术研究所 三值权重卷积网络处理系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1846278A (zh) * 2003-09-04 2006-10-11 皇家飞利浦电子股份有限公司 集成电路和高速缓冲存储器的重新映射方法
WO2017073000A1 (ja) * 2015-10-29 2017-05-04 株式会社Preferred Networks 情報処理装置及び情報処理方法
CN106372723A (zh) * 2016-09-26 2017-02-01 上海新储集成电路有限公司 基于神经网络芯片的存储结构及其存储方法
CN107256424A (zh) * 2017-05-08 2017-10-17 中国科学院计算技术研究所 三值权重卷积网络处理系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Binarized Neural Networks:Training Neural Networks with Weights and Activations Constrained to +1 or -1";Matthieu Courbariaux etc.;《arXiv:1602.02830v3 [cs.LG]》;20160317;论文第2-3节 *

Also Published As

Publication number Publication date
CN110197265A (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
CN110197270B (zh) 集成电路芯片装置及相关产品
CN109993301B (zh) 神经网络训练装置及相关产品
CN111160542B (zh) 集成电路芯片装置及相关产品
CN109993291B (zh) 集成电路芯片装置及相关产品
CN113837922A (zh) 计算装置、数据处理方法及相关产品
CN110197265B (zh) 集成电路芯片装置及相关产品
US11710031B2 (en) Parallel processing circuits for neural networks
US11651202B2 (en) Integrated circuit chip device and related product
CN110197275B (zh) 集成电路芯片装置及相关产品
CN110197273B (zh) 集成电路芯片装置及相关产品
CN110197263B (zh) 集成电路芯片装置及相关产品
CN110197272B (zh) 集成电路芯片装置及相关产品
CN110197274B (zh) 集成电路芯片装置及相关产品
CN110197271B (zh) 集成电路芯片装置及相关产品
US11704544B2 (en) Integrated circuit chip device and related product
CN110197268B (zh) 集成电路芯片装置及相关产品
CN111767997B (zh) 集成电路芯片装置及相关产品
CN110197266B (zh) 集成电路芯片装置及相关产品
CN109993289B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201211

Address after: Room 611-194, R & D center building, China (Hefei) international intelligent voice Industrial Park, 3333 Xiyou Road, hi tech Zone, Hefei City, Anhui Province

Applicant after: Anhui Cambrian Information Technology Co., Ltd

Address before: 200120 Shanghai Pudong New Area Nanhui new town 888 West Road two

Applicant before: Shanghai Cambricon Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant