Я пытаюсь распараллелить некоторый код с помощью 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];
матриз объявляется так:
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