<div dir="ltr"><span style="font-size:12.8000001907349px">Hello All,</span><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">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 </div><div style="font-size:12.8000001907349px">days. However, I would first like to see if there is an interest for this. </div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">The project is about providing compiler and runtime support for the automatic and transparent offloading of loop or function workloads to accelerators. </div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">It is composed of the following:</span></div><div style="font-size:12.8000001907349px"><span style="font-size:12.8000001907349px">a) Compiler and Transformation Passes for extracting loops or functions for offloading.</span><br></div><div style="font-size:12.8000001907349px">b) A runtime library that handles scheduling, data sharing and coherency between the</div><div style="font-size:12.8000001907349px">host and accelerator sides.</div><div style="font-size:12.8000001907349px">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.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">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.</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">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. </div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">Regards,</div><div style="font-size:12.8000001907349px">Chris</div><div style="font-size:12.8000001907349px"><br></div><div style="font-size:12.8000001907349px">P.S. I intent to join the llvm social in Bay Area tonight and I will be more than happy to talk about it.</div></div>