基于transformer结构的softmax函数量化实现方法和装置与流程

文档序号:30497543发布日期:2022-06-22 06:41阅读:来源:国知局

技术特征:
1.一种基于transformer结构的softmax函数量化实现方法,应用于transformer结构中的softmax模块,其特征在于,该方法包括:获取transformer结构中的matmul模块传送的输入矩阵;根据预先为transformer结构配置的全局共享指数映射表的输入数据位宽,对从matmul模块传送到softmax模块的输入矩阵中的每行输入数据进行数据调整,得到该行输入数据的调整数据;对每行输入数据的调整数据进行截断处理,得到该行输入数据的截断数据;查找所述全局共享指数映射表确定每行输入数据的截断数据对应的指数映射数据;将每行输入数据的截断数据对应的指数映射数据相加,得到该行输入数据对应的指数映射数据总和;根据预先为transformer结构配置的全局共享倒数映射函数确定每行输入数据对应的指数映射数据总和的倒数映射值;对每行输入数据的截断数据对应的指数映射数据与该行输入数据对应的指数映射数据总和的倒数映射值进行乘法运算和移位运算,得到该行输入数据对应的最终结果;将所述最终结果输出到softmax模块所属神经网络层的后一神经网络层。2.根据权利要求1所述的方法,其特征在于,根据预先为transformer结构配置的全局共享指数映射表的输入数据位宽,对从matmul模块传送到softmax模块的输入矩阵中的每行输入数据进行数据调整,包括:确定该行输入数据中的最大值,并根据所述全局共享指数映射表的输入数据位宽确定一调整值;针对该行输入数据中的每一输入数据,计算该输入数据与所述最大值的差值,利用所述调整值对该差值进行调整,得到该输入数据的调整数据;对每行输入数据的调整数据进行截断处理,得到该行输入数据的截断数据,包括:针对该行输入数据中每一输入数据,如果该输入数据的调整数据小于0,则将该输入数据的截断数据设置为0,否则,将该输入数据的截断数据设置为该输入数据的调整数据。3.根据权利要求1所述的方法,其特征在于,所述全局共享指数映射表是根据预先设定的定点量化后可表示的最小刻度s、所述全局共享指数映射表的输入数据位宽t_bits和输出数据位宽e_bits生成的,包括1<<t_bits个表项,占用的存储空间为(1<<t_bits)
×
e_bits
÷
8字节,其中,“<<”为左移运算符。4.根据权利要求1所述的方法,其特征在于,所述全局共享倒数映射函数为根据预设函数生成的倒数映射表、对预设函数进行线性拟合得到的一次函数、或者对预设函数进行多项式拟合生成的多项式函数;其中,所述预设函数为f(x)=2
r_bits
/x,x的取值范围为预设取值区间,r_bits为所述全局共享倒数映射函数的输出数据位宽;根据预先为transformer结构配置的全局共享倒数映射函数确定每行输入数据对应的指数映射数据总和的倒数映射值,包括:对该行输入数据对应的指数映射数据总和进行数据转换;将转换结果输入所述全局共享倒数映射函数,得到该行输入数据对应的指数映射数据总和的倒数映射值。
5.根据权利要求4所述的方法,其特征在于,对该行输入数据对应的指数映射数据总和进行数据转换,包括:确定表示该行输入数据对应的指数映射值总和所需占用的第一有效比特位数和表示预设取值区间的左边界值所需占用的第二有效比特位数,将第一有效比特位数与第二有效比特位数的差值确定为将该行输入数据对应的指数映射值总和映射到预设取值区间所需的第一右移位数;根据所述第一右移位数将该行输入数据对应的指数映射数据总和进行右移,将右移结果映射到由所述全局共享指数映射表的输出数据位宽确定的取值范围内一个数值,将该数值作为该行输入数据对应的指数映射数据总和的转换数据。6.根据权利要求5所述的方法,其特征在于,对每行输入数据的截断数据对应的指数映射数据与该行输入数据对应的指数映射数据总和的倒数映射值进行乘法运算和移位运算,得到该行输入数据对应的最终结果,包括:针对该行输入数据中的每一输入数据,执行以下操作:计算该输入数据的截断数据对应的指数映射数据与该行输入数据对应的指数映射数据总和的倒数映射值的乘积,对该乘积进行四舍五入处理得到该输入数据对应的中间结果;根据所述第一右移位数、所述全局共享倒数映射函数的输出数据位宽、和softmax模块的输出数据位宽确定将该输入数据对应的中间结果映射到由softmax模块的输出数据位宽确定的取值范围所需的第二右移位数,根据第二右移位数对该输入数据对应的中间结果进行右移得到该输入数据对应的最终结果。7.根据权利要求1所述的方法,其特征在于,从matmul模块传送输入矩阵到softmax模块时,采用pipeline方式实现;softmax模块运算得到所述输入矩阵中的每行输入数据对应的最终结果暂存在静态随机存取存储器sram中。8.一种基于transformer结构的softmax函数量化实现装置,应用于transformer结构中的softmax模块,其特征在于,该装置包括:获取单元,用于获取transformer结构中的matmul模块传送的输入矩阵;调整单元,用于根据预先为transformer结构配置的全局共享指数映射表的输入数据位宽,对从matmul模块传送到softmax模块的输入矩阵中的每行输入数据进行数据调整,得到该行输入数据的调整数据;对每行输入数据的调整数据进行截断处理,得到该行输入数据的截断数据;指数单元,用于查找所述全局共享指数映射表确定每行输入数据的截断数据对应的指数映射数据;求和单元,用于将每行输入数据的截断数据对应的指数映射数据相加,得到该行输入数据对应的指数映射数据总和;倒数单元,用于根据预先为transformer结构配置的全局共享倒数映射函数确定每行输入数据对应的指数映射数据总和的倒数映射值;乘法单元,用于对每行输入数据的截断数据对应的指数映射数据与该行输入数据对应的指数映射数据总和的倒数映射值进行乘法运算和移位运算,得到该行输入数据对应的最
终结果;输出单元,用于将所述最终结果输出到softmax模块所属神经网络层的后一神经网络层。9.根据权利要求8所述的装置,其特征在于,所述调整单元,根据预先为transformer结构配置的全局共享指数映射表的输入数据位宽,对从matmul模块传送到softmax模块的输入矩阵中的每行输入数据进行数据调整,包括:确定该行输入数据中的最大值,并根据所述共享指数映射表的输入数据位宽确定一调整值;针对该行输入数据中的每一输入数据,计算该输入数据与所述最大值的差值,利用所述调整值对该差值进行调整,得到该输入数据的调整数据;所述调整单元,对每行输入数据的调整数据进行截断处理,得到该行输入数据的截断数据,包括:针对该行输入数据中每一输入数据,如果该输入数据的调整数据小于0,则将该输入数据的截断数据设置为0,否则,将该输入数据的截断数据设置为该输入数据的调整数据。10.根据权利要求8所述的装置,其特征在于,所述全局共享指数映射表是根据预先设定的定点量化后可表示的最小刻度s、所述全局共享指数映射表的输入数据位宽t_bits和输出数据位宽e_bits生成的,包括1<<t_bits个表项,占用的存储空间为(1<<t_bits)
×
e_bits
÷
8字节,其中,“<<”为左移运算符。11.根据权利要求8所述的装置,其特征在于,所述全局共享倒数映射函数为根据预设函数生成的倒数映射表、对预设函数进行线性拟合得到的一次函数、或者对预设函数进行多项式拟合生成的多项式函数;其中,所述预设函数为f(x)=2 r_bits
/x,x的取值范围为预设取值区间,r_bits为所述倒数映射函数的输出值位宽;所述倒数单元,根据预先为transformer结构配置的全局共享倒数映射函数确定每行输入数据对应的指数映射数据总和的倒数映射值,包括:对该行输入数据对应的指数映射数据总和进行数据转换;将转换结果输入所述全局共享倒数映射函数,得到该行输入数据对应的指数映射数据总和的倒数映射值。12.根据权利要求11所述的装置,其特征在于,所述倒数单元,对该行输入数据对应的指数映射数据总和进行数据转换,包括:确定表示该行输入数据对应的指数映射值总和所需占用的第一有效比特位数和表示预设取值区间的左边界值所需占用的第二有效比特位数,将第一有效比特位数与第二有效比特位数的差值确定为将该行输入数据对应的指数映射值总和映射到预设取值区间所需的第一右移位数;根据所述第一右移位数将该行输入数据对应的指数映射数据总和进行右移,将右移结果映射到由所述指数映射表的输出数据位宽确定的取值范围内一个数值,将该数值作为该行输入数据对应的指数映射数据总和的转换数据。13.根据权利要求12所述的装置,其特征在于,
所述乘法单元,对每行输入数据的截断数据对应的指数映射数据与该行输入数据对应的指数映射数据总和的倒数映射值进行乘法运算和移位运算,得到该行输入数据对应的最终结果,包括:针对该行输入数据中的每一输入数据,执行以下操作:计算该输入数据的截断数据对应的指数映射数据与该行输入数据对应的指数映射数据总和的倒数映射值的乘积,对该乘积进行四舍五入处理得到该输入数据对应的中间结果;根据所述第一右移位数、所述全局共享倒数映射函数的输出数据位宽、和softmax模块的输出数据位宽确定将该输入数据对应的中间结果映射到由softmax模块的输出数据位宽确定的取值范围所需的第二右移位数,根据第二右移位数对该输入数据对应的中间结果进行右移得到该输入数据对应的最终结果。14.根据权利要求8所述的装置,其特征在于,从matmul模块传送输入矩阵到softmax模块时,采用pipeline方式实现;softmax模块运算得到所述输入矩阵中的每行输入数据对应的最终结果暂存在静态随机存取存储器sram中。

技术总结
本发明提供了一种基于transformer结构的softmax函数量化实现方法和装置,应用于transformer结构中的softmax模块,包括:根据全局共享指数映射表的输入数据位宽,对从MatMul模块传送到softmax模块的输入矩阵中的每行输入数据进行数据调整、截断处理,得到该行输入数据的截断数据;查找全局共享指数映射表确定每行输入数据的截断数据对应的指数映射数据;将每行输入数据的截断数据对应的指数映射数据相加,得到该行输入数据对应的指数映射数据总和;根据全局共享倒数映射函数确定每行输入数据对应的指数映射数据总和的倒数映射值;对每行输入数据的阶段数据对应的指数映射数据与该行输入数据对应的指数映射数据总和的倒数映射值进行乘法运算和移位运算,得到该行输入数据对应的最终结果。该行输入数据对应的最终结果。该行输入数据对应的最终结果。


技术研发人员:徐祥 杨敏 杨作兴 艾国
受保护的技术使用者:杭州研极微电子有限公司
技术研发日:2022.05.13
技术公布日:2022/6/21
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1