AMD's HIP Moves To Using LLVM's New Offload Driver By Default
([LLVM] 4 Hours Ago
Offloading Driver)
- Reference: 0001615644
- News link: https://www.phoronix.com/news/AMD-HIP-Default-New-Offload
- Source link:
A change merged to upstream LLVM Git yesterday for LLVM 23 is moving AMD's HIP to using the new/modern offload driver by default. This aligns with a prior change for NVIDIA CUDA and already in place for OpenMP offloading too.
LLVM's "new" offloading driver provides a unified interface to use from single-source languages like NVIDIA CUDA or OpenMP by default and now AMD HIP is using it too by default. HIP up to now supported the new offloading driver already but only when using the "--offload-new-driver" argument.
This offloading driver provides a unified interface between the different offloading languages, supports linking and compiling redistributable device code, supports static libraries containing device code, supports device-side link-time optimizations (LTO), supports both Windows and Linux, and is compatible with standard builds. More details on the driver can be found via [1]this 2024 LLVM Discourse post when the proposal was originally made for transitioning NVIDIA CUDA and AMD HIP to using this new driver by default.
With [2]this merge yesterday to LLVM 23, AMD HIP is now using the new offload driver by default. The old behavior can still be used with the "--no-offload-new-driver". This change though does impact the ABI for relocatable device code and libraries in turn will need to be recompiled for this new driver.
[1] https://discourse.llvm.org/t/rfc-use-the-new-offloding-driver-for-cuda-and-hip-compilation-by-default/77468
[2] https://github.com/llvm/llvm-project/pull/123359
LLVM's "new" offloading driver provides a unified interface to use from single-source languages like NVIDIA CUDA or OpenMP by default and now AMD HIP is using it too by default. HIP up to now supported the new offloading driver already but only when using the "--offload-new-driver" argument.
This offloading driver provides a unified interface between the different offloading languages, supports linking and compiling redistributable device code, supports static libraries containing device code, supports device-side link-time optimizations (LTO), supports both Windows and Linux, and is compatible with standard builds. More details on the driver can be found via [1]this 2024 LLVM Discourse post when the proposal was originally made for transitioning NVIDIA CUDA and AMD HIP to using this new driver by default.
With [2]this merge yesterday to LLVM 23, AMD HIP is now using the new offload driver by default. The old behavior can still be used with the "--no-offload-new-driver". This change though does impact the ABI for relocatable device code and libraries in turn will need to be recompiled for this new driver.
[1] https://discourse.llvm.org/t/rfc-use-the-new-offloding-driver-for-cuda-and-hip-compilation-by-default/77468
[2] https://github.com/llvm/llvm-project/pull/123359