介绍
编译器的自动向量化(automatic vectorization)将一次处理一对标量运算转换为一次并行处理多对向量运算,可以显著加速一些带有循环的程序运算。除了上述接口外,KML_SVML同时为编译器提供了向量化接口,见表1 编译器向量化接口。在编译过程中针对不同的编译器添加对应的编译选项可以使编译器自动调用对应的向量化接口,请参见9.3.2-GCC向量化方法和9.3.3-毕昇编译器向量化方法。
SVML接口 |
MATH接口 |
描述 |
---|---|---|
_ZGVnN2v_sin _ZGVsNxv_sin _ZGVnN4v_sinf _ZGVsNxv_sinf |
sin sinf |
正弦函数 |
_ZGVnN2v_cos _ZGVsNxv_cos _ZGVnN4v_cosf _ZGVsNxv_cosf |
cos cosf |
余弦函数 |
_ZGVnN2v_tan _ZGVsNxv_tan _ZGVnN4v_tanf _ZGVsNxv_tanf |
tan tanf |
正切函数 |
_ZGVnN2v_atan _ZGVsNxv_atan _ZGVnN4v_atanf _ZGVsNxv_atanf |
atan atanf |
反正切函数 |
_ZGVnN2vv_atan2 _ZGVsNxvv_atan2 _ZGVnN4vv_atan2f _ZGVsNxvv_atan2f |
atan2 atan2f |
反正切函数 |
_ZGVnN2v_sinh _ZGVsNxv_sinh _ZGVnN4v_sinhf _ZGVsNxv_sinhf |
sinh sinhf |
双曲正弦函数 |
_ZGVnN2v_cosh _ZGVsNxv_cosh _ZGVnN4v_coshf _ZGVsNxv_coshf |
cosh coshf |
双曲余弦函数 |
_ZGVnN2v_tanh _ZGVsNxv_tanh _ZGVnN4v_tanhf _ZGVsNxv_tanhf |
tanh tanhf |
双曲正切函数 |
_ZGVnN2v_exp _ZGVsNxv_exp _ZGVnN4v_expf _ZGVsNxv_expf |
exp expf |
指数函数(base e) |
_ZGVnN2v_exp2 _ZGVsNxv_exp2 _ZGVnN4v_exp2f _ZGVsNxv_exp2f |
exp2 exp2f |
指数函数(base e) |
_ZGVnN2v_expm1 _ZGVsNxv_expm1 _ZGVnN4v_expm1f |
expm1 expm1f |
指数函数(base e) |
_ZGVnN2v_log _ZGVsNxv_log _ZGVsNxv_logf _ZGVnN4v_logf |
log logf |
对数函数(base e) |
_ZGVnN2v_log10 _ZGVsNxv_log10 _ZGVnN4v_log10f _ZGVsNxv_log10f |
log10 log10f |
对数函数(base 10) |
_ZGVnN2v_log1p _ZGVsNxv_log1p _ZGVnN4v_log1pf _ZGVsNxv_log1pf |
log1p log1pf |
对数函数(base e) |
_ZGVnN2vv_pow _ZGVsNxvv_pow _ZGVnN4vv_powf _ZGVsNxvv_powf |
pow powf |
幂函数 |

以上接口为提供给编译器调用的接口,不推荐用户直接调用。