System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据处理方法、装置、芯片以及电子设备制造方法及图纸_技高网

数据处理方法、装置、芯片以及电子设备制造方法及图纸

技术编号:40666080 阅读:2 留言:0更新日期:2024-03-18 19:00
公开了一种数据处理方法、装置、芯片以及电子设备,其中的方法包括:获取存算单元阵列的输出数据,输出数据为存算单元阵列将输入向量与预存的权重矩阵相乘得到的第一预设位数的二进制数值,权重矩阵由神经网络层的权重参数构成,输入向量由神经网络层的输入数据形成的向量拆分得到;基于预设的截位参数,从输出数据中截取出第二预设位数的二进制数值,作为压缩后的输出数据,第二预设位数小于第一预设位数;将压缩后的输出数据发送至加法器,以便加法器对多个存算单元阵列对应的压缩后的输出数据进行加法运算,确定多个存算单元阵列对应的运算结果,运算结果表示神经网络层的输出结果。有助于减小数据传输和计算的芯片能耗和面积开销。

【技术实现步骤摘要】

本公开涉及半导体集成电路应用,尤其涉及一种数据处理方法、装置、存算一体芯片以及电子设备。


技术介绍

1、存算一体又称存内计算,利用存储器对数据进行运算,可以避免数据搬运产生的“存储墙”和“功耗墙”,同时具备算力大和功耗低的优点。因此,存算一体技术被广泛应用于神经网络加速器。作为存算一体芯片的基本结构,存算单元阵列可以矩阵的形式存储神经网络层的权重参数,然后将神经网络层的输入数据转化得到的向量输入存算单元阵列,由存算单元阵列通过矩阵向量乘法模拟神经网络层的数据运算过程。

2、通常,神经网络层总体的运算规模较大,需要将其分拆到多个存算单元阵列上去计算。每个存算单元阵列执行总体运算中的一部分,其输出的数据为部分和结果,将各个存算单元阵列输出的部分和结果相加即可得到神经网络层总体的运算结果。

3、相关技术中,为了降低部分和结果的高位宽对芯片的能耗和面积开销带来的负担,往往采用一次量化的方式对部分和结果进行压缩,以降低部分和结果的位宽。但是,量化参数的存储、量化过程中大位宽的乘法运算以及反量化运算,仍然需要占用较大的能耗和硬件面积。


技术实现思路

1、为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种数据处理方法、装置、存储介质以及电子设备。

2、根据本公开实施例的一个方面,提供了一种数据处理方法,该方法包括:获取存算单元阵列的输出数据,输出数据为存算单元阵列将输入向量与预存的权重矩阵相乘得到的第一预设位数的二进制数值,权重矩阵由神经网络层的权重参数构成,输入向量由神经网络层的输入数据形成的向量拆分得到;基于预设的截位参数,从输出数据中截取出第二预设位数的二进制数值,作为压缩后的输出数据,第二预设位数小于第一预设位数;将压缩后的输出数据发送至加法器,以便加法器对多个存算单元阵列对应的压缩后的输出数据进行加法运算,确定多个存算单元阵列对应的运算结果,运算结果表示神经网络层的输出结果。

3、在一些实施例中,截位参数包括以下任意两项:起始比特位、终止比特位、截取位宽;基于预设的截位参数,从输出数据中截取出第二预设位数的二进制数值,作为压缩后的输出数据,包括:基于截位参数,在输出数据中确定待截取的第一区间;从输出数据中提取第一区间中各比特位的数字,得到压缩后的输出数据。

4、在一些实施例中,截位参数包括截取位点k和输出比特数;基于预设的截位参数,从输出数据中截取出第二预设位数的二进制数值,作为压缩后的输出数据,包括:基于输出比特数,确定压缩后的输出数据表征的最大正数和最小负数;基于截位参数,在输出数据中确定待截取的第二区间和符号位;从输出数据中提取符号位和第二区间中各比特位的数值,得到第一数据;响应于输出数据中的第k-1比特位的数值为1,对第一数据执行进位操作,得到第二数据;响应于第二数据大于最大正数,将最大正数确定为压缩后的输出数据;响应于第二数据不大于最大正数且不小于最小负数,将第二数据确定为压缩后的输出数据;响应于第二数据小于最小负数,将最小负数确定为压缩后的输出数据。

5、在一些实施例中,基于预设的截位参数,从输出数据中截取出第二预设位数的二进制数值,作为压缩后的输出数据,还包括:响应于输出数据中的第k-1比特位的数值为0,将第一数据确定为压缩后的输出数据。

