一种混合精度指数函数近似处理方法及向量处理器与流程
本技术涉及浮点处理器、向量计算以及人工智能加速器,尤其涉及一种混合精度指数函数近似处理方法及向量处理器。
背景技术:
1、大语言模型推理过程中,softmax、sigmoid、silu等算子均需要大量调用指数函数。指数函数若直接采用通用基础运算序列实现,会产生较长的数据依赖链,带来频繁的中间寄存器写回与数据搬移开销;如果专门配置面向fp32正确舍入的完整专用指数运算单元,又会带来芯片面积增大、功耗升高、验证工作量大等问题。
2、现有低精度指数硬件方案,大多采用低精度输入、函数查找表或者残差查找表实现指数运算。这类方案往往在输入端就丢失fp32原始数据信息,或者需要占用较大的硬件存储资源。对于最终输出仅需要bf16格式的推理数据通路,继续追求完整fp32低位精度会产生无法被后续链路利用的无效硬件开销,出现硬件资源规模与目标输出精度不匹配的问题。
3、在已经配置fp32融合乘加单元、fp32转bf16转换资源的向量处理器内部,如果直接移植现有通用指数函数实现方案,仍然需要将中间运算结果回写寄存器,或者把数据搬运到其他运算单元,处理器现有的算术单元与格式转换资源,无法直接形成从fp32输入到bf16输出的闭合指数处理数据通路。
4、因此亟需一种技术方案,该方案能够保留fp32原始输入信息,将指数近似算法与向量处理器内部数据通路做适配,复用处理器已有的fp32融合乘加硬件资源完成指数近似运算,并在链路末端直接输出bf16运算结果。
技术实现思路
1、为了解决现有技术的缺陷,本技术提供一种混合精度指数函数近似处理方法及向量处理器,在不配置完整通用fp32指数运算单元的前提下,实现对fp32输入向量的自然指数函数、以2为底指数函数运算;同时充分复用处理器自带的融合乘加单元与bf16转换硬件资源,降低芯片面积、功耗、运算操作数量以及寄存器带宽开销。
2、为实现上述目的,本技术提供一种混合精度指数函数近似处理方法,由向量处理器硬件执行,包括:
3、接收fp32格式的输入向量以及用于选择自然指数函数或以2为底指数函数的功能模式信息;
4、针对所述输入向量中的有效元素,依据所述功能模式信息形成待缩减值;
5、在执行范围缩减之前对所述待缩减值执行有限输入边界判断,对nan、无穷大或者超出bf16目标输出范围的输入,直接输出特殊值、上溢或者下溢候选结果;
6、将通过边界判断的待缩减值分解为整数阶码和位于预定有界区间内的余项;
7、根据所述余项计算余项指数近似值;
8、根据所述整数阶码和所述余项指数近似值,得到指数函数重构结果;
9、对指数函数重构结果、特殊值候选结果、上溢候选结果、下溢候选结果进行逐元素选择;
10、仅在选择完成之后执行一次fp32至bf16的rne舍入,输出bf16格式的指数运算结果。
11、进一步地,所述针对所述输入向量中的有效元素,依据所述功能模式信息形成待缩减值的步骤,还包括:当功能模式选择以2为底指数函数时,将fp32输入元素直接作为待缩减值;当功能模式选择自然指数函数时,将输入元素与log2(e)进行运算得到待缩减值,使得自然指数函数与以2为底指数函数复用同一套余项指数近似计算路径。
12、进一步地,还包括:将log2(e)拆分为高位常数l_hi与低位常数l_lo,通过融合乘加运算fma (x, l_hi, x×l_lo)得到自然指数函数模式下的待缩减值。
13、进一步地,所述将通过边界判断的待缩减值分解为整数阶码和位于预定有界区间内的余项的步骤,还包括:对待缩减值z执行roundeven 取整得到整数阶码n,余项r=z-n,余项区间约束为r∈[-0.5,0.5];利用融合乘加运算r=fma (-1.0f, (float) n, z) 计算得到余项r。
14、进一步地,所述根据所述余项计算余项指数近似值的步骤,还包括:余项指数近似值采用五阶horner结构多项式进行计算,多项式的每一级运算均调用fp32融合乘加单元执行;多项式运算的中间结果保存在处理器内部中间寄存器,不写入软件可见通用寄存器。
15、进一步地,所述五阶horner结构多项式为:
16、p (r)=c0+r (c1+r (c2+r (c3+r (c4+r×c5))));
17、其中 c0至c5 为预设多项式系数,系数存储于只读存储器、微序列常数存储器或者配置寄存器组。
18、进一步地,所述根据所述整数阶码和所述余项指数近似值,得到指数函数重构结果的步骤,还包括:提取余项指数近似值的无偏阶码,将无偏阶码与整数阶码相加;
19、阶码结果落在bf16正规数范围,则保留尾数低位用于后续bf16舍入;
20、阶码结果超过bf16最大阶码,则生成溢出候选结果;
21、阶码结果低于bf16最小正规阶码,则对携带隐藏位的有效数进行右移,同时生成保护位、舍入位、粘滞位grs信息并传递至bf16舍入通路。
22、进一步地,还包括:
23、接收第一fp32源向量、第二fp32源向量,分别对两个源向量执行指数近似处理;
24、将第一fp32源向量对应的bf16结果写入满宽bf16目的向量的第一部分,将第二fp32源向量对应的bf16结果写入满宽bf16目的向量的第二部分;
25、所述满宽bf16目的向量位宽等于向量处理器物理向量位宽vlen。
26、进一步地,还包括softmax专用旁路模式;当开启softmax 专用旁路模式时,输入为零则直接输出bf16数值1的候选结果,输入小于可配置下溢阈值则直接输出bf16零的候选结果,其余输入进入范围缩减及多项式计算流程。
27、更进一步地,还包括:获取模式控制参数,所述模式控制参数来源于配置寄存器、指令模式字段、微架构控制信号中的至少一种;通过模式控制参数选择下溢处理为渐进次正规输出或者零化下溢,选择溢出时输出无穷大或者bf16最大有限数。
28、为实现上述目的,本技术还提供一种混合精度指数函数向量处理器,包括:
29、输入分类和功能选择模块,被配置为接收fp32格式的输入向量以及选择自然指数函数或者以2为底指数函数的功能模式信息,并完成nan、无穷、有限输入边界判断,输出特殊值、上溢、下溢候选结果;
30、模式变换模块,被配置为以2为底指数函数模式直接透传输入作为待缩减值,自然指数函数模式将输入结合log2(e)常数运算生成待缩减值;
31、范围缩减模块,被配置为对通过边界判断的待缩减值分解为整数阶码与预定有界区间的余项;
32、系数存储模块,被配置存储余项指数近似所需的多项式系数;
33、近似控制模块,与系数存储模块以及处理器内置fp32融合乘加单元相连,被配置调度fp32融合乘加单元,基于余项计算余项指数近似值;
34、指数重构模块,被配置结合整数阶码完成指数重构,处理正规数、溢出、次正规数并生成grs舍入辅助位;
35、特殊值选择模块,被配置对指数重构结果、特殊值候选结果、溢出候选结果、下溢候选结果做逐元素多路选择;
36、bf16舍入输出模块,被配置在多路选择完成后,仅执行一次fp32至bf16的rne舍入并输出bf16运算结果。
37、进一步地,所述范围缩减模块包括fp32拆分电路、整数生成电路、最近偶数判定电路、整数至fp32转换电路、余项计算通路;范围缩减模块输出roundeven取整得到的整数阶码n,以及区间[-0.5,0.5]的余项r。
38、进一步地,还包括模式控制模块;所述模式控制模块接收来自配置寄存器、指令模式字段、微架构控制信号中至少一类来源的模式控制信息,用于开启或关闭softmax旁路模式,还用于配置溢出输出策略、下溢输出策略;开启 softmax 旁路模式时,对零输入直接输出bf16数值1候选,低于阈值输入直接输出bf16零候选。
39、更进一步地,向量物理位宽vlen=128位;处理器接收两个fp32源向量,每个源向量包含4个fp32元素;第一源向量运算得到的4个bf16结果写入目的向量 [63:0],第二源向量运算得到的4个bf16结果写入目的向量[127:64],拼接得到128位满宽bf16目的向量。
40、为实现上述目的,本发明还提供一种电子设备,包括存储器、处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器采用如上所述混合精度指数函数向量处理器,用于执行所述存储器所存放的计算机程序,以实现如上所述的混合精度指数函数近似处理方法。
41、为实现上述目的,本发明还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行,以实现如上所述的混合精度指数函数近似处理方法。
42、相较于现有技术,本技术具有如下有益效果:
43、本技术的混合精度指数函数近似处理方法及向量处理器,实现了exp/exp2硬件加速,前置边界判断旁路异常输入;将余项约束于窄区间进行多项式逼近,复用fp3 融合乘加单元降低硬件代价;全链路中间保持fp32精度,末端仅执行一次fp32至bf16舍入,抑制多级舍入误差,完整支持bf16正规、次正规、溢出特殊值输出,同时支持双源向量拼接,兼顾计算精度、硬件面积与向量运算吞吐,适配ai推理硬件场景。
44、本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com