loop pragma

控制自动并行化如何考虑循环代码或从自动向量化进行的考虑中排除循环。

语法

#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )

参数

hint_parallel(n)
对编译器应跨 n 个线程并行化此循环的提示(其中 n 为正整数文本或零)。 如果 n 为零,则在运行时使用最大数量的线程。 这是对编译器的一个提示,而不是命令。 不能保证循环将并行化。 如果循环有数据依赖项或结构问题,则不会并行化。 例如,如果它存储到超出循环主体使用的标量,则它不会并行化。

除非指定了 /Qpar 编译器开关,否则编译器将忽略此选项。

no_vector
默认情况下,自动向量化会尝试向量化其计算为可能从中受益的所有循环。 请指定此 pragma 以对其后面的循环禁用自动向量化。

ivdep
指示编译器忽略此循环的向量依赖项的提示。

备注

若要使用 looppragma,请将其放在紧靠循环定义之前,而不是放在循环定义中。 pragma 对它后面的循环的范围有效。 可按任意顺序将多个 pragma 指令应用于一个循环,但必须在单独的 pragma 语句中声明每个指令。

另请参阅

自动并行化和自动矢量化
Pragma 指令以及 __pragma_Pragma 关键字