[LLVMdev] Supporting heterogeneous computing in llvm.

Christos Margiolas chrmargiolas at gmail.com
Thu Jun 4 17:35:25 PDT 2015


Hello All,

The last two months I have been working on the design and implementation of
a heterogeneous execution engine for LLVM. I started this project as an
intern at the Qualcomm Innovation Center and I believe it can be useful to
different people and use cases. I am planning to share more details and a
set of patches in the next
days. However, I would first like to see if there is an interest for this.

The project is about providing compiler and runtime support for the
automatic and transparent offloading of loop or function workloads to
accelerators.

It is composed of the following:
a) Compiler and Transformation Passes for extracting loops or functions for
offloading.
b) A runtime library that handles scheduling, data sharing and coherency
between the
host and accelerator sides.
c) A modular codebase and design. Adaptors specialize the code
transformations for the target accelerators. Runtime plugins manage the
interaction with the different accelerator environments.

So far, this work so far supports the Qualcomm DSP accelerator  but I am
planning to extend it to support OpenCL accelerators. I have also developed
a debug port where I can test the passes and the runtime without requiring
an accelerator.


The project is still in early R&D stage and I am looking forward for
feedback and to gauge  the interest level. I am willing to continue working
on this as an open source project and bring it to the right shape so it can
be merged with the LLVM tree.


Regards,
Chris

P.S. I intent to join the llvm social in Bay Area tonight and I will be
more than happy to talk about it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150604/289e4438/attachment.html>


More information about the llvm-dev mailing list