PPOpenCL: a performance-portable OpenCL compiler with host and kernel thread code fusion

Ying Liu, Lei Huang, Mingchuan Wu, Huimin Cui, Fang Lv, Xiaobing Feng, Jingling Xue
State Key Laboratory of Computer Architecture, Institute of Computing Technology, Chinese Academy of Sciences Beijing, China
28th International Conference on Compiler Construction, 2019


   title={PPOpenCL: a performance-portable OpenCL compiler with host and kernel thread code fusion},

   author={Liu, Ying and Huang, Lei and Wu, Mingchuan and Cui, Huimin and Lv, Fang and Feng, Xiaobing and Xue, Jingling},

   booktitle={Proceedings of the 28th International Conference on Compiler Construction},





Download Download (PDF)   View View   Source Source   



OpenCL offers code portability but no performance portability. Given an OpenCL program X specifically written for one platform P, existing OpenCL compilers, which usually optimize its host and kernel codes individually, often yield poor performance for another platform Q. Instead of obtaining a performance-improved version of X for Q via manual tuning, we aim to achieve this automatically by a source-to-source OpenCL compiler framework, PPOpenCL. By fusing X’s host and kernel thread codes (with the operations in different work-items in the same work-group represented explicitly), we are able to apply data flow analyses, and subsequently, performance-enhancing optimizations on a fused control flow graph specifically for platformQ. Validation against OpenCL benchmarks shows that PPOpenCL (implemented in Clang 3.9.1) can achieve significantly improved portable performance on seven platforms considered.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2021 hgpu.org

All rights belong to the respective authors

Contact us: