use*_*436 4 simd vectorization openmp
英特尔编译器允许我们通过以下方式对循环进行矢量化
#pragma simd
for ( ... )
Run Code Online (Sandbox Code Playgroud)
但是,您也可以选择使用 OpenMP 4 的指令执行此操作:
#pragma omp simd
for ( ... )
Run Code Online (Sandbox Code Playgroud)
两者之间有什么区别吗?
出于所有意图和目的,它们应该是相同的。不同之处在于 OpenMP 4.0#pragma omp simd指令是可移植的,应该与支持 OpenMP 4.0 的其他编译器以及 Intel 的编译器一起使用。
Furthemore,也有OpenMP的几个版本的条款,让你向量化更稳健的方式指令(safelen(),linear(),aligned(),reduction(),和collapse()浮现在脑海中)。