c=c+a*b的OpenMP 4 simd矢量化

OpenMP 4 simd vectorization for c=c+a*b

本文关键字:OpenMP simd 矢量化 c+a      更新时间:2023-10-16

我不知道OpenMP 4是否支持循环。使用和不使用pragma的速度相同。

#pragma omp  for simd
for (size_t i = 0; i < col; i++)
{
    C[i] += A[i]* B[i];
}

杂注无效的原因(我想)有两个:

  • 在没有simd指令的情况下,代码已经矢量化;以及
  • 无论如何,代码都是内存绑定的,所以添加更多的线程来计算它不会有太大区别,除非它能让你访问更多的内存带宽。有关更多详细信息,请参阅此优秀答案