Skip to content

Standards & References

Specifications, reference cards, and vendor documentation relevant to FUNDAL's OpenACC and OpenMP backends.


OpenACC

OpenACC (Open Accelerators) is a directive-based programming model for heterogeneous CPU/GPU systems. FUNDAL targets the 3.x series of the standard.

Specifications

VersionDateNotes
3.4Jun 2025Latest — adds capture modifier, alwaysin/alwaysout data clauses, loop self construct
3.3Nov 2022Bundled in this repository — see local copy below
3.2Nov 2021Clarifications and minor additions
3.1Nov 2020serial construct, finalize clause
3.0Nov 2019set construct, detach/attach clauses

Local copy (bundled):

Upstream:

Reference material

ResourceDescription
Best Practices Guide (2022)Porting workflow, profiling strategy, loop optimisation — essential reading
Best Practices Guide (online)Rendered HTML version, continuously updated
Resources — openacc.orgVideos, tutorials, books, and code samples

Compiler support

CompilerBackendOpenACC levelNotes
NVIDIA nvfortran (HPC SDK ≥ 12.3)GPU3.xFull support; reference implementation
GNU gfortran ≥ 13.1GPU2.xPartial — deviceptr clause not fully supported
Cray CCEGPU3.xSupported

Compiler documentation:


OpenMP

OpenMP (Open Multi-Processing) device offloading (target directives) is the second backend supported by FUNDAL. FUNDAL targets the 5.x series.

Specifications

VersionDateNotes
6.0Nov 2024Latest — task graphs, simplified data offload, C23/C++23 support, loop transformations
5.2Nov 2021Bundled in this repository — see local copy below
5.1Nov 2020C++ attribute syntax, interop construct
5.0Nov 2018First-class target offloading, task enhancements

Local copy (bundled):

Upstream:

Reference material

ResourceDescription
OpenMP 5.2 Reference Card12-page quick reference: directives, clauses, runtime routines, environment variables
OpenMP 5.1 Reference CardPrevious version reference card
All reference guides — openmp.orgIndex of all reference cards by version
LLNL OpenMP TutorialComprehensive introductory tutorial with examples

Compiler support

CompilerBackendOpenMP levelNotes
Intel IFX ≥ 2024.0.2 (oneAPI)Intel GPU5.0–5.2 targetFull support for FUNDAL; recommended for Intel GPUs
AMD FlangAMD GPU5.x targetSupported via ROCm
GNU gfortran ≥ 13GPU5.x targetExperimental offloading support
NVIDIA nvfortranGPU5.x targetSupported alongside OpenACC

Compiler documentation:


Version matrix

Quick reference for which standard versions are supported by each compiler as of early 2025:

CompilerOpenACCOpenMP target
NVIDIA nvfortran 25.x3.35.2
Intel IFX 2024.x5.2
GNU gfortran 142.7 (partial)5.1 (partial)
AMD Flang 185.x

INFO

Compiler support evolves rapidly. Always cross-check against the official compiler release notes before relying on a specific standard feature.