编译器自动向量化
- 介绍
编译器的自动向量化(automatic vectorization)将一次处理一对标量运算转换为一次并行处理多对向量运算,可以显著加速一些带有循环的程序运算。除了上述接口外,KML_SVML同时为编译器提供了向量化接口,见表1 编译器向量化接口。在编译过程中针对不同的编译器添加对应的编译选项可以使编译器自动调用对应的向量化接口,请参见9.3.2-GCC向量化方法和9.3.3-毕昇编译器向量化方法。
- GCC向量化方法
若要使用GCC自动向量化,必须使用GCC 9.3.0及以上版本进行编译。
- 毕昇编译器向量化方法
使用毕昇编译器时在链接选项中同时加上-lksvml -fveclib=MATHLIB -lkm -lm,并添加-O3或-O2选项以提供向量接口。其中-O3/-O2是为了开启向量化优化,这是向量化数学库起效的前提。