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

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

Info

Publication number
CN110197273B
CN110197273B CN201810164841.4A CN201810164841A CN110197273B CN 110197273 B CN110197273 B CN 110197273B CN 201810164841 A CN201810164841 A CN 201810164841A CN 110197273 B CN110197273 B CN 110197273B
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
CN201810164841.4A
Other languages
English (en)
Other versions
CN110197273A (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.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai 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 Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201810164841.4A priority Critical patent/CN110197273B/zh
Priority to PCT/CN2019/075979 priority patent/WO2019165940A1/zh
Publication of CN110197273A publication Critical patent/CN110197273A/zh
Application granted granted Critical
Publication of CN110197273B publication Critical patent/CN110197273B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)

Abstract

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

Description

集成电路芯片装置及相关产品
技术领域
本披露涉及神经网络领域,尤其涉及一种集成电路芯片装置及相关产品。
背景技术
人工神经网络(Artificial Neural Network,即ANN),是20世纪80年代以来人工智能领域 兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的 连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是 一种运算模型,由大量的节点(或称神经元)之间相互联接构成。现有的神经网络的运算基于CPU (Central Processing Unit,中央处理器)或GPU(英文:Graphics Processing Unit,图形处理器) 来实现神经网络的运算,此种运算的计算量大,功耗高。
发明内容
本披露实施例提供了一种集成电路芯片装置及相关产品,可提升计算装置的处理速度,提高 效率。
第一方面,提供一种集成电路芯片装置,所述集成电路芯片装置用于执行神经网络正向运算, 所述神经网络包含n层;所述集成电路芯片装置包括:主处理电路以及多个基础处理电路;所述 主处理电路包括第一映射电路,所述多个基础处理电路中至少一个电路(即全部或部分基础处理 电路)包括第二映射电路,所述第一映射电路以及所述第二映射电路均用于执行神经网络运算中 的各个数据的压缩处理;
所述主处理电路,用于接收正向运算指令,解析所述正向运算指令得到所述正向运算指令在 所述神经网络正向运算中的第i层所包含的第一运算指令以及所述第一运算指令所需的输入数据 块以及权值数据块,所述i的取值范围为大于等于1,且小于等于n的整数,如所述i大于等于2, 所述输入数据块为第i-1层的输出数据块;
所述主处理电路,用于依据所述第一运算指令将所述输入数据块划分成广播数据块,将所述 卷积核数据块划分成分发数据块;依据所述第一正向指令的运算控制确定启动第一映射电路对第 一数据块进行处理,得到处理后的第一数据块;所述第一数据块包括所述分发数据块和/或所述广 播数据块;依据所述卷积指令将处理后的第一数据块发送至与所述主处理电路相连的基础处理电 路中的至少一个基础处理电路;
所述多个基础处理电路,用于依据所述第一运算指令的运算控制确定是否启动第二映射电路 对第二数据块进行处理,依据处理后的第二数据块以并行方式执行神经网络中的运算得到运算结 果,并将该运算结果通过与所述主处理电路连接的基础处理电路传输给所述主处理电路;所述第 二数据块为所述基础处理电路确定的接收所述主处理电路发送的数据块,所述第二数据块与所述 处理后的第一数据块关联;
所述主处理电路,用于将所述运算结果进行处理得到所述第一运算指令的指令结果,完成所 述第i层包含的所述第一运算指令的运算。
第二方面,提供一种神经网络运算装置,所述神经网络运算装置包括一个或多个第一方面提 供的集成电路芯片装置。
第三方面,提供一种组合处理装置,所述组合处理装置包括:第二方面提供的神经网络运算 装置、通用互联接口和通用处理装置;
所述神经网络运算装置通过所述通用互联接口与所述通用处理装置连接。
第四方面,提供一种芯片,所述芯片集成第一方面的装置、第二方面的装置或第三方面的装 置。
第五方面,提供一种电子设备,所述电子设备包括第四方面的芯片。
第六方面,提供一种神经网络的运算方法,所述方法应用在集成电路芯片装置内,所述集成 电路芯片装置包括:第一方面所述的集成电路芯片装置,所述集成电路芯片装置用于执行神经网 络的正向运算。
可以看出,通过本披露实施例,提供映射电路将数据块压缩处理后再进行运算,节省了传输 资源以及计算资源,所以其具有功耗低,计算量小的优点。
附图说明
图1a是一种神经网络的正向运算示意图。
图1b是一种神经网络运算的示意图。
图2a为卷积输入数据示意图。
图2b为卷积核示意图。
图2c为输入数据的一个三维数据块的运算窗口示意图。
图2d为输入数据的一个三维数据块的另一运算窗口示意图。
图2e为输入数据的一个三维数据块的又一运算窗口示意图.
图3是一种神经网络芯片的结构示意图。
图4a为矩阵乘以矩阵示意图。
图4b为矩阵乘以矩阵的方法流程图。
图4c为矩阵乘以向量示意图。
图4d为矩阵乘以向量的方法流程图。
图5为本披露实施例流提供的一种神经网络芯片的结构示意图;
图6a-图6b为本申请实施例提供的两种映射电路的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本披露方案,下面将结合本披露实施例中的附图,对本 披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本披露一部分实 施例,而不是全部的实施例。基于本披露中的实施例,本领域普通技术人员在没有作出创造性劳 动前提下所获得的所有其他实施例,都属于本披露保护的范围。
在第一方面提供的装置中,所述主处理电路,用于接收正向运算指令,解析所述正向运算指 令得到所述正向运算指令在所述神经网络正向运算中的第i层所包含的第一运算指令以及所述第 一运算指令所需的输入数据块以及权值数据块,所述i的取值范围为大于等于1,且小于等于n的 整数,如所述i大于等于2,所述输入数据块为第i-1层的输出数据块;
所述主处理电路,用于依据所述第一运算指令将所述输入数据块划分成广播数据块,将所述 卷积核数据块划分成分发数据块;依据所述第一正向指令的运算控制确定启动第一映射电路对第 一数据块进行处理,得到处理后的第一数据块;所述第一数据块包括所述分发数据块和/或所述广 播数据块;依据所述卷积指令将处理后的第一数据块发送至与所述主处理电路相连的基础处理电 路中的至少一个基础处理电路;
所述多个基础处理电路,用于依据所述第一运算指令的运算控制确定是否启动第二映射电路 对第二数据块进行处理,依据处理后的第二数据块以并行方式执行神经网络中的运算得到运算结 果,并将该运算结果通过与所述主处理电路连接的基础处理电路传输给所述主处理电路;所述第 二数据块为所述基础处理电路确定的接收所述主处理电路发送的数据块,所述第二数据块与所述 处理后的第一数据块关联;
所述主处理电路,用于将所述运算结果进行处理得到所述第一运算指令的指令结果,完成所 述第i层包含的所述第一运算指令的运算。
在第一方面提供的装置中,当所述第一数据块包括分发数据块和广播数据块时,所述主处理 电路,具体用于启动所述第一映射电路对所述分发数据块和所述广播数据块进行处理得到处理后 的分发数据块以及该分发数据块关联的标识数据块,处理后的广播数据块以及该广播数据块关联 的标识数据块;将所述处理后的分发数据块以及该分发数据块关联的标识数据块进行拆分处理得 到多个基本数据块以及所述基本数据块各自关联的标识数据块,将所述多个基本数据块以及所述 多个基本数据块各自关联的标识数据块分发至与其连接的基础处理电路,将所述处理后的广播数 据块以及该广播数据块关联的标识数据块广播至与其连接的基础处理电路;其中,所述标识数据 块具体可用直接索引或者步长索引的方式来表示,可选的还可用列表的列表(List of Lists,LIL)、 坐标列表(Coordinate list,COO)、压缩稀疏行(Compressed Sparse Row,CSR)、压缩稀疏列(Compressed Sparse Column,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 BDA0001583951140000041
第一阈值 为0.05,则该基本数据块关联的标识数据块为
Figure BDA0001583951140000042
关于第一映射电路和第二映射电路对数据 块的处理将在后文进行具体阐述。
在第一方面提供的装置中,当所述第一数据块包括分发数据块时,所述主处理电路,具体用 于启动所述第一映射电路对所述分发数据块进行处理得到处理后的分发数据块以及该分发数据块 关联的标识数据块,或者启动所述第一映射电路根据预存的所述分发数据块关联的标识数据块对 所述分发数据块进行处理得到处理后的分发数据块;将所述处理后的分发数据块以及该分发数据 块关联的标识数据块进行拆分处理得到多个基本数据块以及所述基本数据块各自关联的标识数据 块,将所述多个基本数据块以及所述多个基本数据块各自关联的标识数据块分发至与其连接的基 础处理电路,将所述广播数据块广播至与其连接的基础处理电路;
所述基础处理电路,具体用于启动所述第二映射电路根据所述基本数据块关联的标识数据块 对所述广播数据块进行处理,得到处理后的广播数据块;对所述处理后的广播数据块和所述处理 后的基本数据块执行正向运算得到运算结果,将所述运算结果发送至所述主处理电路。
在可选实施例中,所述主处理电路,还具体用于将所述广播数据块或处理后的广播数据块以 及该广播数据块关联的标识数据块进行拆分处理得到多个部分广播数据块以及所述多个部分广播 数据块各自关联的标识数据块;将所述多个部分广播数据块以及所述多个部分广播数据块各自关 联的标识数据块通过一次或多次广播给所述基础处理电路;其中,所述多个部分广播数据块组合 形成所述广播数据块或处理后的广播数据块。
相应地,所述基础处理电路,具体用于启动所述第二映射电路根据所述部分广播数据块关联 的标识数据块以及所述基本数据块关联的标识数据块得到连接标识数据块;根据所述连接标识数 据对所述部分广播数据块以及所述基本数据块进行处理得到处理后的部分广播数据块以及处理后 的基本数据块;对所述处理后的部分广播数据块以及所述处理后的基本数据块执行正向运算。
其中,该连接标识数据块是通过对所述基本数据块关联的标识数据块和所述部分广播数据块 关联的标识数据块进行逐元素与操作而获得的数据块。可选的,该连接标识数据块用于表示两个 数据块(具体为基本数据块以及广播数据块)中数据均大于绝对值的数据。具体在后文进行详述。
例如,分发数据块关联的标识数据块为2*3的矩阵
Figure BDA0001583951140000043
部分广播数据块关联的标识数 据块为2*2的矩阵
Figure BDA0001583951140000044
则对应获得的连接标识数据块为
Figure BDA0001583951140000045
在第一方面提供的装置中,当所述第一数据块包括广播数据块时,所述主处理电路,具体用 于启动所述第一映射电路对所述广播数据块进行处理,得到处理后的广播数据块以及该广播数据 块关联的标识数据块,或者启动所述第一映射电路根据预存的所述广播数据块关联的标识数据块 对所述广播数据块进行处理得到处理后的广播数据块;对所述分发数据块进行拆分处理得到多个 基本数据块;将所述多个基本数据块分发至与其连接的基础处理电路,将所述处理后的广播数据 块以及该广播数据块关联的标识数据块广播至与其连接的基础处理电路;
所述基础处理电路,具体用于启动所述第二映射电路根据所述广播数据块关联的标识数据块 对所述基本数据块进行处理得到处理后的基本数据块;对所述处理后的广播数据块和所述处理后 的基本数据块执行正向运算得到运算结果,将所述运算结果发送至所述主处理电路。
在可选实施例中,所述主处理电路,还具体用于将所述处理后的广播数据块和该广播数据块 关联的标识数据块进行拆分处理得到多个部分广播数据块以及所述多个部分广播数据块关联的标 识数据块;将所述多个部分广播数据块以及所述多个部分广播数据块各自关联的标识数据块通过 一次或多次广播给所述基础处理电路;其中,所述多个部分广播数据块组合形成所述广播数据块 或处理后的广播数据块。
相应地,所述基础处理电路具体用于根据所述部分广播数据块关联的标识数据块对所述基本 数据块进行处理得到处理后的基本数据块;对所述处理后的基本数据块以及所述部分广播数据块 执行正向运算。
在第一方面提供的装置中,所述主处理电路,具体用于将该广播数据块(具体可为所述广播 数据块或者处理后的广播数据块)通过一次广播发送至与其连接的所述基础处理电路。
在第一方面提供的装置中,所述基础处理电路,具体用于将该基本数据块(同理可为所述基 本数据块或处理后的基本数据块)与该广播数据块执行正向运算处理得到正向运算结果,将所述 正向运算结果累加得到运算结果,将所述运算结果发送至所述主处理电路。
在第一方面提供的装置中,所述基础处理电路,具体用于该基本数据块与该广播数据块执行 正向运算处理得到处理结果,将所述处理结果累加得到运算结果,将所述运算结果发送至所述主 处理电路;
所述主处理电路,用于对所述运算结果累加后得到累加结果,将该累加结果排列得到所述指 令结果。
在第一方面提供的装置中,所述主处理电路,具体用于将所述广播数据块分成多个部分广播 数据块,将所述多个部分广播数据块通过多次广播至所述基础处理电路;所述多个部分广播数据 块组合形成所述广播数据块。
在第一方面提供的装置中,所述主处理电路,具体用于如所述第一运算指令的类型为乘法指 令,确定所述输入数据为分发数据块,所述权值数据为广播数据块;如所述第一运算指令的类型 为卷积指令,确定所述输入数据为广播数据块,所述权值数据为分发数据块。
在第一方面提供的装置中,所述基础处理电路,具体用于将该部分广播数据块(具体可为部 分广播数据块或者处理后的部分广播数据块)与该基本数据块执行一次内积处理后得到内积处理 结果,将所述内积处理结果累加得到部分运算结果,将所述部分运算结果发送至所述主处理电路。
在第一方面提供的装置中,所述基础处理电路,具体用于复用n次该部分广播数据块执行该 部分广播数据块与该n个基本数据块内积运算得到n个部分处理结果,将n个部分处理结果分别 累加后得到n个部分运算结果,将所述n个部分运算结果发送至主处理电路,所述n为大于等于2 的整数。
在第一方面提供的装置中,所述第i层的运算还包括:偏执运算、全连接运算、GEMM运算、 GEMV运算、激活运算中的一种或任意组合。
在第一方面提供的装置中,所述主处理电路包括:主寄存器或主片上缓存电路;
所述基础处理电路包括:基本寄存器或基本片上缓存电路。
在第一方面提供的装置中,所述主处理电路包括:向量运算器电路、算数逻辑单元电路、累 加器电路、矩阵转置电路、直接内存存取电路或数据重排电路中的一种或任意组合。
在第一方面提供的装置中,所述输入数据块可用张量表示,其具体可为:向量、矩阵、三维 数据块、四维数据块以及n维数据块中一种或任意组合;
所述权值数据块可用张量表示,其具体可为:向量、矩阵、三维数据块、四维数据块以及n 维数据块中一种或任意组合。
如图3所示,为本披露提供的一种集成电路芯片装置,所述集成电路芯片装置用于执行神经 网络正向运算,所述神经网络包含n层;所述主处理电路包括第一映射电路,所述多个基础处理 电路中至少一个电路包括第二映射电路,所述第一映射电路以及所述第二映射电路均用于执行神 经网络运算中的各个数据的压缩处理;
所述主处理电路,用于接收正向运算指令,解析所述正向运算指令得到所述正向运算指令在 所述神经网络正向运算中的第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 BDA0001583951140000081
第一 阈值为0.05,则经过第一映射电路处理后可获得处理后的矩阵数据块
Figure BDA0001583951140000082
与该矩 阵数据块关联的标识数据块(也可称为mask矩阵)为
Figure BDA0001583951140000083
进一步地,为减少数据传输量,所述主处理电路再向与其连接的基础处理电路中分发数据时, 可发送所述处理后的矩阵数据块中的目标数据(本例中即为1,0.06和0.5)以及该矩阵数据块关联 的标识数据块。具体实施时,所述主处理电路可按照设定规则将所述处理后的矩阵数据块中的目 标数据分发至基础处理电路中,例如按照行顺序依次发送或者按照列顺序依次等等,本申请不做 限定。相应地,基础处理电路在接收到所述目标数据以及该目标数据对应关联的标识数据块后, 按照设定规则(例如行顺序)将其还原为处理后的矩阵数据块。例如本例中,基础处理电路可根 据接收的数据(1,0.06和0.5)以及标识数据块
Figure BDA0001583951140000084
可获知该数据对应的矩阵数据块(即 主处理电路中第一映射电路处理后的矩阵数据块)为
Figure BDA0001583951140000085
在本发明实施例中,该第一输入数据可为横向数据块和/或竖向数据块。
相应地,第二映射电路可利用第一输入数据关联的标识数据对第二输入数据进行处理,从而 获得处理后的第二输入数据;其中第一输入数据与所述第二输入数据不同。例如当所述第一输入 数据为至少一个权值时,则所述第二输入数据可为至少一个输入神经元;或者,当所述第一输入 数据为至少一个输入神经元时,则所述第二输入数据可为至少一个权值。
在本发明实施例中,该第二输入数据与所述第一输入数据不同,所述第二输入数据可为以下 中的任一个:横向数据块、基本数据块、竖向数据块以及部分竖向数据块。
例如,当所述第一输入数据为横向数据块时,则第二输入数据为部分竖向数据块。假设第二 输入数据为矩阵数据块
Figure BDA0001583951140000091
相应地利用上例中mask矩阵
Figure BDA0001583951140000092
处 理后,获得处理后的部分竖向数据块为
Figure BDA0001583951140000093
由于在实际应用中,输入数据涉及的矩 阵数据块维数较大,本申请这里仅为示意,本不构成限定。
第二实施例中:
所述第一映射电路可用于对第一输入数据和第二输入数据进行处理,以得到处理后的第一输 入数据以及所述第一输入数据关联的第一标识mask数据、处理后的第二输入数据以及所述第二输 入数据关联的第二标识mask数据。其中,所述第一mask数据或者第二mask数据用于指示第一或 第二输入数据的绝对值是否大于第二阈值,该第二阈值为用户侧或装置侧自定义设置的,例如0.05、 0等等。
所述处理后的第一输入数据或第二输入数据可为处理后的输入数据,也可为未处理前的输入 数据。例如,第一输入数据为横向数据块,如上述例子中的矩阵数据块
Figure BDA0001583951140000094
经过第一映射电路处理后可获得处理后的横向数据块,这里处理后的横向数据块可为原矩阵数据 块
Figure BDA0001583951140000095
也可为压缩处理后的矩阵数据块
Figure BDA0001583951140000096
应理解的,本申 请为减少数据量的传输以及基础处理电路中数据处理效率,优选地所述处理后的输入数据(如处 理后的基本数据块或部分竖向数据块等)应为压缩处理后的数据。优选地,主处理电路向基础处 理电路中发送的数据,具体可为所述处理后的输入数据中的目标数据,该目标数据具体可为绝对 值大于预设阈值的数据,也可为非0数据等等。
相应地在基础处理电路中,第二映射电路可根据所述第一输入数据关联的第一标识数据以及 所述第二输入数据关联的第二标识数据得到连接标识数据;该连接标识数据用于指示所述第一输 入数据和所述第二输入数据中绝对值均大于第三阈值的数据,其中第三阈值为用户侧或装置侧自 定义设置的,如0.05、0等。进一步地,所述第二映射电路可根据所述连接标识数据分别对接收的 第一输入数据和第二输入数据进行处理,从而获得处理后的第一输入数据和处理后的第二输入数 据。
例如,第一输入数据为矩阵数据块
Figure BDA0001583951140000097
第二输入数据块同样也为矩阵 数据块
Figure BDA0001583951140000098
经过第一映射电路处理后可获得该第一输入数据关联的第一标 识数据块
Figure BDA0001583951140000099
以及处理后的第一输入数据块
Figure BDA00015839511400000910
相应地获得该第二输 入数据关联的第二标识数据块
Figure BDA00015839511400000911
处理后的第二输入数据块为
Figure BDA00015839511400000912
相应地,为提高数据传输速率,主处理电路中仅可将处理后的第一输入数据块中的目标数据1,0.06 和0.5、以及该第一输入数据块关联的第一标识数据块发送给基础处理电路;同时,将处理后的第 二输入数据块中的目标数据1,1.1,0.6,0.3和0.5,以及该第二输入数据块关联的第二标识数据块发 送给基础处理电路。
相应地,基础处理电路在接收到上述数据后,可通过第二映射电路对上述第一标识数据块和 第二标识数据块进行逐元素与操作,得到连接标识数据块
Figure BDA0001583951140000101
相应地,第二映射电路 利用该连接标识数据块分别对所述处理后的第一输入数据块和处理后的第二输入数据块分别进行 处理,从而获得处理后的第一输入数据块为
Figure BDA0001583951140000102
处理后的第二输入数据块为
Figure BDA0001583951140000103
其中,在基础处理电路中可根据第一标识数据块以及接收的第一数据块中的目 标数据,确定出该目标数据对应所在的第一数据块(即经过第一映射电路处理后的第一数据块); 相应地,根据第二标识数据块以及接收的第二数据块中的目标数据,确定出该目标数据对应所在 的第二数据块(即经过第一映射电路处理后的第二数据块);然后,在第二映射电路获知连接标识 数据块后,利用该连接标识数据块分别与确定的第一数据块和确定的第二数据块进行逐元素与操 作,以获得经由第二映射电路处理后的第一数据块和处理后的第二数据块。
第三实施例中:
所述主处理电路中并不会设置第一映射电路,但所述主处理电路可将第三输入数据以及预存 的所述第三输入数据关联的第三标识数据发送至与其连接的基础处理电路中。该基础处理电路中 设置有第二映射电路。下面阐述第二映射电路涉及的数据压缩处理的具体实施例。
应理解的,所述第三输入数据包括但不限于基础数据块、部分竖向数据块、竖向数据块等。 同样地,在神经网络处理器中,该第三输入数据也可为至少一个权值,和/或至少一个输入神经, 本申请不做限定。
在第二映射电路中,所述第二映射电路可根据接收的第三输入数据关联的第三标识数据对所 述第三输入数据进行处理,从而获得处理后的第三输入数据,以便后续对处理后的第三输入数据 执行相关运算操作,如内积运算等。
例如,第二映射电路接收的第三输入数据为矩阵数据块
Figure BDA0001583951140000104
相应地预 存的该第三输入数据关联的第三标识数据块(也成mask矩阵数据块)为
Figure BDA0001583951140000105
进一步 地,第二映射电路根据第三标识数据块对第三输入数据块进行处理得到处理后的第三输入数据块 具体为
Figure BDA0001583951140000106
此外,本发明实施例中提到的输入神经元和输出神经元并非是指整个神经网络的输入层中的 神经元和输出层中的神经元,而是对于神经网络中任意相邻的两层神经元,处于网络前馈运算下 层中的神经元即为输入神经元,处于网络前馈运算上层中的神经元即为输出神经元。以卷积神经 网络为例,假设一个卷积神经网络有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表示卷积的位置向上滑动一格。
具体的,该卷积处理的方式可以采用如图3所示的芯片结构处理,主处理电路的第一映射电 路可将权值的部分或全部卷积核中的数据进行处理,得到对应的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数据也采用上述相同的方法每次发生一个数或一部分数据给那个基础处理电 路;
主处理电路的控制电路把输入数据按照卷积的位置进行划分,主处理电路的控制电路将输入 数据中的部分或全部卷积位置中的数据发送到通过竖向数据输入接口直接与主处理电路相连的那 些基础处理电路;相应地,控制电路同样也会按照卷积的位置对于所述输入数据关联的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数据)之后,将该数据通过其横向的数据输出接口传输给其相连接下一 个基础处理电路;基础处理电路接收到输入数据的数据(该数据可为主处理电路发送的输入数据 以及该输入数据关联的标识mask数据)后,将该数据通过其竖向的数据输出接口传输给与其相连 接的下一个基础处理电路;
具体的,主处理电路的控制电路可将输入数据以及该输入数据关联的mask数据一起发送给基 处理电路,基础处理电路接收该输入数据以及该输入数据关联的mask数据;
每一个基础处理电路对接收到的数据进行运算;具体的,基础处理电路可启用第二映射电路 根据输入数据关联的mask数据以及权值数据关联的mask数据(即权值中卷积核所关联的mask数 据)得到连接标识数据;再利用连接标识数据选择输入数据以及权值数据中绝对值大于预设阈值 的数据进行乘法运算;
在一种可选方案中,每个基础处理电路中若接收的数据(具体可为待计算的数据块,如权值 中卷积核中的数据以及该数据关联的mask数据、输入数据或者该输入数据关联的mask数据)的 数据量超过预设阈值时,该基础处理电路将不再接收新的输入数据,如主处理电路将后续发送的 权值中某几个卷积核中的数据以及该数据对应关联的mask数据等等,直至基础处理电路中拥有足 够的缓存/存储空间,再接收主处理电路新发送的数据。
在一种可选方案中,基础处理电路每次计算一组或多组两个数据的乘法,然后将结果累加到 寄存器和/或片上缓存上;
在一种可选方案中,基础处理电路每次计算一组或多组两个向量的内积,然后将结果累加到 寄存器和/或片上缓存上;
基础处理电路计算出结果后,可以将结果从数据输出接口传输出去;
在一种可选方案中,该计算结果可以是内积运算的最终结果或中间结果;
具体地,如果该基础处理电路有直接与主处理电路相连接的输出接口则从该接口传输结果, 如果没有,则向着能够直接向主处理电路输出的基础处理电路的方向输出结果(例如图3中,最 下面一行基础处理电路将其输出结果直接输出给主处理电路,其他基础处理电路从竖向的输出接 口向下传输运算结果)。
基础处理电路接收到来自其他基础处理电路的计算结果之后,将该数据传输给与其相连接的 其他基础处理电路或者主处理电路;
向着能够直接向主处理电路输出的方向输出结果(例如,最下面一行基础处理电路将其输出 结果直接输出给主处理电路,其他基础处理电路从竖向的输出接口向下传输运算结果);
主处理电路接收到各个基础处理电路内积运算的结果,即可得到输出结果。
使用如图3所示装置可完成张量乘张量的运算,所述张量和前文所述的数据块相同,其可为 矩阵、向量、三维数据块、四位数据块以及高维数据块中的任一项或多项的组合;下面如图4b和 4d分别示出矩阵乘向量和矩阵乘矩阵运算的具体实现方法。
参阅图4a,图4a为一种矩阵乘以矩阵的运算,当所述第一运算指令所指示的正向运算为矩阵 乘矩阵运算,所述输入数据为所述矩阵乘矩阵运算的第一矩阵,所述权值为所述矩阵乘矩阵运算 的第二矩阵。
参阅图4b,使用如图3所示的装置完成矩阵乘矩阵的运算;
下面描述计算尺寸是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层包含的第一运算指 令的运算。
本披露还揭露了一个神经网络运算装置,其包括一个或多个在如图3所示的芯片,用于从其 他处理装置中获取待运算数据和控制信息,执行指定的神经网络运算,执行结果通过I/O接口传递 给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个 以上神如图3所示的芯片时,如图3所示的芯片间可以通过特定的结构进行链接并传输数据,譬 如,通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算。此时,可以共享同 一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。 此外,其互联方式可以是任意互联拓扑。
该神经网络运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
在一个实施例里,本发明公开了一种芯片(如图5),用于执行如上所述方法实施例中提供的 所有或部分实施方式。
在一个实施例里,本发明公开了一种电子装置,其包括用于执行如上所述方法实施例中的所 有或部分实施方式的功能单元。
电子装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、 行车记录仪、导航仪、传感器、摄像头、服务器、相机、摄像机、投影仪、手表、耳机、移动存 储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电 饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心 电图仪。
以上所述的具体实施例,对本披露的目的、技术方案和有益效果进行了进一步详细说明,所 应理解的是,以上所述仅为本披露的具体实施例而已,并不用于限制本披露,凡在本披露的精神 和原则之内,所做的任何修改、等同替换、改进等,均应包含在本披露的保护范围之内。

