I am trying to understand how exactly I can use OpenACC to offload computation to my nvidia GPU on GCC 5.3. The more I google things the more confused I become. All the guides I find, they involve recompiling the entire gcc along with two libs called nvptx-tools
and nvptx-newlib
. Other sources say that OpenACC is part of GOMP library. Other sources say that the development for OpenACC support will continue only on GCC 6.x. Also I have read that support for OpenACC is in the main brunch of GCC. However if I compile a program with -fopenacc
and -foffload=nvptx-non
is just wont work. Can someone explain to me what exactly it takes to compiler and run OpenACC code with gcc 5.3+?
- Why some guides seem to require (re)compilation of
nvptx-tools
,nvptx-newlib
, and GCC, if, as some internet sources say, OpenACC support is part of GCC's main branch? - What is the role of the GOMP library in all this?
- Is it true that development for OpenACC support will only be happening for GCC 6+ from now on?
- When OpenACC support matures, is it the goal to enable it in a similar way we enable OpenMP (i.e., by just adding a couple of compiler flags)?
- Can someone also provide answers to all the above after replacing "OpenACC" with "OpenMP 4.0 GPU/MIC offload capability"?
Thanks in advance