LLVM Looking To Better Collaborate Around Common AI/GPU/FPGA Offloading
While most hardware vendors are relying on LLVM when it comes to offloading compute work to GPUs, AI accelerators, FPGAs, and similar heterogeneous compute environments, right now each vendor is basically creating their own LLVM offloading run-time among a lot of other duplicated -- and often downstream only -- code. The new "llvm/offload" project hopes to lead to better collaboration in this area.
LLVM contributor Johannes Doerfert at the Lawrence Livermore National Laboratory (LLNL) is seeking comments from other LLVM stakeholders around working toward a more common/shared LLVM offload runtime for accelerators / GPUs / FPGAs. He explains of the "llvm/offload" plans:
The llvm/offload sub-project would be initially brought up by basing it off the existing LLVM libomptarget already in the source tree albeit moved and renamed to llvm/offload. That OpenMP target will provide the initial basis for this offloading back-end. Currently libomptarget supports offloading to CPUs as well as AMD and NVIDIA GPUs. Plus libomptarget extensions allow other features like offloading to remote machines and more.
So far those that have commented on the llvm/offload proposal have been in favor of this idea to work on greater collaboration and sharing around common LLVM offloading.
LLVM contributor Johannes Doerfert at the Lawrence Livermore National Laboratory (LLNL) is seeking comments from other LLVM stakeholders around working toward a more common/shared LLVM offload runtime for accelerators / GPUs / FPGAs. He explains of the "llvm/offload" plans:
"The idea is to provide a space for all of us to work together on the offloading infrastructure. Overall, the goal is a unified user experience, less and better code, interoperability between offloading models, and portability for the models that are currently not as portable as we would like them to be. I believe a subproject is adequate for this, given the wide scope and the way it couples with other (sub)projects."
The llvm/offload sub-project would be initially brought up by basing it off the existing LLVM libomptarget already in the source tree albeit moved and renamed to llvm/offload. That OpenMP target will provide the initial basis for this offloading back-end. Currently libomptarget supports offloading to CPUs as well as AMD and NVIDIA GPUs. Plus libomptarget extensions allow other features like offloading to remote machines and more.
So far those that have commented on the llvm/offload proposal have been in favor of this idea to work on greater collaboration and sharing around common LLVM offloading.
4 Comments