一种存算一体装置和计算方法制造方法及图纸

技术编号:38081790 阅读:6 留言:0更新日期:2023-07-06 08:48
本申请实施例提供一种存算一体装置和计算方法,涉及芯片技术领域,用于减少进行神经网络计算时的计算开销,提升计算效率。该方法包括:通过位宽计算模块对多个输入数据进行计算,得到多个有效数据,将多个有效数据输入到计算模块,再由计算模块根据多个有效数据和每个存储计算单元存储的权重数据的比特位,得到计算阵列中每一列的计算结果,将每一列的计算结果输入到结果处理模块,最后由结果处理模块对每一列的计算结果进行加权计算,得到最终结果。本申请实施例用于存算一体装置进行计算的过程中。过程中。过程中。

【技术实现步骤摘要】
一种存算一体装置和计算方法


[0001]本申请实施例涉及芯片
,尤其涉及一种存算一体装置和计算方法。

技术介绍

[0002]近年来,神经网络(neural network,NN)发展迅速,广泛应用于机器人、语音识别、图像识别、自然语言处理和专家系统等领域。神经网络的核心计算是矩阵向量乘,具有计算密集和访存密集的特征。使用通用芯片进行神经网络的计算时,通用芯片在功耗、性能和尺寸上都存在明显不足,因此为了提高神经网络的计算效率,需要为神经网络定制专用芯片(神经网络加速器)来进行计算。
[0003]存算一体装置既保留了存储电路本身的存储和读写功能,又能够并行地支持乘加运算,降低了数据搬移量,提升了能耗效率,为神经网络加速器设计提供了一种高效的解决方案。存算一体装置在进行计算时,通常需要根据数据位宽将多比特(bit)数据展开成单比特/低比特(例如2比特或4比特等)数据进行计算,再对计算结果进行合并,因此展开计算的次数较多,导致开销较大。

技术实现思路

