CN108205700A - 神经网络运算装置和方法 - Google Patents

神经网络运算装置和方法 Download PDF

Info

Publication number
CN108205700A
CN108205700A CN201711360244.0A CN201711360244A CN108205700A CN 108205700 A CN108205700 A CN 108205700A CN 201711360244 A CN201711360244 A CN 201711360244A CN 108205700 A CN108205700 A CN 108205700A
Authority
CN
China
Prior art keywords
matrix
memory space
bit
module
result
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
CN201711360244.0A
Other languages
English (en)
Other versions
CN108205700B (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
Publication of CN108205700A publication Critical patent/CN108205700A/zh
Application granted granted Critical
Publication of CN108205700B publication Critical patent/CN108205700B/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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • 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
    • G06N3/065Analogue means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本披露提供了一种神经网络运算装置及方法。其中,神经网络运算装置包括子矩阵划分模块,用于将卷积核矩阵作为第一矩阵,将每个子矩阵作为第二矩阵;矩阵元素存储模块,含多存储空间,用于按规则接收第一矩阵中的矩阵元素转换后的二进制数;符号运算模块,用于确定运算结果符号位;数值运算模块,用于将相应位置的矩阵元素相加,将相加结果左移i‑j位,得到运算中间结果;累加模块,用于将第1~i‑1个存储空间中的运算中间结果相加,得到第一矩阵与第二矩阵的乘加运算结果;卷积结果获取模块,用于按照滑动顺序,将所述多个乘加运算结果组成矩阵,作为卷积运算结果。

Description

神经网络运算装置和方法
技术领域
本披露涉及数据处理技术领域,具体涉及一种神经网络运算装置,以及神经网络运算方法。
背景技术
对于神经网络领域,需要做大量乘加运算的操作。卷积操作作为其中一个经常使用的重要操作,也存在着存储资源与运算资源需求大的问题。
矩阵运算在各个研究领域的数据处理中有着广泛的应用。当处理数据非常庞大时,矩阵的存储及运算需要占用大量的存储资源和运算资源。
发明内容
本披露第一方面,提供一种神经网络运算装置,包括:
子矩阵划分模块,用于以卷积核矩阵为滑动窗口在神经元矩阵上滑动,每滑动一次,得到一个神经元矩阵中与卷积核矩阵规模相同的子矩阵,将卷积核矩阵作为第一矩阵,将每个子矩阵作为第二矩阵;
矩阵元素存储模块,包含多个存储空间,该多个存储空间用于按规则接收第一矩阵中的M×N个矩阵元素的M×N个二进制数,该规则为:所述多个存储空间的编号依次为第0个至第i-1个存储空间,i为所述二进制数的位宽,每个存储空间大小为K比特,K等于第一矩阵中的矩阵元素的个数且K=M×N,其中,第0个存储空间用于存储K个二进制数的符号位,第j个存储空间用于存储每个二进制数中第i-j+1位的比特,所述i、j、k、M和N均为正整数,并且,i≥2,1≤j≤i;
符号运算模块,用于将所述第0个存储空间中每个比特所表示的符号分别与第二矩阵中对应元素的符号进行异或运算,并将运算结果作为第二矩阵中对应元素的符号位;
数值运算模块,包括至少一个移位运算器和至少一个加法器,用于根据第j个存储空间中比特值为1的位所对应矩阵元素在矩阵中的位置,从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加,将相加结果左移或右移i-j位,得到运算中间结果;
累加模块,用于将第1~i-1个存储空间中的运算中间结果相加,得到第一矩阵与第二矩阵的乘加运算结果;
卷积结果获取模块,用于按照滑动顺序,将所述多个乘加运算结果组成矩阵,作为卷积运算结果。
在进一步的实施方案中,所述矩阵元素存储模块中,第一矩阵中矩阵元素与每个所述存储空间中各个比特位的对应关系为:每个存储空间中第k个比特位分别存储第一矩阵中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=(m-1)×N+n,N为第一矩阵的总列数,1≤m≤M,1≤n≤N。
在进一步的实施方案中,所述第一矩阵中矩阵元素与每个存储空间中各个比特位的对应关系为:第k个比特位存储卷积核矩阵A中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=m+(n-1)×M,M为第一矩阵的总行数,1≤m≤M,1≤n≤N。
在进一步的实施方案中,所述数值运算模块根据所述对应关系从第二矩阵中对应元素所在位置提取相应的矩阵元素。
在进一步的实施方案中,所述数值运算模块还用于:当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,则调取已计算的结果。
在进一步的实施方案中,还包括中间存储模块,用于存储0~i-1个存储空间中具有至少两个相同位的比特值为1时对应的第二矩阵元素相加后的结果,以供所述数值运算模块调取。
在进一步的实施方案中,所述矩阵元素存储模块为高速缓存存储器或者寄存器。
在进一步的实施方案中,所述加法器用于根据第j个存储空间中比特值为1所对应矩阵元素在矩阵中的位置,从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加。
在进一步的实施方案中,所述移位运算器用于将加法器中矩阵元素的相加结果左移i-j位,得到运算中间结果。
在进一步的实施方案中,所述加法器还用于当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,从所述中间存储模块获取已计算的结果作为加法器的输入数据。
在进一步的实施方案中,所述第一矩阵和第二矩阵中矩阵行列数相同且矩阵元素为定点数。
在进一步的实施方案中,所述第一矩阵和第二矩阵中矩阵行列数相同且矩阵元素为定点数。
根据本披露的第二方面,提供一种应用上述任一所述神经网络运算装置进行卷积运算的方法,包括:
使用子矩阵划分模块,以卷积核矩阵为滑动窗口在神经元矩阵上滑动,每滑动一次,得到一个神经元矩阵中与卷积核矩阵规模相同的子矩阵,将卷积核矩阵作为第一矩阵,将每个子矩阵作为第二矩阵:
矩阵元素存储模块中的多个存储空间按所述规则接收第一矩阵中的M×N个矩阵元素转换后的M×N个二进制数,将第一矩阵中的M×N个矩阵元素转换后的M×N个二进制数存入矩阵元素存储模块的0~i-1个存储空间,i为所述二进制数的位宽,每个存储空间大小均为K比特,K等于第一矩阵中的矩阵元素的个数,其中,第0个存储空间用于存储M×N个二进制数的符号位,第j个存储空间用于存储每个二进制数中第i-j+1位的比特,所述i、j、k均为正整数,并且,i≥2,1≤j≤i;
符号运算模块将第0个存储空间中每个比特所表示的符号分别与第二矩阵中对应元素的符号进行异或运算,并将运算结果作为第二矩阵中对应元素的符号位;
数值运算模块对于任意的第j个存储空间,根据该存储空间中比特值为1的位置从第二矩阵中提取相应的矩阵元素,并将这些矩阵元素相加,并将相加结果左移i-j位,得到运算中间结果;
累加模块将第1~i-1个存储空间中的运算中间结果相加,得到第一矩阵与第二矩阵的乘加运算结果;
卷积结果获取模块获取每个子矩阵与第一矩阵的乘加运算结果,并按照滑动顺序,将所述多个乘加运算结果组成矩阵,作为卷积运算结果。
在进一步的实施方案中,所述第一矩阵中矩阵元素与每个所述存储空间中各个比特位的对应关系为:每个存储空间中第k个比特位分别存储第一矩阵中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=(m-1)×N+n,N为第一矩阵的总列数,1≤m≤M,1≤n≤N。
在进一步的实施方案中,所述第一矩阵中矩阵元素与每个存储空间中各个比特位的对应关系为:第k个比特位存储卷积核矩阵A中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=m+(n-1)×M,M为第一矩阵的总行数,1≤m≤M,1≤n≤N。
在进一步的实施方案中,所述数值运算模块根据所述对应关系从第二矩阵中对应元素所在位置提取相应的矩阵元素。
在进一步的实施方案中,当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,通过数值运算模块调取已计算的结果。
在进一步的实施方案中,还包括采用一中间存储模块存储0~i-1个存储空间中具有至少两个相同位的比特值为1时对应的第二矩阵元素相加后的结果,以供所述数值运算模块调取。
在进一步的实施方案中,还包括根据第j个存储空间中比特值为1所对应矩阵元素在矩阵中的位置,用所述加法器从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加。
在进一步的实施方案中,采用移位运算器将加法器中矩阵元素的相加结果左移i-j位,得到运算中间结果。
在进一步的实施方案中,当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,采用所述加法器从获取已计算的结果作为加法器的输入数据。
在进一步的实施方案中,还包括通过转换单元将第一矩阵中的M×N个矩阵元素的M×N个二进制数按所述规则进行转换。
根据本披露的第三方面,提供以上所述神经网络运算装置,用于从外部获取待运算数据和控制信息,执行神经网络运算,执行结果通过I/O接口传出;优选的,包含多个矩阵乘加运算装置,矩阵乘加运算装置通过进行链接并传输数据。
根据本披露的第三方面,一种组合处理装置,包括:
以上所述的神经网络运算装置;通用互联接口;以及非神经网络运算装置;其中,所述神经网络运算装置通过通用互联接口与非神经网络运算装置进行交互,共同完成用户指定的操作。
根据本披露的第四方面,提供一种芯片,包括以上所述的神经网络运算装置或所述的组合处理装置。
根据本披露的第五方面,提供一种电子装置,包括以上所述的芯片。
本披露具有以下优点:
本披露的矩阵元素存储模块存储第一矩阵的方式为阵列式存储,各行分别为各自存储空间,第一矩阵的二进制数各位则按照规则存入不同的存储空间,以提高后续乘加运算的效率;
本披露采用统一存储空间存储第一矩阵多个定点数的相同二进制位,只需根据每个存储空间,提取“非0”比特位所对应的第二矩阵进行加法和移位运算,无需进行乘法运算,减少了运算量;而且,相应硬件上通过移位运算器和加法运算器代替乘法运算器,硬件上节省了开销;
本披露中,对于任意多个存储空间,如果存在相同的加法操作,则只进行一次加法运算,该多个存储空间共享此加法运算结果,减少了相同运算的次数,进一步减少了运算量;
神经网络运算中通过采用本披露的矩阵乘加运算方法,可以大幅提高运算速度,减少运算量,降低存储资源与运算资源的需求。
附图说明
图1为本披露实施例提供的神经网络卷积运算的示例图;
图2为本披露实施例提供的矩阵乘加运算装置的结构示意图;
图3为本披露实施例提供的矩阵乘加运算方法的流程图;
图4为本披露实施例提供的另一种矩阵乘加运算装置的结构示意图;
图5为本披露实施例提供的存储空间转换示意图;
图6为本披露实施例提供的加法移位运算的示意图;
图7为本披露实施例提供的一种共享运算结果示意图;
图8为本披露实施例提供的神经网络运算装置的结构示意图;
图9为本披露实施例提供的神经网络卷积运算方法的流程图;
图10为本披露实施例组合处理装置的示意图。
具体实施方式
为使本披露的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本披露进一步详细说明。本披露的优点以及功效将通过本披露下述内容而更为显著。在此说明所附附图简化过且做为例示用。附图中所示的组件数量、形状及尺寸可依据实际情况而进行修改,且组件的配置可能更为复杂。本披露中也可进行其他方面的实践或应用,且不偏离本披露所定义的精神及范畴的条件下,可进行各种变化以及调整。
图2为本披露实施例提供的矩阵乘加运算装置的结构示意图;图3为本披露实施例提供的矩阵乘加运算方法的流程图。以下将结合运算装置和运算方法具体说明第一矩阵和第二矩阵的乘加运算。
图2的矩阵乘加运算装置20包括:矩阵元素存储模块210、符号运算模块220,数值运算模块230和累加模块240。该装置用于对第一矩阵和第二矩阵进行乘加运算,第一矩阵和第二矩阵中矩阵行列数相同且矩阵元素为定点数。
其中,矩阵元素存储模块210包含多个存储空间211,该多个存储空间用于将第一矩阵中的M×N个矩阵元素转换后的M×N个二进制数按规则接收,该规则为:所述多个存储空间的编号依次为第0个至第i-1个存储空间,i为所述二进制数的位宽,每个存储空间大小为K比特,K等于第一矩阵中的矩阵元素的个数且K=M×N,其中,第0个存储空间用于存储K个二进制数的符号位,第j个存储空间用于存储每个二进制数中第i-j+1位的比特,所述i、j、k、M和N均为正整数,并且,i≥2,1≤j≤i。这里的多个存储空间是在存储器中开辟的多个实际存储区域,存储数据的方式不同于常规的数据存储方式,而是按照以上所述规则接收转换后的M×N个二进制数。矩阵元素存储模块可以为高速缓存存储器或者寄存器。
其中,第一矩阵中矩阵元素与每个存储空间211中各个比特位的对应关系可以为:第k个比特位存储卷积核矩阵A中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=(m-1)×N+n,N为第一矩阵的总列数,也就是说,本实施例中卷积核矩阵A中的元素是按照先行再列的顺序进行存储的,可以明确的是,本披露的存储顺序也可以是先列再行等其他方式,只要符合相应逻辑即可。可选的先列再行方式为:第k个比特位存储卷积核矩阵A中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=m+(n-1)×M,M为第一矩阵的总行数,1≤m≤M,1≤n≤N。
图5为本披露实施例提供的存储空间示意图,如图5所示,将卷积核的矩阵元素转换为二进制数,例如,8转换为00001000,6转换为00000110,9转换为00001001......得到9个8位的二进制数(最高位为符号位),可以想到的是,本披露转换的二进制数并不限于8位,可以根据数值大小转换为任何位数。然后采用编号为0~7的存储空间来存储这9个二进制数据,如图5所示,第0个存储空间用于存储这9个二进制数的符号,0表示正数,1表示负数,图1所示的矩阵均为正数,故图5中的第0个存储空间中的数值均为0。第7个存储空间用于存储这9个二进制数的最低位,如卷积核中矩阵元素8、6、4、2的最低位是0,卷积核中矩阵元素1、3、5、7、9最低位是1。第6个存储空间用于存储这9个二进制数的倒数第2位,第5个存储空间用于存储这9个二进制数的倒数第3位......以此类推,第1个存储空间用于存储这9个二进制数的最高位。在每个存储空间中,各个元素的存储顺序是,第1行第1列元素存储在第1位,第1行第2列元素存储在第2位,第1行第3列元素存储在第3位,第2行第1列元素存储在第4位......即按先行后列的顺序排列,本披露实施例也可按其他顺序排列,该实施例的顺序以及上述存储空间的编号也可按其他逻辑进行设定。
由于已知第一矩阵元素在各存储空间中的存储顺序,而且第一矩阵和第二矩阵的规模相同(也就是第一矩阵和第二矩阵的行数和列数均相同),不难依据存储空间的比特位置确定出第二矩阵的矩阵元素。
对于符号运算模块220,其用于将所述第0个存储空间中每个比特所表示的符号分别与第二矩阵中对应元素的符号进行异或运算,并将运算结果作为第二矩阵中对应元素的符号位;
请结合图1和图6所示,第0个存储空间中各比特位置均为0,表示第一矩阵各元素均为正数,并且第二矩阵(图1中的左上角子矩阵)的各个元素也均为正数,其符号位也均为0,故在进行异或运算后,所得的第二矩阵各元素符号位的值依然为0。
对于数值运算模块230,其包括至少一个移位运算器和至少一个加法器,用于根据第j个存储空间中比特值为1的位所对应矩阵元素在矩阵中的位置,从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加,将相加结果左移或右移i-j位,得到运算中间结果。
图6为本披露实施例提供的加法移位运算的示意图,如图6所示,由于第0个存储空间已在上述讨论过,而且第1-3个存储空间的值均为0,在图6中就不再示意。从第4个存储空间可以看出,其第1个和第8个比特位上的值为1,则提取第二矩阵(图1中的左上角子矩阵)中第1个值17(第1行第1列)和第8个值6(第3行第2列)相加,等于23,由于第4个存储空间表示各个元素的倒数第4位比特,故相对最低位比特还要向左移3位,得到数值184。从第5个存储空间可以看出,其第3个、第5个、第6个、第7个比特位上的值为1,则提取第二矩阵(图1中的左上角子矩阵)中第3个值1、第5个值5、第6个值7、第7值个4相加,等于17,由于第5个存储空间表示各个元素的倒数第3位比特,故相对最低位比特还要向左移2位,得到数值68。
另外,对于任意多个存储空间,如果存在相同的加法操作,则只进行一次加法运算,该多个存储空间共享此加法运算结果(此加法操作的结果可以存储于一中间存储模块中),这里的多个中间存储模块是在存储器中开辟的多个实际存储区域,用于存储共享运算结果。参见图4所示,矩阵乘加运算装置20还可以包括中间存储模块250,用于存储0~i-1个存储空间中具有至少两个相同位的比特值为1时对应的第二矩阵元素相加后的结果,以供所述数值运算模块调取。图6可以看出,由于第6个和第7个存储空间中第4位比特和第6位均为1,也就是说,需要执行两次以下操作:提取第二矩阵的第4个元素23和第6个元素7,然后执行加法运算,即23+7。这显然存在重复性的操作,故在本披露实施例中,通过构造中间存储模块实现多个存储空间共享运算结果,图7为本披露实施例提供的共享运算结果的示意图,图7中圆形表示存储空间的编号,方块表示各个存储空间对应第二矩阵时,需要进行加法的元素编号,如图7所示,由于第6个和第7个存储空间共同拥有第4位比特的节点和第6位的节点,故在第6个存储空间执行完23+7后,即可将加法结果(此处的加法结果可以存储于中间存储模块)共享给第7个存储空间,无需另第7个存储空间再执行一次23+7,这显然降低了运算量。对应的,多个加法器用于当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,从所述中间存储模块获取已计算的结果作为加法器的输入数据。
对于累加模块240,其用于将第1~i-1个存储空间中的运算中间结果相加,得到第一矩阵与第二矩阵的乘加运算结果。
也就是说,如图6所示,针对所有存储空间进行元素提取、元素相加、移位以后,得到184、68、88、65这几个运算中间结果,将这几个运算中间结果相加得到乘加运算结果405。
图3为本披露实施例提供的矩阵乘加运算方法的流程图。应用图2所示装置的进行乘加运算步骤可以包括:
S1:矩阵元素存储模块210将第一矩阵中的M×N个矩阵元素的M×N个二进制数按规则存入矩阵元素存储模块的0~i-1个存储空间,i为所述二进制数的位宽,每个存储空间大小均为K比特,K等于第一矩阵中的矩阵元素的个数,其中,第0个存储空间用于存储M×N个二进制数的符号位,第j个存储空间用于存储每个二进制数中第i-j+1位的比特,所述i、j、k均为正整数,并且,i≥2,1≤j≤i;
S2:符号运算模块220将第0个存储空间中每个比特所表示的符号分别与第二矩阵中对应元素的符号进行异或运算,并将运算结果作为第二矩阵中对应元素的符号位;
S3:对于任意的第j个存储空间,数值运算模块230根据该存储空间中比特值为1的位置从第二矩阵中提取相应的矩阵元素,并将这些矩阵元素相加,并将相加结果左移i-j位,得到运算中间结果;
S4:累加模块240将第1~i-1个存储空间中的运算中间结果相加,得到第一矩阵与第二矩阵的乘加运算结果。
由上述步骤S1-S4可以看出,本披露实施例只需通过加法和移位即可实现矩阵的乘加运算,相比于乘法操作降低了运算量。同时,本披露实施例通过构造中间存储模块,共享相同的加法运算结果,避免了重复的加法运算,进一步降低了运算量。
图4为本披露实施例提供的另一种矩阵乘加运算装置的结构示意图。如图4所示,本发明实施例的矩阵乘加运算装置还可以包括转换模块200,用于将第一矩阵中的M×N个矩阵元素的M×N个二进制数按规则进行转换,该规则为:所述多个存储空间的编号依次为第0个至第i-1个存储空间,i为所述二进制数的位宽,每个存储空间大小为K比特,K等于第一矩阵中的矩阵元素的个数且K=M×N,其中,第0个存储空间用于存储K个二进制数的符号位,第j个存储空间用于存储每个二进制数中第i-j+1位的比特,所述i、j、k、M和N均为正整数,并且,i≥2,1≤j≤i。该转换模块200可以为处理器的一功能模块。
本披露的矩阵乘加运算装置可以为多个,当为多个时,矩阵乘加运算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的运算,此时,可以共享同一控制系统,也可以有自己的控制系统;可以共享内存也可以每个矩阵乘加运算装置有各自的内存。此外,其互联方式可以是任意互联拓扑。
图1为本披露实施例提供的神经网络卷积运算的示例图,如图1所示,神经网络的卷积核是一个3×3的矩阵,矩阵中的矩阵元素均为定点数,其中,定点数与浮点数的不同之处在于,定点数的小数点固定,其在由二进制数据表示时,二进制数据的每一位均表示数值本身(浮点数所转换的二进制数据存在底数位、指数位和符号位,故其不是每一位均表示数值本身)。图像作为神经元输入至神经网络中,该图像由5×5的矩阵所表示(一个矩阵元素表示图像的一个像素点),在进行3×3矩阵与5×5矩阵卷积运算时,需要将3×3矩阵在5×5矩阵上滑动,如图1所述,3×3矩阵覆盖在5×5矩阵中左上角的3×3矩阵时,两个3×3矩阵进行乘加运算,即对应行列的运算分别相乘然后相加,得到两个3×3矩阵乘加运算结果,如3×3矩阵覆盖在5×5矩阵中左上角的3×3矩阵时,乘加运算结果为405。然后滑动覆盖在5×5矩阵上的3×3矩阵,默认滑动步长为1(当然也可以是其它步长),也就是说3×3矩阵整体右移一格,此时3×3矩阵与覆盖的3×3矩阵再进行乘加运算(由于在左上角的基础上向右滑动了1的步长,此时乘加结果在卷积结果矩阵中对应的位置应该是第1行第2列),依次类推,这样,通过滑动9次3×3矩阵,运算得到9个乘加运算结果,组成如图1所示的卷积结果。
图8为本披露实施例提供的神经网络运算装置的结构示意图。图8所示的神经网络运算装置70包括子矩阵划分模块700,矩阵元素存储模块710(包括多个存储空间711),符号运算模块720,数值运算模块730,累加模块740以及卷积结果获取模块750。
其中子矩阵划分模块700用于以卷积核矩阵为滑动窗口在神经元矩阵上滑动,每滑动一次,得到一个神经元矩阵中与卷积核矩阵规模相同的子矩阵,将卷积核矩阵作为第一矩阵,将每个子矩阵作为第二矩阵;
矩阵元素存储模块710(包括多个存储空间711),符号运算模块720,数值运算模块730,累加模块740可参照图2所示实施例的矩阵乘加运算装置予以设置,在此不予赘述。
对于卷积结果获取模块750,其用于按照滑动顺序,将所述多个乘加运算结果组成矩阵,作为卷积运算结果。
图9为本披露实施例提供的神经网络卷积运算方法的流程图,如图9所示,方法主要包括步骤1-3,其中步骤2为具体的矩阵乘加运算方法(例如图3所示的步骤S1-S4),实施例的神经网络卷积运算具体可以如下:
步骤1:子矩阵划分装置对神经元矩阵划分子矩阵,以卷积核矩阵为滑动窗口在神经元矩阵上滑动,每滑动一次,得到一个神经元矩阵中与卷积核矩阵规模相同的子矩阵。
在如图2所示的实例中,卷积核所表示的3×3矩阵在神经元矩阵(图像)上滑动,从左上角开始,每次滑动一个像素点即可在5×5矩阵上得到与卷积核相同规模子矩阵,通过滑动9次卷积核,得到9个子矩阵。
步骤2:将卷积核矩阵作为第一矩阵,将每个子矩阵作为第二矩阵,通过矩阵乘加装置执行矩阵乘加运算方法,得到多个乘加运算结果。在本步骤中,将卷积核与每一个子矩阵进行乘加运算,得到9个乘加运算结果。本披露实施例在进行乘加运算,无需采用乘法操作,只需要进行加法和移位运算即可实现。
以图1中左上角的3×3的子矩阵与卷积核3×3矩阵乘加运算为例,图3示出了本披露实施例提供的矩阵乘加运算方法的流程图,如图1所示,以卷积核作为第一矩阵,以左上角的子矩阵作为第二矩阵。具体过程可以参照上述矩阵乘加装置和方法的说明,在此不予赘述。
步骤3,卷积结果获取模块750按照滑动顺序,将多个乘加运算结果组成矩阵,作为卷积运算结果。
按照上述步骤S1-S4计算9个子矩阵与卷积核的乘加运算后,得到,9个乘加运算结果,按照卷积核滑动时的顺序,将这9个矩阵组成了如图1所示的3×3矩阵。
本披露的神经网络运算装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的神经网络运算,执行结果通过I/O接口传递给其他处理装置。当包含一个以上神经网络运算装置时,神经网络运算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算,此时,可以共享同一控制系统,也可以有自己的控制系统;可以共享内存也可以每个神经网络运算装置有各自的内存。此外,其互联方式可以是任意互联拓扑。
该神经网络运算装置具有较高的兼容性,可通过pcie接口与各种类型的服务器相连接。
本披露还揭露了一个组合处理装置,其包括上述的神经网络运算装置,通用互联接口,和其他处理装置。神经网络运算装置与其他处理装置(也即非神经网络运算装置)进行交互,共同完成用户指定的操作。图10为本披露组合处理装置的示意图。
其他处理装置,包括中央处理器cpu、图形处理器gpu、神经网络运算器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为神经网络运算装置与外部数据和控制的接口,包括数据搬运,完成对本神经网络运算装置的开启、停止等基本控制;其他处理装置也可以和神经网络运算装置协作共同完成运算任务。
通用互联接口,用于在所述神经网络运算装置与其他处理装置间传输数据和控制指令。该神经网络运算装置从其他处理装置(用于执行非神经网络运算的处理装置)中获取所需的输入数据,写入神经网络运算装置片上的存储装置;可以从其他处理装置中获取控制指令,写入神经网络运算装置片上的控制缓存;也可以读取神经网络运算装置的存储模块中的数据并传输给其他处理装置。
该组合装置可以作为手机、机器人、无人机等智能设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。
在一个实施例里,本披露公开了一个芯片,其包括了上述神经网络运算装置或组合处理装置。
在一个实施例里,本披露公开了一个芯片封装结构,其包括了上述芯片。
在一个实施例里,本披露公开了一个板卡,其包括了上述芯片封装结构。
在一个实施例里,本披露公开了一个电子装置,其包括了上述板卡。
电子装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本披露实施例的存储空间可以是任何适当的存储介质的存储空间;存储介质可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。
另外,在本披露各个实施例中的各功能单元(模块)可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元采用硬件的形式实现时,该硬件可以是电路,包括数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。以上集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
以上所述的具体实施例,对本披露的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本披露的具体实施例而已,并不用于限制本披露,凡在本披露的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本披露的保护范围之内。

Claims (18)

1.一种神经网络运算装置,其特征在于包括:
子矩阵划分模块,用于以卷积核矩阵为滑动窗口在神经元矩阵上滑动,每滑动一次,得到一个神经元矩阵中与卷积核矩阵规模相同的子矩阵,将卷积核矩阵作为第一矩阵,将每个子矩阵作为第二矩阵;
矩阵元素存储模块,包含多个存储空间,该多个存储空间用于按规则接收第一矩阵中的M×N个矩阵元素的M×N个二进制数,该规则为:所述多个存储空间的编号依次为第0个至第i-1个存储空间,i为所述二进制数的位宽,每个存储空间大小为K比特,K等于第一矩阵中的矩阵元素的个数且K=M×N,其中,第0个存储空间用于存储K个二进制数的符号位,第j个存储空间用于存储每个二进制数中第i-j+1位的比特,所述i、j、k、M和N均为正整数,并且,i≥2,1≤j≤i;
符号运算模块,用于将所述第0个存储空间中每个比特所表示的符号分别与第二矩阵中对应元素的符号进行异或运算,并将运算结果作为第二矩阵中对应元素的符号位;
数值运算模块,包括至少一个移位运算器和至少一个加法器,用于根据第j个存储空间中比特值为1的位所对应矩阵元素在矩阵中的位置,从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加,将相加结果左移或右移i-j位,得到运算中间结果;
累加模块,用于将第1~i-1个存储空间中的运算中间结果相加,得到第一矩阵与第二矩阵的乘加运算结果;
卷积结果获取模块,用于按照滑动顺序,将所述多个乘加运算结果组成矩阵,作为卷积运算结果。
2.根据权利要求1所述的神经网络运算装置,其特征在于,所述矩阵元素存储模块中,第一矩阵中矩阵元素与每个所述存储空间中各个比特位的对应关系为:每个存储空间中第k个比特位分别存储第一矩阵中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=(m-1)×N+n,N为第一矩阵的总列数,1≤m≤M,1≤n≤N;或者
所述第一矩阵中矩阵元素与每个存储空间中各个比特位的对应关系为:第k个比特位存储卷积核矩阵A中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=m+(n-1)×M,M为第一矩阵的总行数,1≤m≤M,1≤n≤N。
3.根据权利要求2所述的神经网络运算装置,其特征在于,所述数值运算模块根据所述对应关系从第二矩阵中对应元素所在位置提取相应的矩阵元素。
4.根据权利要求1所述的神经网络运算装置,其特征在于,所述数值运算模块还用于:当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,则调取已计算的结果。
5.根据权利要求4所述的神经网络运算装置,其特征在于,还包括中间存储模块,用于存储0~i-1个存储空间中具有至少两个相同位的比特值为1时对应的第二矩阵元素相加后的结果,以供所述数值运算模块调取。
6.根据权利要求1所述的神经网络运算装置,其特征在于,所述加法器用于根据第j个存储空间中比特值为1所对应矩阵元素在矩阵中的位置,从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加;优选的,所述移位运算器用于将加法器中矩阵元素的相加结果左移i-j位,得到运算中间结果。
7.根据权利要求6所述的神经网络运算装置,其特征在于,所述加法器还用于当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,从所述中间存储模块获取已计算的结果作为加法器的输入数据。
8.根据权利要求1所述的神经网络运算装置,其特征在于,所述第一矩阵和第二矩阵中矩阵行列数相同且矩阵元素为定点数。
9.应用权利要求1-8任一所述神经网络运算装置进行卷积运算的方法,其特征在于包括:
使用子矩阵划分模块,以卷积核矩阵为滑动窗口在神经元矩阵上滑动,每滑动一次,得到一个神经元矩阵中与卷积核矩阵规模相同的子矩阵,将卷积核矩阵作为第一矩阵,将每个子矩阵作为第二矩阵:
矩阵元素存储模块中的多个存储空间按所述规则接收第一矩阵中的M×N个矩阵元素转换后的M×N个二进制数,将第一矩阵中的M×N个矩阵元素转换后的M×N个二进制数存入矩阵元素存储模块的0~i-1个存储空间,i为所述二进制数的位宽,每个存储空间大小均为K比特,K等于第一矩阵中的矩阵元素的个数,其中,第0个存储空间用于存储M×N个二进制数的符号位,第j个存储空间用于存储每个二进制数中第i-j+1位的比特,所述i、j、k均为正整数,并且,i≥2,1≤j≤i;
符号运算模块将第0个存储空间中每个比特所表示的符号分别与第二矩阵中对应元素的符号进行异或运算,并将运算结果作为第二矩阵中对应元素的符号位;
数值运算模块对于任意的第j个存储空间,根据该存储空间中比特值为1的位置从第二矩阵中提取相应的矩阵元素,并将这些矩阵元素相加,并将相加结果左移i-j位,得到运算中间结果;
累加模块将第1~i-1个存储空间中的运算中间结果相加,得到第一矩阵与第二矩阵的乘加运算结果;
卷积结果获取模块获取每个子矩阵与第一矩阵的乘加运算结果,并按照滑动顺序,将所述多个乘加运算结果组成矩阵,作为卷积运算结果。
10.根据权利要求9所述的方法,其特征在于,所述第一矩阵中矩阵元素与每个所述存储空间中各个比特位的对应关系为:每个存储空间中第k个比特位分别存储第一矩阵中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=(m-1)×N+n,N为第一矩阵的总列数,1≤m≤M,1≤n≤N;或者
所述第一矩阵中矩阵元素与每个存储空间中各个比特位的对应关系为:第k个比特位存储卷积核矩阵A中第m行第n列的矩阵元素的比特,其中,1≤k≤K,并且,k=m+(n-1)×M,M为第一矩阵的总行数,1≤m≤M,1≤n≤N。
11.根据权利要求10所述的方法,其特征在于,所述数值运算模块根据所述对应关系从第二矩阵中对应元素所在位置提取相应的矩阵元素。
12.根据权利要求11所述的方法,其特征在于,当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,通过数值运算模块调取已计算的结果。
13.根据权利要求12所述的方法,其特征在于,还包括根据第j个存储空间中比特值为1所对应矩阵元素在矩阵中的位置,用所述加法器从第二矩阵中提取相应位置的矩阵元素,将所述相应位置的矩阵元素相加;优选的,还采用移位运算器将加法器中矩阵元素的相加结果左移i-j位,得到运算中间结果。
14.根据权利要求13所述的方法,其特征在于,还包括:当根据存储空间获取中间结果时,如存在相同位置矩阵元素加法操作时,采用所述加法器从获取已计算的结果作为加法器的输入数据。
15.根据权利要求1-8任一所述神经网络运算装置,用于从外部获取待运算数据和控制信息,执行神经网络运算,执行结果通过I/O接口传出;优选的,包含多个矩阵乘加运算装置,矩阵乘加运算装置通过进行链接并传输数据。
16.一种组合处理装置,包括:
权利要求15所述的神经网络运算装置;
通用互联接口;
非神经网络运算装置;
其中,所述神经网络运算装置通过通用互联接口与非神经网络运算装置进行交互,共同完成用户指定的操作。
17.一种芯片,包括权利要求15所述的神经网络运算装置或权利要求16所述的组合处理装置。
18.一种电子装置,包括权利要求17所述的芯片。
CN201711360244.0A 2016-12-20 2017-12-15 神经网络运算装置和方法 Active CN108205700B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611185917 2016-12-20
CN2016111859179 2016-12-20

Publications (2)

Publication Number Publication Date
CN108205700A true CN108205700A (zh) 2018-06-26
CN108205700B CN108205700B (zh) 2021-07-30

Family

ID=62604918

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201711360246.XA Active CN108205519B (zh) 2016-12-20 2017-12-15 矩阵乘加运算装置和方法、处理装置、芯片、电子装置
CN201711360244.0A Active CN108205700B (zh) 2016-12-20 2017-12-15 神经网络运算装置和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201711360246.XA Active CN108205519B (zh) 2016-12-20 2017-12-15 矩阵乘加运算装置和方法、处理装置、芯片、电子装置

Country Status (4)

Country Link
US (2) US10509998B2 (zh)
EP (1) EP3561736A4 (zh)
CN (2) CN108205519B (zh)
WO (1) WO2018113597A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875925A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种针对卷积神经网络处理器的控制方法及装置
CN108875917A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种用于卷积神经网络处理器的控制方法及装置
CN109542837A (zh) * 2018-11-30 2019-03-29 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN109558565A (zh) * 2018-11-30 2019-04-02 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111260070A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111258641A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111291876A (zh) * 2020-01-21 2020-06-16 厦门星宸科技有限公司 运算装置、运算方法和运算芯片
WO2020231226A1 (en) * 2019-05-16 2020-11-19 Samsung Electronics Co., Ltd. Method of performing, by electronic device, convolution operation at certain layer in neural network, and electronic device therefor
CN114692833A (zh) * 2022-03-30 2022-07-01 深圳齐芯半导体有限公司 一种卷积计算电路、神经网络处理器以及卷积计算方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108271026B (zh) * 2016-12-30 2020-03-31 上海寒武纪信息科技有限公司 压缩/解压缩的装置和系统、芯片、电子装置、方法
US11507814B1 (en) * 2019-09-09 2022-11-22 Meta Platforms Technologies, Llc Neural network based on total hamming distance
GB2594972B (en) * 2020-05-13 2022-08-10 Advanced Risc Mach Ltd Masking row or column positions for matrix processing
GB2594971B (en) * 2020-05-13 2022-10-05 Advanced Risc Mach Ltd Variable position shift for matrix processing
CN113655966B (zh) * 2021-08-23 2022-03-25 海飞科(南京)信息技术有限公司 供并行计算用的交叉存储器伪随机映射方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014235A (en) * 1987-12-15 1991-05-07 Steven G. Morton Convolution memory
JPH0451386A (ja) * 1990-06-19 1992-02-19 Canon Inc ニューラルネットワーク及びその構築方法
US5422836A (en) * 1990-11-15 1995-06-06 Siemens Aktiengesellschaft Circuit arrangement for calculating matrix operations in signal processing
JP2862337B2 (ja) * 1990-06-19 1999-03-03 キヤノン株式会社 ニューラルネットワークの構築方法
CN1374692A (zh) * 2002-04-17 2002-10-16 西安交通大学 一种内在并行的二维离散小波变换的vlsi结构的设计方法
CN102681815A (zh) * 2012-05-11 2012-09-19 深圳市清友能源技术有限公司 用加法器树状结构的有符号乘累加算法的方法
CN103236852A (zh) * 2013-04-19 2013-08-07 荣成市鼎通电子信息科技有限公司 无乘法运算的dtmb中准循环矩阵串行乘法器
CN103257843A (zh) * 2013-04-19 2013-08-21 荣成市鼎通电子信息科技有限公司 无乘法运算的准循环矩阵串行乘法器
CN203241983U (zh) * 2012-07-11 2013-10-16 世意法(北京)半导体研发有限责任公司 用于执行信号处理操作的装置
JP5376920B2 (ja) * 2008-12-04 2013-12-25 キヤノン株式会社 コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
CN105678379A (zh) * 2016-01-12 2016-06-15 腾讯科技(深圳)有限公司 一种cnn的处理方法和装置
CN105913117A (zh) * 2016-04-04 2016-08-31 北京工业大学 一种计算机智能识别的相关神经网络方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058049A (en) * 1989-09-06 1991-10-15 Motorola Inc. Complex signal transformation using a resistive network
US5146420A (en) * 1990-05-22 1992-09-08 International Business Machines Corp. Communicating adder tree system for neural array processor
US5262974A (en) * 1991-10-28 1993-11-16 Trw Inc. Programmable canonic signed digit filter chip
CN102737010B (zh) * 2012-04-09 2014-12-17 深圳大学 以摩尔图为拓扑结构的并行矩阵乘计算的方法和系统
CN103049716B (zh) * 2012-12-19 2015-07-22 华中科技大学 基于一阶矩的卷积器
CN103870438B (zh) * 2014-02-25 2016-08-17 复旦大学 一种利用数论变换计算循环卷积的电路结构
CN103929191A (zh) * 2014-04-23 2014-07-16 荣成市鼎通电子信息科技有限公司 深空通信中部分并行输入的累加左移准循环矩阵乘法器
US10255547B2 (en) * 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system
US11334789B2 (en) * 2015-03-17 2022-05-17 Qualcomm Incorporated Feature selection for retraining classifiers
US10275247B2 (en) * 2015-03-28 2019-04-30 Intel Corporation Apparatuses and methods to accelerate vector multiplication of vector elements having matching indices
US9633306B2 (en) * 2015-05-07 2017-04-25 Siemens Healthcare Gmbh Method and system for approximating deep neural networks for anatomical object detection
CN107506828B (zh) * 2016-01-20 2020-11-03 中科寒武纪科技股份有限公司 用于稀疏连接的人工神经网络计算装置和方法
JP2017130036A (ja) * 2016-01-20 2017-07-27 富士通株式会社 情報処理装置、演算方法、および演算プログラム
US10496855B2 (en) * 2016-01-21 2019-12-03 Hewlett Packard Enterprise Development Lp Analog sub-matrix computing from input matrixes
US10042607B2 (en) * 2016-08-22 2018-08-07 Altera Corporation Variable precision floating-point multiplier
US10360163B2 (en) * 2016-10-27 2019-07-23 Google Llc Exploiting input data sparsity in neural network compute units

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5014235A (en) * 1987-12-15 1991-05-07 Steven G. Morton Convolution memory
JPH0451386A (ja) * 1990-06-19 1992-02-19 Canon Inc ニューラルネットワーク及びその構築方法
JP2862337B2 (ja) * 1990-06-19 1999-03-03 キヤノン株式会社 ニューラルネットワークの構築方法
US5422836A (en) * 1990-11-15 1995-06-06 Siemens Aktiengesellschaft Circuit arrangement for calculating matrix operations in signal processing
CN1374692A (zh) * 2002-04-17 2002-10-16 西安交通大学 一种内在并行的二维离散小波变换的vlsi结构的设计方法
JP5376920B2 (ja) * 2008-12-04 2013-12-25 キヤノン株式会社 コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
US20140337262A1 (en) * 2008-12-04 2014-11-13 Canon Kabushiki Kaisha Convolution operation circuit and object recognition apparatus
CN102681815A (zh) * 2012-05-11 2012-09-19 深圳市清友能源技术有限公司 用加法器树状结构的有符号乘累加算法的方法
CN203241983U (zh) * 2012-07-11 2013-10-16 世意法(北京)半导体研发有限责任公司 用于执行信号处理操作的装置
CN103236852A (zh) * 2013-04-19 2013-08-07 荣成市鼎通电子信息科技有限公司 无乘法运算的dtmb中准循环矩阵串行乘法器
CN103257843A (zh) * 2013-04-19 2013-08-21 荣成市鼎通电子信息科技有限公司 无乘法运算的准循环矩阵串行乘法器
CN105678379A (zh) * 2016-01-12 2016-06-15 腾讯科技(深圳)有限公司 一种cnn的处理方法和装置
CN105913117A (zh) * 2016-04-04 2016-08-31 北京工业大学 一种计算机智能识别的相关神经网络方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MIN WANG ET AL.: "Fast Decoding and Hardware Design for Binary-Input Compressive Sensing", 《IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS》 *
姜春强: "一种低复杂度双二元卷积Turbo码译码算法", 《电讯技术》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875925A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种针对卷积神经网络处理器的控制方法及装置
CN108875917A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种用于卷积神经网络处理器的控制方法及装置
CN111260070B (zh) * 2018-11-30 2022-11-29 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN109558565A (zh) * 2018-11-30 2019-04-02 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111260070A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN111258641A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN109542837A (zh) * 2018-11-30 2019-03-29 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN109542837B (zh) * 2018-11-30 2023-03-24 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN109558565B (zh) * 2018-11-30 2023-04-07 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
WO2020231226A1 (en) * 2019-05-16 2020-11-19 Samsung Electronics Co., Ltd. Method of performing, by electronic device, convolution operation at certain layer in neural network, and electronic device therefor
CN111291876A (zh) * 2020-01-21 2020-06-16 厦门星宸科技有限公司 运算装置、运算方法和运算芯片
CN111291876B (zh) * 2020-01-21 2023-03-28 星宸科技股份有限公司 运算装置、运算方法和运算芯片
CN114692833A (zh) * 2022-03-30 2022-07-01 深圳齐芯半导体有限公司 一种卷积计算电路、神经网络处理器以及卷积计算方法
CN114692833B (zh) * 2022-03-30 2023-11-21 广东齐芯半导体有限公司 一种卷积计算电路、神经网络处理器以及卷积计算方法

Also Published As

Publication number Publication date
CN108205519B (zh) 2022-01-25
CN108205519A (zh) 2018-06-26
CN108205700B (zh) 2021-07-30
US10509998B2 (en) 2019-12-17
US20200050927A1 (en) 2020-02-13
US11720783B2 (en) 2023-08-08
WO2018113597A1 (zh) 2018-06-28
EP3561736A4 (en) 2020-09-09
EP3561736A1 (en) 2019-10-30
US20190311252A1 (en) 2019-10-10

Similar Documents

Publication Publication Date Title
CN108205700A (zh) 神经网络运算装置和方法
CN109117186A (zh) 神经网络处理装置及其执行向量外积指令的方法
EP3557484B1 (en) Neural network convolution operation device and method
CN108960418A (zh) 神经网络处理装置及其执行矩阵向量乘指令的方法
CN109844738A (zh) 运算处理电路和识别系统
CN107833176A (zh) 一种信息处理方法及相关产品
CN107704267A (zh) 一种卷积神经网络运算指令及其方法
CN108170640B (zh) 神经网络运算装置及应用其进行运算的方法
CN117933314A (zh) 处理装置、处理方法、芯片及电子装置
CN109521994A (zh) 乘法硬件电路、片上系统及电子设备
CN110276447A (zh) 一种计算装置及方法
JP7435602B2 (ja) 演算装置および演算システム
CN110909872A (zh) 集成电路芯片装置及相关产品
CN110196735A (zh) 一种计算装置及相关产品
CN109389213A (zh) 存储装置及方法、数据处理装置及方法、电子装置
CN109993291A (zh) 集成电路芯片装置及相关产品
CN117063182A (zh) 一种数据处理方法和装置
CN110515588A (zh) 乘法器、数据处理方法、芯片及电子设备
CN111738429B (zh) 一种计算装置及相关产品
CN110515585A (zh) 乘法器、数据处理方法、芯片及电子设备
CN109754061A (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