0
我有一個for
循環,如果目標硬件是NVIDIA,我希望將其與OpenACC並行化,或者在目標硬件是AMD時串行運行它。我試過如下:正確使用OpenACC中的device_type
#pragma acc loop \
device_type(tesla) parallel \
device_type(radeon) seq
for (int z = 0; z < size_z; ++z)
{
// do stuff...
}
編譯時:pgc++ -std=c++11 -O4 -ta=tesla -Minfo:accel main.cpp
但在並行報告中,我得到:<line_number>, #pragma acc loop seq
看來,編譯器只考慮到該指令的最後一行。任何想法爲什麼發生這種情況?
運行pgc++ --version
給出如下:
pgc++ 16.10-0 64-bit target on x86-64 Linux -tp sandybridge
哦太棒了!非常感謝我的朋友的回覆! – AstrOne