OpenMP 5.1 Released With Better Interoperability For CUDA / AMD HIP / OpenCL
It's been two years already since the release of the OpenMP 5.0 specification and the update released on Friday is quite a worthy update:
- OpenMP 5.1 introduces a new interop construct for improving interoperability with non-OpenMP device execution contexts. This aims to improve the portability of OpenMP 5.1+ to non-native interfaces/accelerators. This interop construct is designed with NVIDIA CUDA, AMD ROCm/HIP, and OpenCL in mind. The interop construct is used for dealing with interoperability properties for one or more "foreign runtime environments".
- Full support for C11, C18, C++11, C++14, C++17, and C++20 standards.
- Fortran 2008 is also now fully supported along with initial support for Fortran 2018.
- Also improving the OpenMP 5.1 accelerator support is support for device-specific environment variables and function pointers that can be mapped to a device or accelerator.
- A new error directive so the developer can generate compile-time errors/warnings.
Find out more about the OpenMP 5.1 release via the specification (PDF). General details on the OpenMP 5.1 release can be found via OpenMP.org.