A Heterogeneous Execution Engine Might Make Its Way To LLVM
An intern from Qualcomm's Innovation Center has been designing a heterogeneous execution engine for LLVM that he's hoping to eventually upstream within the LLVM project.
Christos Margiolas was the intern at QuIC working on the heterogeneous computing support for LLVM. The focus of this engine is to provide compiler and runtime support to automatically and transparently offloading loops or function workloads to accelerators.
The accelerators in the context of this heterogeneous computing support could be DSPs, FPGAs, or OpenCL adapters on the system. His work up to now has been focused on the Qualcomm DSP accelerator.
This heterogeneous computing work doesn't appear to be based on HSA or other designs but would allow the compiler to extract relevant loops or functions for offloading, provide a runtime library to handle scheduling / data sharing / coherency, and is of a modular design.
Right now this work is in its early "R&D" stages while the developer decides next steps in making this a proper open-source project with ambitions of eventually making it part of LLVM. So far the responses have been positive about the project and can be found on the LLVM mailing list.
Christos Margiolas was the intern at QuIC working on the heterogeneous computing support for LLVM. The focus of this engine is to provide compiler and runtime support to automatically and transparently offloading loops or function workloads to accelerators.
The accelerators in the context of this heterogeneous computing support could be DSPs, FPGAs, or OpenCL adapters on the system. His work up to now has been focused on the Qualcomm DSP accelerator.
This heterogeneous computing work doesn't appear to be based on HSA or other designs but would allow the compiler to extract relevant loops or functions for offloading, provide a runtime library to handle scheduling / data sharing / coherency, and is of a modular design.
Right now this work is in its early "R&D" stages while the developer decides next steps in making this a proper open-source project with ambitions of eventually making it part of LLVM. So far the responses have been positive about the project and can be found on the LLVM mailing list.
2 Comments