1.一种基于超越函数加速指令的正余弦函数实现方法,属于处理器数据并行与向量三角函数计算技术,其特征在于,所述正余弦函数实现方法包括:1)对传入的向量操作数vd的每个元素规约到[-π/4,π/4]区间,获得对应的整型向量vql以及位于[-π/4,π/4]区间内的浮点数向量vdr;2)对整型向量vql根据vqln=vql mod 4取模获得整型向量vqln;3)根据泰勒级数展开方法,使用超越函数加速指令对浮点数向量vdr和整型向量vqln进行多项式近似计算,得到向量操作数vd对应的向量正弦函数或向量余弦函数计算结果vr;步骤3)使用的超越函数加速指令包括超越函数平方指令trimul、超越函数选择指令trisel以及超越函数乘加指令trimad;步骤3)包括:首先生成所有元素均为0的浮点数向量vt,再使用超越函数平方指令trimul对浮点数向量vdr进行向量浮点平方运算得到平方运算结果vd2,并根据整型向量vqln设置该平方运算结果vd2的符号位,同时使用超越函数选择指令trisel根据浮点数向量vdr和整型向量vqln进行向量条件选择得到后续多项式近似计算的最后一个系数vls及其符号;接着连续使用八次超越函数乘加指令trimad对浮点数向量vt、平方运算结果vd2 进行支持硬件查表的向量浮点乘加运算,这八次trimad指令的立即数操作数依次为7、6、5、4、3、2、1、0,超越函数乘加指令trimad根据所使用的立即数操作数进行硬件查表以获取向量浮点乘加运算中所需的加法操作数,并且每次超越函数乘加指令trimad的计算结果也要放到浮点数向量vt中进行不断累加,最后获取浮点数向量vt与系数vls的向量浮点乘法运算结果,作为向量操作数vd对应的向量正弦函数或向量余弦函数计算结果vr。
2.根据权利要求1所述的基于超越函数加速指令的正余弦函数实现方法,其特征在于,步骤1)包括:1.1)判断向量操作数vd的所有元素值是否都位于预设的区间 内,其中常数CD的值为15,若向量操作数vd的所有元素值都位于预设的区间 内,则执行步骤1.2);若向量操作数vd的任意元素值不在预设的区间 内,则执行步骤1.3);1.2)对所有元素值都位于预设的区间 内的向量操作数vd的每个元素使用预设的归约算法1规约到[-π/4,π/4]区间,获得对应的整型向量vql以及位于[-π/4,π/4]区间内的浮点数向量vdr,且整型向量vql中的各元素满足 ,其中常数 的值为π/4;执行步骤2);1.3)对任意元素没有位于区间 内的向量操作数vd的每个元素使用预设的归约算法2规约到[-π/4,π/4]区间,获得对应的整型向量vql以及位于[-π/4,π/4]区间内的浮点数向量vdr,且整型向量vql中的各元素满足 ,其中常数 的值为π/4;执行步骤2)。
3.根据权利要求2所述的基于超越函数加速指令的正余弦函数实现方法,其特征在于,步骤1.1)中判断向量操作数vd的所有元素值是否都位于预设的区间 内包括:首先将常数CD广播为浮点数向量vcond,然后对向量操作数vd进行向量浮点绝对值运算并判断该向量浮点绝对值运算的运算结果中各元素值是否小于浮点数向量vcond对应元素值,获得逻辑是或逻辑否的比较结果,并将比较结果放置于浮点数向量vtmp中,最后判断浮点数向量vtmp的值是否都为逻辑是,若都为逻辑是,则判定向量操作数vd的所有元素值都位于预设的区间 内,否则判定向量操作数vd的所有元素值并非都位于预设的区间 内。
4.根据权利要求2所述的基于超越函数加速指令的正余弦函数实现方法,其特征在于,步骤1.2)包括:首先将规约所需的常数CM_2_PI、CNPID2_A2、CNPID2_B2广播成为浮点数向量v_m_2_pi、vnppid2_a2、vnpid2_b2,然后获取向量操作数vd与浮点数向量v_m_2_pi进行向量浮点乘法运算的结果,并将该结果的每个元素以就近舍入的模式进行整数舍入得到浮点数向量vdql,再使用向量强制类型转换函数将浮点数向量vdql的每个元素进行整型强制转换得到整型向量vql;同时以向量操作数vd为加法操作数与浮点数向量vdql与浮点数向量vnppid2_a2进行向量浮点乘加运算得到浮点数向量vdr为结果,然后再以向量浮点数向量vdr作加法操作数与浮点数向量vdql、vnpid2_b2进行一次向量浮点乘加运算,并将运算结果保存至浮点数向量vdr中,使得浮点数向量vdr中的结果为输入的向量操作数vd被规约至 区间后的结果,vql是满足 的整型向量,其中常数 的值为π/4。
5.根据权利要求2所述的基于超越函数加速指令的正余弦函数实现方法,其特征在于,步骤1.3)包括:首先将规约所需的常数M_2_PI_1_2_24、CM_2_PI、NPID2_A、NPID2_B、NPID2_C、NPID2_D、C16分别广播成浮点数向量vm_2_pi_1_2_24、vm_2_pi、vnpid2_a、vnpid2_b、vnpid2_c、vnpid2_d、vc16,然后对向量操作数vd与浮点数向量vm_2_pi_1_2_24进行向量浮点乘法运算,并将进行向量浮点乘法运算的结果的每个元素以向零舍入模式进行向量整数舍入,再将该舍入结果与浮点数向量vc16进行向量浮点乘法运算得到浮点数向量vdqh;然后获取以浮点数向量vdqh作加法操作数与向量操作数vd与浮点数向量vm_2_pi进行向量浮点乘加运算的结果,并将该结果以就近舍入模式进行向量整数舍入得到浮点数向量vdql;接着对浮点数向量vdql和浮点数向量vdqh依次进行六次向量浮点乘加运算,这六次向量浮点乘法运算的第一个乘法操作数依次为vnpid2_a、vnpid2_a、vnpid2_b、vnpid2_b、vnpid2_c与vnpid2_c,第二个乘法操作数依次是浮点数向量vdqh、vdql、vdqh、vdql、vdqh与vdql,这些向量浮点乘加运算的加法操作数都是向量操作数vd,并且每次乘加运算的结果也放到向量操作数vd中以进行连续6次结果累加的向量浮点乘加运算;最后获取浮点数向量vdqh与浮点数向量vdql的向量浮点加法运算结果,并以浮点数向量vnpid2_d作为乘法操作数与将该结果以及向量操作数vd再进行一次向量浮点乘加运算得到浮点数向量vdr;与此同时,在计算得到浮点数向量vdql后,将浮点数向量vdql每个元素进行整型强制转换得到整型向量vql,使得浮点数向量vdr为输入的向量操作数vd被规约至[ 后的结果,整型向量vql为满足 的整型向量,其中常数 的值为π/4。
6.根据权利要求1所述的基于超越函数加速指令的正余弦函数实现方法,其特征在于,步骤2)包括:先将整数常量0x3和0x1分别广播为整型向量vci3和vci1;然后判断正余弦函数实现方法的类型,如类型为计算向量操作数vd的正弦函数,则通过获取整型向量vql与整型向量vci3的向量按位逻辑与运算结果得到整型向量vqln;如类型为计算向量操作数vd的余弦函数,则先将整型向量vql与整型向量vci1进行向量整数加运算,然后再将该运算结果与整型向量vci3进行向量按位逻辑与运算得到整型向量vqln。
7.一种基于超越函数加速指令的正余弦函数实现系统,包括相互连接的微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~6中任意一项所述基于超越函数加速指令的正余弦函数实现方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,该计算机程序用于被微处理器执行以实施权利要求1~6中任意一项所述基于超越函数加速指令的正余弦函数实现方法的步骤。