【发布时间】:2020-12-15 01:16:33
【问题描述】:
我正在尝试在下面的 for 循环中测试自动矢量化。我无法让自动矢量化工作。代码如下所示。
float dotproduct(float a[], float b[], int size) {
int x = 0.0;
for (int i = 0; i < size; i++) {
x = x + a[i] * b[i];
}
return x;
}
int main() {
const int N = 8;
float a[N] = {2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0};
float b[N] = {9.0,8.0,7.0,6.0,5.0,4.0,3.0,2.0};
dotproduct(a, b, N);
cout << dotproduct(a, b, N);
return 0;
}
我将/Qvec-report:2 /Qpar-report:2 行添加到我的项目属性页面的附加选项部分,但我没有收到说明矢量化是否失败的报告。
【问题讨论】:
-
你有没有试过把这个语法`#pragma loop(hint_parallel(8))`放在for循环之上?
-
是的,我尝试使用它,但仍然没有任何变化。
标签: c++ visual-studio vectorization auto-vectorization