Claims (9)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810164841.4A CN110197273B (zh) 2018-02-27 2018-02-27 集成电路芯片装置及相关产品
PCT/CN2019/075979 WO2019165940A1 (zh) 2018-02-27 2019-02-23 集成电路芯片装置、板卡及相关产品

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN110197273A CN110197273A (zh) 2019-09-03
CN110197273B true CN110197273B (zh) 2020-08-25

Family

ID=67750979

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN110197273B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106447034A (zh) * 2016-10-27 2017-02-22 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107316078A (zh) * 2016-04-27 2017-11-03 北京中科寒武纪科技有限公司 用于执行人工神经网络自学习运算的装置和方法
CN107609641A (zh) * 2017-08-30 2018-01-19 清华大学 稀疏神经网络架构及其实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107316078A (zh) * 2016-04-27 2017-11-03 北京中科寒武纪科技有限公司 用于执行人工神经网络自学习运算的装置和方法
CN106447034A (zh) * 2016-10-27 2017-02-22 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107609641A (zh) * 2017-08-30 2018-01-19 清华大学 稀疏神经网络架构及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"DaDianNao: A Machine-Learning Supercomputer";Yunji Chen,Tao Luo,et.al.;《2014 47th Annual IEEE/ACM International Symposium on Microarchitecture》;20150119;第609-622页 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110197270B (zh) 集成电路芯片装置及相关产品
CN109993301B (zh) 神经网络训练装置及相关产品
CN111160542A (zh) 集成电路芯片装置及相关产品
CN109993291B (zh) 集成电路芯片装置及相关产品
US11710031B2 (en) Parallel processing circuits for neural networks
CN110197274B (zh) 集成电路芯片装置及相关产品
US11704544B2 (en) Integrated circuit chip device and related product
CN110197265B (zh) 集成电路芯片装置及相关产品
CN111767998B (zh) 集成电路芯片装置及相关产品
CN109993292B (zh) 集成电路芯片装置及相关产品
CN110197275B (zh) 集成电路芯片装置及相关产品
CN110197273B (zh) 集成电路芯片装置及相关产品
CN110197272B (zh) 集成电路芯片装置及相关产品
CN110197263B (zh) 集成电路芯片装置及相关产品
CN110197271B (zh) 集成电路芯片装置及相关产品
CN109993289B (zh) 集成电路芯片装置及相关产品
CN110197266B (zh) 集成电路芯片装置及相关产品
CN111767997B (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