【技术实现步骤摘要】
一种浮点型数据处理方法及相关装置
[0001]本申请涉及人工智能
,尤其涉及一种浮点型数据处理方法及相关装置。
技术介绍
[0002]目前,在一些业界主流AI(Artificial Intelligence,人工智能)处理器中,内积的应用场景十分广泛,例如在神经网络的推理以及训练中,所有涉及卷积的网络层,都需要进行大量的内积运算。
[0003]在神经网络的推理和训练中,常用的数据类型为浮点型,相较于定点型,浮点型数据具有较大的动态范围,可以表示的数值范围远大于定点数。现有技术中,对浮点型向量进行内积运算时,先将向量中相同位置上的浮点型元素通过浮点乘法器进行乘法操作,再将乘法结果通过浮点加法树进行分级的加法操作,最终得到计算结果。但是,每层的计算都涉及一个标准的浮点乘法或浮点加法操作,在这些操作的最后一步,都涉及舍入操作,将中间计算结果舍入标准浮点数据格式,产生较大的精度损失,造成最终的计算结果并不准确。
技术实现思路
[0004]本申请实施例提供了一种浮点型数据处理方法以及相关装置,能够保留中间计算过程的计算精度,以及移除中间加法过程中产生的前导零,提升计算结果的准确性。
[0005]本申请的一方面提供一种浮点型数据处理方法,包括:
[0006]根据模型运算指令,获取第一向量及第二向量,其中,第一向量包括K个第一子向量,每个第一子向量中包括M个第一元素,第二向量包括K个第二子向量,每个第二子向量中包括M个第二元素,第一元素与第二元素均为浮点型数据,K和M均为大于1的整数; ...
【技术保护点】
【技术特征摘要】
1.一种浮点型数据处理方法,其特征在于,包括:根据模型运算指令,获取第一向量及第二向量,其中,所述第一向量及所述第二向量为模型的输入数据,所述第一向量包括K个第一子向量,每个所述第一子向量中包括M个第一元素,所述第二向量包括K个第二子向量,每个所述第二子向量中包括M个第二元素,所述第一元素与所述第二元素均为浮点型数据,K和M均为大于1的整数;将所述K个第一子向量中的所有第一元素与所述K个第二子向量中的所有第二元素进行浮点乘法运算,得到K组乘法运算结果,其中,每组乘法运算结果包括M个乘法结果进位及M个乘法结果和位;分别对所述K组乘法运算结果中每组乘法运算结果的M个乘法结果进位及M个乘法结果和位进行求和处理,得到K个第一和结果;将所述K个第一和结果依次进行规格化移位及对阶移位,得到K个乘加运算结果;对所述K个乘加运算结果进行求和处理,得到第二和结果;对所述第二和结果进行规格化移位,得到模型运算结果。2.如权利要求1所述的浮点型数据处理方法,其特征在于,所述第二和结果包括第一前导零预测结果和第一加法运算结果;所述对所述K个乘加运算结果进行求和处理,得到第二和结果,包括:对所述K个乘加运算结果进行进位保留加法运算,生成第一进位和第一和位;根据所述第一进位和所述第一和位进行前导零预测,生成第一前导零预测结果;对所述第一进位和所述第一和位进行加法运算,生成第一加法运算结果。3.如权利要求2所述的浮点型数据处理方法,其特征在于,所述对所述第二和结果进行规格化移位,得到模型运算结果,包括:根据所述第一前导零预测结果对所述第一加法运算结果进行规格化移位,生成第一规格化移位结果;对所述第一规格化移位结果的尾数值进行舍入操作,得到模型运算结果。4.如权利要求3所述的浮点型数据处理方法,其特征在于,所述方法还包括:对所述第一向量中的K
×
M个第一元素进行指数计算,生成K
×
M个第一指数,以及,对所述第二向量中的K
×
M个第二元素进行指数计算,生成K
×
M个第二指数;将所述K
×
M个第一指数与所述K
×
M个第二指数对应相加,生成K
×
M个指数和;从所述K
×
M个指数和中确定最大的指数和,作为第一最大指数和;对所述第一最大指数和与所述第一前导零预测结果进行减法运算,生成第一减法结果;对所述第一减法结果进行指数计算,生成第一减法指数值。5.如权利要求4所述的浮点型数据处理方法,其特征在于,所述对所述第一规格化移位结果的尾数值进行舍入操作,得到模型运算结果,包括:根据所述第一减法指数值对所述第一规格化移位结果的尾数值进行舍入操作,生成模型运算结果。6.如权利要求1所述的浮点型数据处理方法,其特征在于,所述K个第一和结果中每个第一和结果包括第二前导零预测结果和第二加法运算结果;所述分别对所述K组乘法运算结果中每组乘法运算结果的M个乘法结果进位及M个乘法
结果和位进行求和处理,得到K个第一和结果,包括:分别对所述K组乘法运算结果中每组乘法运算结果的M个乘法结果进位及M个乘法结果和位进行进位保留加法运算,生成K组计算结果,其中,每组计算结果包括第二进位及第二和位;根据所述K组计算结果中每组计算结果的第二进位及第二和位进行前导零预测,生成K个第二前导零预测结果;对所述K组计算结果中每组计算结果的第二进位及第二和位进行加法运算,得到K个第二加法运算结果。7.如权利要求6所述的浮点型数据处理方法,其特征在于,所述将所述K个第一和结果依次进行规格化移位及对阶移位,得到K个乘加运算结果,包括:根据所述K个第二前导零预测结果对所述K个第二加法运算结果进行前导零预测,生成K个第二规格化移位结果;分别对所述K个第二规格化移位结果进行对阶移位处理,生成K个乘加运算结果。8.如权利要求1所述的浮点型数据处理方法,其特征在于,所述将所述K个第一子向量中的所有第一元素与所述K个第二子向量中的所有第二元素进行浮点乘法运算,得到K组乘法运算结果,包括:将所述K个第一子向量中的所有第一元素的尾数与所述K个第二子向量中的所有第二元素的尾数进行部分积运算,生成K组部分积,其中,每组部分积包括M个部分积计算结果;将所述K组部分积分别进行进位保存加法运算,生成K组部分积进位保存加法运算结果,其中,每组部分积进位保存加法运算结果包括M个部分积进位及M个部分积和位;将所述K个第一子向量中的所有第一元素与所述K个第二子向量中的所有第二元素进行指数运算,得到K个第一子向量中的所有第一元素的指数值及K个第二子向量中的所有第二元素的指数值;将所述K个第一子向量中的所有第一元素的指数值与所述K个第二子向量中的所有第二元素的指数值进行加法运算,生成K组第三加法运算结果,其中,每组第三加法运算结果包括M个第三加法运算结果;从所述K组第三加法运算结果确定每组第三加法运算结果中的最大值,得到K组第二最大指数和;根据所述K组第二最大指数和确定K组部分积进位保存加法运算结果对应的K组第二对阶移位数;根据所述K组第二对阶移位数对所述K组部分积进位保存加法运算结果进行对阶移位,生成K组乘法运算结果。9.一种浮点型数据处理器,其特征在于,所述浮点型数据处理器用于执行如权利要求1至8中任一项所述的浮点型数据处理方法;所述浮点型数据处理器包括:K个乘加运算单元、第一最大指数和确定单元、第一进位保存加法...
【专利技术属性】
技术研发人员:任子木,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。