[0004]本申请实施例提供一种存算一体装置和计算方法,应用于存算一体装置,可以在进行神经网络的计算时,降低开销,提高计算效率。
[0005]为达到上述目的,本申请实施例采用如下技术方案:
[0006]第一方面,本申请实施例提供一种存算一体装置,该存算一体装置包括位宽计算模块、计算模块和结果处理模块。计算模块包括计算阵列,计算阵列包括多个存储计算单元,多个存储计算单元用于存储权重数据。位宽计算模块用于对多个输入数据进行计算,得到多个有效数据,将多个有效数据输入到计算模块,多个输入数据与多个有效数据一一对应,多个输入数据中的第一输入数据与多个有效数据中的第一有效数据对应,且第一输入数据的位宽大于第一有效数据的位宽。计算模块用于根据多个有效数据和权重数据的比特位,得到计算阵列中每一列的计算结果,将每一列的计算结果输入到结果处理模块,其中,一列计算结果为多个有效数据的同一比特位和一列存储计算单元计算的乘积之和。结果处理模块用于对每一列的计算结果进行加权计算,得到最终结果。
[0007]由此,本申请提供的计算方法,相比于现有技术中根据数据位宽将多比特输入数据展开成多个单比特/低比特输入数据进行输入和计算,导致展开计算太多次,产生较大开销,本申请的方法能够动态计算输入数据的有效数据,从而仅对输入数据的有效位进行计算,有效减少了计算模块进行计算的次数,降低计算开销,提高了存算一体装置的计算效率。
[0008]在一种可能的设计中,位宽计算模块,具体用于对多个输入数据进行掩膜计算,得到掩膜值,根据掩膜值的有效位确定多个有效数据,将多个有效数据逐比特位输入到计算模块,以使计算模块对多个有效数据逐比特位进行计算。由此,本申请提供的计算方法,使
位宽计算模块通过掩膜计算得到输入数据的有效数据,并将有效数据逐比特位输入到计算模块,从而能够大幅度减少计算阵列的计算次数。
[0009]在一种可能的设计中,当计算阵列接收到多个有效数据分别对应的第N比特位时,其中,N为大于等于0的整数,计算阵列用于计算多个有效数据分别对应的第N比特位和权重数据的比特位的乘积;计算模块还包括累加电路,累加电路用于对计算阵列中同一列存储计算单元计算的乘积相加,得到计算阵列中每一列存储计算单元计算的乘积之和。由此,本申请提供的计算方法,计算模块每次对多个有效数据分别对应的第N比特位进行计算,计算模块进行计算的次数与有效数据的位宽对应,由于有效数据的位宽小于输入数据的位宽,因此计算阵列进行计算的次数能够有效降低。
[0010]在一种可能的设计中,权重数据包括多种权重数据,存算一体装置还包括权重位宽配置模块;权重位宽配置模块用于存储多种权重数据的位宽信息,位宽信息包括每种权重数据的位宽和每种权重数据对应在计算阵列中的起始列的标识,其中,多种权重数据中至少两种权重数据的位宽不同。由此,本申请提供的计算方法,相比于现有技术中权重数据的位宽固定,无法做到权重数据混合精度计算,导致计算效率低,本申请能够利用权重位宽配置模块存储的多种权重数据的位宽信息,在单个计算阵列中实现多种位宽的权重数据的部署和计算,从而支持权重数据混合精度的计算,有效提高存算一体装置的计算效率。
[0011]在一种可能的设计中,存算一体装置还包括控制模块,控制模块用于根据位宽信息将多种权重数据写入多个存储计算单元。由此,本申请提供的计算方法,控制模块能够根据位宽信息将权重数据部署到计算阵列中的每个存储计算单元中,从而在单个计算阵列中包括多种权重数据的位宽,实现权重数据混合精度计算,提高存算一体装置的计算效率。
[0012]在一种可能的设计中,控制模块还用于逐比特位确定掩膜值的有效位,当确定掩膜值的任一比特位有效时,产生第一控制信号和第二控制信号。第一控制信号用于指示计算模块计算得到所述计算阵列中每一列存储计算单元的乘积之和,第二控制信号用于指示结果处理模块,根据位宽信息对计算阵列中每种权重数据对应的多列存储计算单元的乘积之和进行加权计算,得到多个有效数据分别对应的第N比特位的多个加权结果,多个加权结果中每个加权结果对应一种权重数据。由此,本申请提供的计算方法,控制模块能够根据掩膜值的有效位生成控制信号,对计算模块和结果处理模块进行控制。由于掩膜值的有效位的位数和有效数据的位宽相同,通常比输入数据的位宽小,因此根据掩膜值的有效位生成控制信号,能够降低计算模块进行计算的次数,降低计算开销。
[0013]在一种可能的设计中,控制模块还用于确定掩膜值的位宽与输入数据的位宽相等时,产生第三控制信号。第三控制信号用于指示结果处理模块,根据掩膜值的有效位对应的位权,以及多个有效数据的每个比特位的多个加权结果进行加权计算,得到最终结果,最终结果包括每种权重数据的加权结果。由此,本申请提供的计算方法,当计算模块计算结束后,结果处理模块根据位宽信息和掩膜值有效位的位权进行加权计算,能够准确将多次单比特有效数据和多比特权重数据的计算结果转化为多比特输入数据和多比特权重数据的计算结果。在保证计算精度不变的前提下,有效减少计算次数,降低开销。
[0014]第二方面,本申请实施例提供了一种计算方法,该方法应用于存算一体装置,存算一体装置包括计算阵列,计算阵列包括多个存储计算单元,多个存储计算单元用于存储权重数据。该方法包括:对多个输入数据进行计算,得到多个有效数据,多个输入数据与多个
有效数据一一对应,多个输入数据中的第一输入数据与多个有效数据中的第一有效数据对应,且第一输入数据的位宽大于第一有效数据的位宽,根据多个有效数据和权重数据的比特位,得到计算阵列中每一列的计算结果,其中,一列计算结果为多个有效数据的同一比特位和一列存储计算单元计算的乘积之和,对每一列的计算结果进行加权计算,得到最终结果。第二方面所达到的有益效果可以参见第一方面中有益效果。
[0015]在一种可能的设计中,对多个输入数据进行计算,得到多个有效数据包括:对多个输入数据进行掩膜计算,得到掩膜值,根据掩膜值的有效位确定多个有效数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存算一体装置,其特征在于,所述存算一体装置包括位宽计算模块、计算模块和结果处理模块;所述计算模块包括计算阵列,所述计算阵列包括多个存储计算单元,所述多个存储计算单元用于存储权重数据;所述位宽计算模块,用于对多个输入数据进行计算,得到多个有效数据,将所述多个有效数据输入到所述计算模块;所述多个输入数据与所述多个有效数据一一对应,所述多个输入数据中的第一输入数据与所述多个有效数据中的第一有效数据对应,且所述第一输入数据的位宽大于所述第一有效数据的位宽;所述计算模块,用于根据所述多个有效数据和所述权重数据的比特位,得到所述计算阵列中每一列的计算结果,将所述每一列的计算结果输入到所述结果处理模块;其中,一列计算结果为所述多个有效数据的同一比特位和一列存储计算单元计算的乘积之和;所述结果处理模块,用于对所述每一列的计算结果进行加权计算,得到最终结果。2.根据权利要求1所述的存算一体装置,其特征在于,所述位宽计算模块,具体用于对所述多个输入数据进行掩膜计算,得到掩膜值,根据所述掩膜值的有效位确定所述多个有效数据;将所述多个有效数据逐比特位输入到所述计算模块,以使所述计算模块对所述多个有效数据逐比特位进行计算。3.根据权利要求2所述的存算一体装置,其特征在于,当所述计算阵列接收到所述多个有效数据分别对应的第N比特位时,其中,N为大于等于0的整数,所述计算阵列,用于计算所述多个有效数据分别对应的第N比特位和所述权重数据的比特位的乘积;所述计算模块还包括累加电路;所述累加电路,用于对所述计算阵列中同一列存储计算单元计算的乘积相加,得到所述计算阵列中每一列存储计算单元计算的乘积之和。4.根据权利要求2或3所述的存算一体装置,其特征在于,所述权重数据包括多种权重数据,所述存算一体装置还包括权重位宽配置模块;所述权重位宽配置模块,用于存储所述多种权重数据的位宽信息,所述位宽信息包括每种权重数据的位宽和所述每种权重数据对应在所述计算阵列中的起始列的标识,其中,所述多种权重数据中至少两种权重数据的位宽不同。5.根据权利要求4所述的存算一体装置,其特征在于,所述存算一体装置还包括控制模块;所述控制模块,用于根据所述位宽信息将所述多种权重数据写入所述多个存储计算单元。6.根据权利要求5所述的存算一体装置,其特征在于,所述控制模块,还用于逐比特位确定所述掩膜值的有效位,当确定所述掩膜值的任一比特位有效时,产生第一控制信号和第二控制信号;所述第一控制信号用于指示所述计算模块计算得到所述计算阵列中每一列存储计算单元计算的乘积之和;所述第二控制信号用于指示所述结果处理模块,根据所述位宽信息对所述计算阵列中所述每种权重数据对应的多列存储计算单元的乘积之和进行加权计算,得到所述多个有效数据分别对应的第N比特位的多个加权结果,所述多个加权结果中每个
加权结果对应一种权重数据。7.根据权利要求6所述的存算一体装置,其特征在于,所述控制模块,还用于确定所述掩膜值的位宽与所述输入数据的位宽相等时,产生第三控制信号;所述第三控制信号用于指示所述结果处理模块,根据所述掩膜值的有效位对应的位权,以及所述多个有效数据的每个比特位的多个加权结果进行加权计算,得到所述最终结果,所述最终结果包括所述每种权重数据...

【专利技术属性】
技术研发人员:华幸成曾重
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1