Transparent Acceleration for Heterogeneous Platforms With Compilation to OpenCL
Paderborn Center for Parallel Computing (PC2), Paderborn University, Paderborn, Germany
ACM Transactions on Architecture and Code Optimization (TACO), Volume 16 Issue 2, 2019
DOI:10.1145/3319423
@article{riebler2019transparent,
title={Transparent Acceleration for Heterogeneous Platforms With Compilation to OpenCL},
author={Riebler, Heinrich and Vaz, Gavin and Kenter, Tobias and Plessl, Christian},
journal={ACM Transactions on Architecture and Code Optimization (TACO)},
volume={16},
number={2},
pages={14},
year={2019},
publisher={ACM}
}
Multi-accelerator platforms combine CPUs and different accelerator architectures within a single compute node. Such systems are capable of processing parallel workloads very efficiently while being more energy efficient than regular systems consisting of CPUs only. However, the architectures of such systems are diverse, forcing developers to port applications to each accelerator using different programming languages, models, tools, and compilers. Developers not only require domain-specific knowledge but also need to understand the low-level accelerator details, leading to an increase in the design effort and costs. To tackle this challenge, we propose a compilation approach and a practical realization called HTrOP that is completely transparent to the user. HTrOP is able to automatically analyze a sequential CPU application, detect computational hotspots, and generate parallel OpenCL host and kernel code. The potential of HTrOP is demonstrated by offloading hotspots to different OpenCL-enabled resources (currently the CPU, the general-purpose GPU, and the manycore Intel Xeon Phi) for a broad set of benchmark applications. We present an in-depth evaluation of our approach in terms of performance gains and energy savings, taking into account all static and dynamic overheads. We are able to achieve speedups and energy savings of up to two orders of magnitude, if an application has sufficient computational intensity, when compared to a natively compiled application.
May 1, 2019 by hgpu