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