Support of OpenACC is available in commercial compilers from PGI (from version 12.6), and (for Cray hardware only) Cray. OpenUH is an
Open64 based open source OpenACC compiler supporting C and FORTRAN, developed by HPCTools group from
University of Houston. OpenARC is an open source C compiler developed at
Oak Ridge National Laboratory to support all features in the OpenACC 1.0 specification. An experimental open source compiler, accULL, is developed by the
University of La Laguna (
C language only). Omni Compiler is an open source compiler developed at HPCS Laboratory of
University of Tsukuba and Programming Environment Research Team of
RIKEN Center for Computational Science, Japan, supported OpenACC, and combining XcalableMP and OpenACC. IPMACC is an open source C compiler developed by
University of Victoria that translates OpenACC to CUDA, OpenCL, and ISPC. Currently, only following directives are supported:
data,
kernels,
loop, and
cache.
GCC support for OpenACC was slow in coming. A GPU-targeting implementation from Samsung was announced in September 2013; this translated OpenACC 1.1-annotated code to
OpenCL. The announcement of a "real" implementation followed two months later, this time from NVIDIA and based on OpenACC 2.0. This sparked some controversy, as the implementation would only target NVIDIA's own
PTX assembly language, for which no open source assembler or runtime was available. Experimental support for OpenACC/PTX did end up in GCC as of version 5.1. GCC6 and GCC7 release series include a much improved implementation of the OpenACC 2.0a specification. GCC 9.1 offers nearly complete OpenACC 2.5 support. == Usage ==