OpenACC 2.0 With GPU Support Coming To GCC
Phoronix: OpenACC 2.0 With GPU Support Coming To GCC
It looks like GCC will have the first open-source implementation of the OpenACC 2.0 standard and it will support GPU acceleration!..
Originally Posted by Marc Driftmeyer
Because of OpenMP. OMP is supported by many big companies. OACC was ok when OpenMP couldn't work with GPU. And seeing as not much people(if any) were using it (OMP was widely used, so people will proceed using it with new features rather than OpenACC) it became history.
Originally Posted by XorEaxEax
OpenACC *and* OpenMP
DOA? I don't think so.
OpenACC was formed three+ years ago because customers with accelerator hardware wanted a *standard* set of directives -- as a high level alternative to OpenCL/CUDA/etc. -- for programming GPU, many-core, and other types of accelerators, immediately! (PGI and CAPS had already developed and were shipping with non-standard directives, Cray was on the verge.) (Note: OpenMP was formed in 1997 for similar reasons. I was at SGI then and involved in the creation of OpenMP.)
The PGI accelerator model was the basis for OpenACC because it was *designed* to be portable across a wide range of accelerator/coprocessor architectures.
The core members of OpenACC are also members of the OpenMP accelerator subcommittee. They contribute what they learn -- while accelerating dozens of large applications around the world using OpenACC -- to the OpenMP accelerator committee, while testing new approaches in new versions of OpenACC.
Many customers want to be able to use more than one compiler while programming large technical applications. There are three commercial OpenACC compilers shipping today, versions of which have been shipping for eighteen months or longer. Open-source versions are coming, which should speed compiler development and adoption. As far as I know, the first implementation of OpenMP 4.0 is still in beta. Will it run on GPUs or only on Intel Xeon Phi? (Many members of OpenMP are interested in SMP systems not accelerators.) Implementations of OpenACC run on AMD, NVIDIA, and Intel Xeon Phi today.
If you look at applications that have been ported using both OpenACC and OpenMP 4.0, where directives are placed and what they do are similar in both (at the subset of functionality that OpenMP has attained). So programming in OpenACC now parallelizes code now, that can easily be ported to OpenMP later.
OpenMP releases are typically at least two years apart. OpenACC 1.0 contains important features that are not in OpenMP 4.0; OpenACC 2.0 adds other features the OpenMP accelerator team will consider. OpenACC is thus arguably the "quality test bed", the "well flying prototype", or even the "lead ship of the OpenMP accelerator class
If -- as I believe -- OpenACC is more functional, more portable, and has greater performance now -- and it takes two or three releases for OpenMP to capture the essence of OpenACC, the OpenACC standard has a lot of life in it!