AMD AOMP 18.0-0 Compiler Brings Support For HIP Bundles, Zero Copy For MI300A
AOMP 18.0-0 has been released as the newest version of AMD's LLVM/Clang compiler downstream that is focused on providing the very latest patches around Radeon OpenMP GPU offloading and goes along with their ROCm compute stack.
Not to be confused with AOCC that is AMD's LLVM/Clang downstream focused on the very latest Zen CPU optimizations, AOMP continues to be focused on providing the leading-edge compiler support for GPU compute offload. With AOMP 18.0-0, the LLVM code has been re-based to the latest LLVM 18.0 Git state.
In addition to rebasing against the latest upstream LLVM code, there is a new driver default, zero-copy support is enabled for the AMD Instinct MI300A, support for HIP bundles, OpenMP 5.1 is the default OMP version in use, and various other improvements and fixes.
AOMP 18.0-0 compiler sources are available for download from GitHub. It's also great to see more of the AOMP code being upstreamed into LLVM and thus the smaller code delta being carried by this AMD downstream compiler.
Not to be confused with AOCC that is AMD's LLVM/Clang downstream focused on the very latest Zen CPU optimizations, AOMP continues to be focused on providing the leading-edge compiler support for GPU compute offload. With AOMP 18.0-0, the LLVM code has been re-based to the latest LLVM 18.0 Git state.
In addition to rebasing against the latest upstream LLVM code, there is a new driver default, zero-copy support is enabled for the AMD Instinct MI300A, support for HIP bundles, OpenMP 5.1 is the default OMP version in use, and various other improvements and fixes.
- New driver default (opaque offload linker)
This driver uses clang-offload-packager to create and extract heterogeneous objects.
For amdgpu, the final link phase steps through a series of commands instead of making a single call to clang-linker-wrapper. clang-linker-wrapper obscures the process of linking and embedding offload and host objects. To use clang-linker-wrapper, use command line option --no-opaque-offload-linker.
Fix support for multi-arch.
Optimizations to remove initial hostexec malloc.
This driver uses clang-offload-packager to build and extract heterogeneous objects.
- Zero copy support for MI300A.
- Fixed data_share2 smoke test regression.
- Fix new DeviceRTL schedule clause intermittent fail.
- Support HIP bundles.
- Upstream convergence (3490 lines removed)
Remove old plugin code.
Remove the hostRPC code.
DeviceRTL cleanup - Synchronized threads
- Set default OpenMP to 5.1.
- Restore safe buffer usage warnings for MIOpen GTest.
- Fix build to use LLVM-project mono-repo components, ROCm devicelibs and comgr.
AOMP 18.0-0 compiler sources are available for download from GitHub. It's also great to see more of the AOMP code being upstreamed into LLVM and thus the smaller code delta being carried by this AMD downstream compiler.
4 Comments