A Heterogeneous Execution Engine Might Make Its Way To LLVM

Written by Michael Larabel in LLVM on 5 June 2015 at 04:03 PM EDT. 2 Comments
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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week