【发布时间】:2021-06-03 09:16:15
【问题描述】:
我正在尝试使用 OpenACC 并行化一些代码。
#pragma acc parallel loop reduction (+:matriz())
for(auto i = 0; i <= (width-siz); i += siz)
for(auto j = 0; j <= (width-siz); j += siz)
for(auto k = 0; k <= (width-siz); k += siz)
for(auto l = 0; l <= (width-siz); l += siz)
matriz[i][j][k][l] = matriz[i][j][k+1][l] + matriz[i][j][k][l+1];
matriz 是这样声明的:
vector<vector<vector<vector<short>>>> matriz;
我用这个命令编译:
pgc++ -std=c++11 -acc -ta=multicore,tesla -Minfo=accel boxcount4d.cpp -o boxcount4d
我得到这个错误:
"boxcount4d.cpp", line 304: error: expected a ")"
#pragma acc parallel loop reduction (+:matriz())
^
1 error detected in the compilation of "boxcount4d.cpp".
我不知道这只是语法错误还是我必须使用这个库https://docs.nvidia.com/cuda/thrust/index.html,因为我无法将 STL 向量与 OpenACC 一起使用
【问题讨论】: