CoopCL: A Framework for Cooperative Execution of Data-parallel Kernels on Multi-device Platforms

Research output: Contribution to book/Conference proceedings/Anthology/ReportConference contributionContributedpeer-review

Contributors

Abstract

This paper describes CoopCL framework that is specifically designed to reduce the multi-device programming complexity. CoopCL consists of a three core components: a C++ API, custom-compiler and a runtime that abstracts and unifies the cooperative workload execution on multi-device heterogeneous platforms. CoopCL takes the OpenCL-C kernel function and automatically uses platform devices to execute it in parallel. We show a runtime-system that transparently manages the data transfers and the synchronization necessary to ensure memory coherency without requiring any effort from the programmer. The programmer is only responsible for developing a dataparallel kernel function in OpenCL, while the system automatically partitions the workload across an arbitrary set of devices, executes the partial workloads, and efficiently merges the partial results together. Moreover, CoopCL-runtime in combination with a custom-compiler includes an auto-tuning approach based on a platform performance-model. CoopCL is completely portable across different machines including platforms with multi-core CPUs and discrete and/or integrated GPUs.

Details

Original languageEnglish
Title of host publicationProceedings of the 11th International Symposium on Highly Efficient Accelerators and Reconfigurable Technologies, HEART 2021
PublisherAssociation for Computing Machinery
ISBN (electronic)978-1-4503-8549-7
Publication statusPublished - 21 Jun 2021
Peer-reviewedYes

Publication series

SeriesHEART: Highly Efficient Accelerators and Reconfigurable Technologies

Conference

Title11th International Symposium on Highly Efficient Accelerators and Reconfigurable Technologies, HEART 2021
Duration21 - 23 June 2021
CityVirtual, Online
CountryGermany

External IDs

ORCID /0000-0003-2571-8441/work/159607561

Keywords

Keywords

  • C++, GPGPU, Heterogeneous systems, multi-core CPU, OpenCL