1.一种使用SIMD指令的向量函数快速查表法,其特征在于实施步骤包括:1)将操作数传入向量函数,并将向量函数的各算法区间的常系数作为被查表数值存入内存中的数组AA,并生成查表所需的索引向量VI;2)使用加载函数将内存中的数组AA加载至向量VA中;3)按照索引向量VI中元素指示,使用置换函数将向量VA中的指定元素加载至目的向量VD的指定位置;4)使用目的向量VD进行向量函数的后续计算,输出计算结果。
2.根据权利要求1所述的使用SIMD指令的向量函数快速查表法,其特征在于,步骤2)在各SIMD指令集下的具体实现方法是下述指令集中的一种:在AVX2指令集下的实现为:使用_mm256_loadu_si256函数将32位整型数组AA加载至__m256i类型的向量VA中;或使用_mm256_load_ps函数将单精度浮点数组AA加载至__m256类型的向量VA中;在SVE指令集下的实现为:先将32位整型数组AA强制转换为32位无符号整型数组,然后使用svld1uw_s64函数将转换后的数组AA加载至svint64_t类型的过渡向量VT中,最后使用svreinterpret_s32_s64函数将向量VT转换加载至svint32_t类型向量VA中;或先将64位整型数组AA强制转换为32位无符号整型数组,再使用svld1uw_s64函数将数组AA加载至svint64_t类型的向量VA中;或使用svld1_f32函数将单精度浮点数组AA加载至svfloat32_t类型的向量VA中;或使用svld1_f64函数将双精度浮点数组AA加载至svfloat64_t类型的向量VA中;在AVX512F指令集下的实现为:使用_mm512_loadu_si512函数将32位整型数组AA加载至__m512i类型的向量VA中;或将64位整型数组AA强制转换为32位整型数组,再使用_mm512_loadu_si512函数将数组AA加载至__m512i类型的向量VA中;或使用_mm512_loadu_ps函数将单精度浮点数组AA加载至__m512f类型的向量VA中;或使用_mm512_loadu_pd函数将双精度浮点数组AA加载至__m512d类型的向量VA中。
3.根据权利要求1或2所述的使用SIMD指令的向量函数快速查表法,其特征在于,步骤3)在各SIMD指令集下的具体实现方法是下述指令集中的一种:在AVX2指令集下的实现为:若数组AA为32位整型数组,应在索引向量VI的指示下,对应地使用_mm256_permutevar8x32_epi32函数将VA内的各元素分别加载至__m256i类型向量VD的指定位置中;若数组AA为单精度浮点数组,则应在索引向量VI的指示下,使用_mm256_permutevar8x32_ps函数将VA各元素分别加载至__m256类型向量VD指定位置;在SVE指令集下的实现为:若数组AA为32位整型数组,则在索引向量VI的指示下,对应地使用svtbl_s32函数将VA内的各元素分别加载至svint32_t类型向量VD的指定位置中;若数组AA为64位整型数组,则在索引向量VI的指示下,对应地使用svtbl_s64函数,将VA内的各元素分别加载至svint64_t类型向量VD的指定位置中;若数组AA为单精度浮点数组,则对应地使用svtbl_f32函数,在索引向量VI的指示下,将VA内的各元素分别加载至svfloat32_t类型向量VD的指定位置中;若数组AA为双精度浮点数组,则对应地使用svtbl_f64函数将VA内的各元素分别加载至svfloat64_t类型向量VD的指定位置中;在AVX512F指令集下的实现为:若数组AA为32位整型数组,则应在索引向量VI指定下,对应地使用_mm512_permutexvar_epi32函数将VA内的各元素分别加载至__m512i类型向量VD的指定位置中;若数组AA为64位整型数组,则应在索引向量VI指定下,对应地使用_mm512_permutexvar_epi64函数将VA内的各元素分别加载至__m512i类型向量VD的指定位置中;若数组AA为单精度浮点数组,则应在索引向量VI指定下,对应地使用_mm512_permutexvar_ps函数将VA内的各元素分别加载至__m512类型向量VD的指定位置中;若数组AA为双精度浮点数组,则应在索引向量VI指定下,对应地使用_mm512_permutexvar_pd函数将VA内的各元素分别加载至__m512d类型向量VD的指定位置中。
4.一种使用SIMD指令的向量函数快速查表系统,其特征在于包括:数组及索引向量生成程序单元,用于传入操作数,并将向量函数的各算法区间的常系数作为被查表数值存入内存中的数组AA,并生成查表所需的索引向量VI;数组暂存程序单元,用于使用加载函数将内存中的数组AA加载至向量VA中;间接向量查表程序单元,用于按照索引向量VI中元素指示,使用置换函数将向量VA中的指定元素加载至目的向量VD的指定位置;向量函数计算程序单元,用于使用目的向量VD进行向量函数的后续计算,输出计算结果。
5.一种使用SIMD指令的向量函数快速查表系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~3中任意一项所述使用SIMD指令的向量函数快速查表法的步骤。
6.一种使用SIMD指令的向量函数快速查表系统,包括计算机设备,其特征在于,该计算机设备的存储介质上存储有被编程或配置以执行权利要求1~3中任意一项所述使用SIMD指令的向量函数快速查表法的计算机程序。
7.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~3中任意一项所述使用SIMD指令的向量函数快速查表法的计算机程序。