System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数字电路领域,具体而言,涉及一种矩阵计算方法、装置及相关设备。
技术介绍
1、处理单元可以进行矩阵计算,矩阵计算由乘法器和加法器实现,在数据精度较高的情况下,处理单元的执行矩阵计算所需的功耗较高,特别是在单一数据格式场景下,由于数据格式规定了参与矩阵计算的各元素的位宽,因此,无法通过对元素进行量化、缩小元素位宽的方式降低计算复杂度,从而降低功耗。
2、目前,通常是在使得处理单元能够执行所需工作的情况下,通过如简化处理单元的电路结构设计、使用功耗更低的器件等提升处理单元的硬件性能的方式来降低处理单元进行矩阵计算时的功耗。
3、然而,在一定工艺条件的基础上,目前处理单元的设计已经优化到较高的水平,难以得到较大的提升。因此,需要在处理单元的硬件资源有限的条件下,进一步降低处理单元对单一数据格式的元素进行矩阵计算的功耗。
技术实现思路
1、有鉴于此,本申请旨在提供一种矩阵计算方法、装置及相关设备,以降低对单一数据格式的元素进行矩阵计算的功耗。
2、第一方面,本申请实施例提供一种矩阵计算方法,该方法应用于处理单元,所述矩阵计算方法包括:获取矩阵计算中目标元素的目标位宽区域;所述目标元素为所述矩阵计算中需进行比特位值调整的元素;所述目标位宽区域为各比特位上的值进行修改后仍能使所述目标元素满足该目标元素对应的计算精度要求的位宽区域;将所述目标元素的目标位宽区域的值调整为0;基于调整后的目标元素进行矩阵计算。
3、由于矩阵计算的各元素为同一
4、一实施例中,所述矩阵计算包括乘法计算和加法计算,所述乘法计算的元素为乘数;所述加法计算通过累加器对所述乘法计算的乘法结果和累加器原值进行累加;所述目标元素包括所述乘数、所述乘法结果、所述累加器原值的至少一种。
5、本申请实施例中,矩阵计算包括乘法和加法两部分,且计算顺序为先乘后加,参与乘法的元素为乘数,参与加法运算的元素为乘法结果,将参与两个计算的元素进行目标位宽区域的值调整为0,均可以达到降低计算复杂度的效果,从而降低功耗。
6、一实施例中,所述将所述目标元素的目标位宽区域的值调整为0,包括:根据所述目标位宽区域生成掩码;使用所述掩码将所述目标元素的目标位宽区域的值调整为0。
7、本申请实施例中,目标位宽区域通过掩码调整为0,掩码根据目标位宽区域生成,能够用于表征目标位宽区域的大小,相当于利用掩码对目标位宽区域进行记录,由此,可以使得目标位宽区域准确地被调整,减少因目标元素被调整影响最终计算结果的可能性,从而在使得在降低计算功耗后,计算结果仍具有一定准确性。
8、一实施例中,所述目标位宽区域为所述目标元素的第0比特至第i-1比特所构成的区域;所述i为大于等于1的整数,所述目标元素的位宽为x;所述根据所述目标位宽区域生成掩码,包括:基于所述目标位宽区域生成的预设位宽x的第一掩码;所述第一掩码的第0比特至第i-1比特的值为0,第i比特至第x-1比特的值为1;相应地,所述使用所述掩码将所述目标元素的目标位宽区域的值调整为0,包括:将所述第一掩码与所述目标元素进行与运算,得到所述调整后的目标元素。
9、本申请实施例中,第一掩码的位宽为x,第0比特至第i-1比特的值为0,第i比特至第x-1比特的值为1,生成并使用位宽和目标元素一致的第一掩码对目标元素作与运算,可以将目标元素的目标位宽区域调整0。而与运算实现简单,可降低调整的难度与所需功耗,从而减少因调整目标位宽区域带来过大功耗的可能性。
10、一实施例中,所述目标位宽区域为所述目标元素的第0比特至第i-1比特所构成的区域;所述i为大于等于1的整数;所述根据所述目标位宽区域生成掩码,包括:基于所述目标位宽区域生成的预设位宽i的第二掩码;所述第二掩码的所有比特位的值为0;相应地,所述使用所述掩码将所述目标元素的目标位宽区域的值调整为0,包括:使用所述第二掩码对所述目标元素的目标位宽区域进行替换,得到所述调整后的目标元素。
11、本申请实施例中,第二掩码的位宽为i,且所有比特位的值为0,则第二掩码与目标位宽区域的宽度一致,通过使用第二掩码对目标位宽区域进行替换的方式,同样可以使得目标元素的目标位宽区域调整为0。该方式所需的第二掩码的位宽更小,适用于精度要求低,目标位宽区域较大的场景。
12、一实施例中,所述目标位宽区域为所述目标元素的第0比特至第i-1比特所构成的区域;所述i为大于等于1的整数,所述目标元素中可被控制的比特位的位宽为k,所述k大于或等于i,且小于或等于所述目标元素的总位宽;所述根据所述目标位宽区域生成掩码,包括:生成初始掩码;所述初始掩码的位宽小于所述掩码的总位宽;获取所述初始掩码相对于所述目标元素的颗粒度;所述颗粒度表征所述目标元素中可被控制的比特位的位宽k与所述初始掩码的位宽二者的比值p,所述p为正整数;所述初始掩码满足:宽度为k/p、且所述初始掩码的第0比特至第(i/p-1)比特的值为0,第i/p比特至第(k/p-1)比特的值为1;或,所述初始掩码满足:宽度为k/p且所述初始掩码的所有比特位的值为0;所述k/p和所述i/p均为正整数;基于所述颗粒度对所述初始掩码进行扩展,得到所述掩码。
13、在不同的硬件结构中,对掩码的位宽有限制,因此,本申请实施例中,可以存储位宽更小的初始掩码,在需进行目标位宽区域的调整时,再对初始掩码进行扩展,由此,可以使得利用掩码调整目标位宽区域的方式可以适用于更多硬件结构的场景。
14、一实施例中,存在多个目标元素的目标位宽区域的值被调整为0,至少部分目标元素的计算精度要求不同;所述根据所述目标位宽区域生成掩码,包括:对于每一个所述目标元素,分别根据各目标元素的计算精度要求生成各自对应的掩码;所述使用所述掩码将所述目标元素的目标位宽区域的值调整为0,包括:分别使用各所述目标元素对应的掩码将各目标元素的目标位宽区域的值调整为0。
15、在矩阵计算时,所参与运算的元素可能来源于不同的场景,而不同的场景对元素的计算精度要求不同,因此,在本申请实施例中,可以分别根据不同的精度要求分别为不同的元素配置各自对应宽度的掩码,并不同的宽度掩码分别为各自对应的目标元素的目标位宽区域进行调整,从而使得不同目标元素均能满足计算精度要求,由此,可以适用于不同计算精度要求的目标元素的矩阵计算,扩展适用范围。
16、一实本文档来自技高网...
【技术保护点】
1.一种矩阵计算方法,其特征在于,应用于处理单元,所述矩阵计算方法包括:
2.根据权利要求1所述的矩阵计算方法,其特征在于,所述矩阵计算包括乘法计算和加法计算,所述乘法计算的元素为乘数;所述加法计算通过累加器对所述乘法计算的乘法结果和累加器原值进行累加;
3.根据权利要求1或2所述的矩阵计算方法,其特征在于,所述将所述目标元素的目标位宽区域的值调整为0,包括:
4.根据权利要求3所述的矩阵计算方法,其特征在于,所述目标位宽区域为所述目标元素的第0比特至第i-1比特所构成的区域;所述i为大于等于1的整数,所述目标元素的位宽为X;
5.根据权利要求3所述的矩阵计算方法,其特征在于,所述目标位宽区域为所述目标元素的第0比特至第i-1比特所构成的区域;所述i为大于等于1的整数;
6.根据权利要求3所述的矩阵计算方法,其特征在于,所述目标位宽区域为所述目标元素的第0比特至第i-1比特所构成的区域;所述i为大于等于1的整数,所述目标元素中可被控制的比特位的位宽为K,所述K大于或等于i,且小于或等于所述目标元素的总位宽X;
8.根据权利要求7所述的矩阵计算方法,其特征在于,所述处理单元包括除所述矩阵运算之外的多个其它运算单元,多个所述目标元素包括来源于不同的运算单元的数据;至少部分所述运算单元对应的计算精度要求不同;
9.一种矩阵计算装置,其特征在于,应用于处理单元,所述矩阵计算装置包括:
10.一种处理单元,其特征在于,包括:
11.根据权利要求10所述的处理单元,其特征在于,所述处理单元为图形处理器GPU。
12.一种电子设备,其特征在于,包括:如权利要求10或11所述的处理单元。
...【技术特征摘要】
1.一种矩阵计算方法,其特征在于,应用于处理单元,所述矩阵计算方法包括:
2.根据权利要求1所述的矩阵计算方法,其特征在于,所述矩阵计算包括乘法计算和加法计算,所述乘法计算的元素为乘数;所述加法计算通过累加器对所述乘法计算的乘法结果和累加器原值进行累加;
3.根据权利要求1或2所述的矩阵计算方法,其特征在于,所述将所述目标元素的目标位宽区域的值调整为0,包括:
4.根据权利要求3所述的矩阵计算方法,其特征在于,所述目标位宽区域为所述目标元素的第0比特至第i-1比特所构成的区域;所述i为大于等于1的整数,所述目标元素的位宽为x;
5.根据权利要求3所述的矩阵计算方法,其特征在于,所述目标位宽区域为所述目标元素的第0比特至第i-1比特所构成的区域;所述i为大于等于1的整数;
6.根据权利要求3所述的矩阵计算方法,其特征在于,所述目标位宽区域为所述目标元素的第0比特...
【专利技术属性】
技术研发人员:蔡慜,王子铭,
申请(专利权)人:上海天数智芯半导体有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。