Automatic OpenCL Task Adaptation for Heterogeneous Architectures
Inria / LaBRI, University of Bordeaux, Bordeaux INP, France
hal-01419366, (21 December 2016)
@inproceedings{huchant:hal-01419366,
title={Automatic OpenCL Task Adaptation for Heterogeneous Architectures},
author={Huchant, Pierre and Counilh, Marie-Christine and Barthou, Denis},
url={https://hal.archives-ouvertes.fr/hal-01419366},
booktitle={Euro-Par},
address={Grenoble, France},
series={Euro-Par 2016: Parallel Processing},
pages={684 – 696},
year={2016},
month={Aug},
doi={10.1007/978-3-319-43659-3_50},
pdf={https://hal.archives-ouvertes.fr/hal-01419366/file/Euro-Par_2016_paper_169.pdf},
hal_id={hal-01419366},
hal_version={v1}
}
OpenCL defines a common parallel programming language for all devices, although writing tasks adapted to the devices, managing communication and load-balancing issues are left to the programmer. In this work, we propose a novel automatic compiler and runtime technique to execute single OpenCL kernels on heterogeneous multi-device architectures. The technique proposed is completely transparent to the user, does not require off-line training or a performance model. It handles communications and load-balancing issues, resulting from hardware heterogeneity, load imbalance within the kernel itself and load variations between repeated executions of the kernel, in an iterative computation. We present our results on benchmarks and on an N-body application over two platforms, a 12-core CPU with two different GPUs and a 16-core CPU with three homogeneous GPUs.
December 31, 2016 by hgpu