【发布时间】:2016-03-30 17:43:46
【问题描述】:
我不知道 OpenMP 4 是否支持这个 for 循环。有pragma和没有pragma的速度是一样的。
#pragma omp for simd
for (size_t i = 0; i < col; i++)
{
C[i] += A[i]* B[i];
}
【问题讨论】:
-
您使用了哪些编译器选项?什么编译器?什么操作系统?什么硬件。在我看来,
omp simd对于 x86 编译器由于自动矢量化而毫无意义。 GCC 使用带有-O3的自动矢量化。尝试比较是否使用 SIMD 和-O2。col的大小是多少。如果它非常大,那么这个操作无论如何都会受到内存带宽的限制。