6、根据本公开实施例的又一个方面,提供了一种存算一体芯片,包括:多个存算单元阵列,用于存储神经网络中的各个神经网络层的权重参数,并基于各个神经网络层的权重参数分别对各个神经网络层的输入数据进行处理,得到多个存算单元阵列中各存算单元阵列的输出数据;多个截位处理单元,与多个存算单元阵列一一对应,该多个截位处理单元用于存储截位参数,并分别对多个存算单元阵列中各存算单元阵列的输出数据进行截位处理,确定多个存算单元阵列中各存算单元阵列的压缩后的输出数据;加法器,用于将各个神经网络层分别对应的一个或多个存算单元阵列的压缩后的输出数据相加,得到各个神经网络层的输出结果。

7、在一些实施例中,在存算一体芯片上,每个存算单元阵列靠近与其对应的截位处理单元。

8、在一些实施例中,多个截位处理单元共享截位参数。

9、在一些实施例中,多个截位处理单元中各个截位处理单元中存储的截位参数不完全相同。

10、在一些实施例中,还包括控制单元,被配置成接收针对截位参数的设置指令,并根据设置指令将截位参数存储至对应的截位处理单元。

11、根据本公开实施例的再一个方面,提供了一种数据处理装置,该装置包括:数据获取模块,被配置成获取存算单元阵列的输出数据,输出数据为存算单元阵列将输入向量与预存的权重矩阵相乘得到的第一预设位数的二进制数值,权重矩阵由神经网络层的权重参数构成,输入向量为输入神经网络层的部分或全部数据;数据压缩模块,被配置成基于预设的截位参数,从输出数据中截取出第二预设位数的二进制数值,作为压缩后的输出数据,第二预设位数小于第一预设位数;数据发送模块,被配置成将压缩后的输出数据发送至加法器,以便加法器对多个存算单元阵列对应的压缩后的输出数据进行加法运算,确定多个存算单元阵列对应的运算结果,运算结果表示神经网络层的输出结果。

12、根据本公开实施例的再一方面,提供了一种计算装置,包括上述任一实施例中的存算一体芯片。

13、基于本公开上述实施例提供的一种数据处理方法和装置,获取存算单元阵列的输出数据之后,基于预设的截位参数,从输出数据中截取出位宽更小的压缩后的输出数据,然后将压缩后的输出数据发送至加法器,以便加法器对多个存算单元阵列对应的压缩后的输出数据进行加法运算,确定神经网络层的输出结果。通过截位处理对存算单元阵列输出的高位宽数据进行压缩,一方面,相对简单的截位参数占用的能耗和存储空间更小,有助于降低数据存储对芯片的能耗和面积开销;另一方面,通过数据压缩可以减少传输的数据量,进而可以降低芯片上用于传输数据的连线数量,从而大幅减小数据传输的能耗和芯片面积开销。

14、下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

本文档来自技高网...

【技术保护点】

1.一种数据处理方法,包括:

2.根据权利要求1所述的方法,其中,所述截位参数包括以下任意两项:起始比特位、终止比特位、截取位宽;

3.根据权利要求1所述的方法,其中,所述截位参数包括截取位点k和输出比特数;

4.根据权利要求3所述的方法,其中,所述基于预设的截位参数,从所述输出数据中截取出第二预设位数的二进制数值,作为压缩后的输出数据,还包括:

5.一种存算一体芯片,包括:

6.根据权利要求5所述的存算一体芯片,其中,在所述存算一体芯片上,每个所述存算单元阵列靠近与其对应的截位处理单元。

7.根据权利要求5或6所述的存算一体芯片,其中,所述多个截位处理单元共享所述截位参数。

8.根据权利要求5或6所述的存算一体芯片,其中,所述多个截位处理单元中各个截位处理单元中存储的截位参数不完全相同。

9.一种数据处理装置,包括:

10.一种电子设备,包括权利要求5至8任一所述的存算一体芯片。

【技术特征摘要】

1.一种数据处理方法,包括:

2.根据权利要求1所述的方法,其中,所述截位参数包括以下任意两项:起始比特位、终止比特位、截取位宽;

3.根据权利要求1所述的方法,其中,所述截位参数包括截取位点k和输出比特数;

4.根据权利要求3所述的方法,其中,所述基于预设的截位参数,从所述输出数据中截取出第二预设位数的二进制数值,作为压缩后的输出数据,还包括:

5.一种存算一体芯片,包括:

6.根据权...

【专利技术属性】
技术研发人员:袁之航赵亦彤吴强
申请(专利权)人:北京后摩智能科技有限公司
类型:发明
国别省市:

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

1