【发布时间】:2015-09-11 13:12:26
【问题描述】:
我正在尝试使用 OpenMP 将 for 循环计算拆分为多个线程。此外,我试图指示编译器对分配给每个线程的每个块进行矢量化。代码如下:
#pragma omp for private(i)
__pragma(loop(ivdep))
for (i = 0; i < 4096; i++)
vC[i] = vA[i] + SCALAR * vB[i];
问题在于,两个编译指示都希望紧接着 for 循环。
是否有任何智能结构可以使这项工作发挥作用?
有些人可能会争辩说,由于使用 OpenMP 的 for 循环拆分,循环的矢量化将不起作用。但是我读到 #pragma omp for 将循环划分为多个与线程数相等的连续块。 是吗?
【问题讨论】:
标签: c visual-studio optimization openmp vectorization