【发布时间】:2021-05-06 05:06:42
【问题描述】:
我正在尝试使用#pragma omp simd 对嵌套循环进行矢量化,但内部循环对其进行了缩减。有没有办法做到这一点?
#pragma omp simd collapse(2) reduction(+:total[i])
for (int i=0; i<N; i++){
for (int j=0; j<N; j++){
float distance = sqrt(
(x[i][0]-x[j][0]) * (x[i][0]-x[j][0]) +
(x[i][1]-x[j][1]) * (x[i][1]-x[j][1]) +
(x[i][2]-x[j][2]) * (x[i][2]-x[j][2])
);
total[i] += distance;
}
}
目前,它只是在编译时出现此错误:
error: identifier "i" is undefined
#pragma omp simd collapse(2) reduction(+:total[i])
^
【问题讨论】:
标签: c++ c parallel-processing openmp simd