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

Publikation: Beitrag in Buch/Konferenzbericht/Sammelband/GutachtenBeitrag in KonferenzbandBeigetragenBegutachtung

Beitragende

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

OriginalspracheEnglisch
TitelProceedings of the 11th International Symposium on Highly Efficient Accelerators and Reconfigurable Technologies, HEART 2021
Herausgeber (Verlag)Association for Computing Machinery
ISBN (elektronisch)978-1-4503-8549-7
PublikationsstatusVeröffentlicht - 21 Juni 2021
Peer-Review-StatusJa

Publikationsreihe

ReiheACM International Conference Proceeding Series

Konferenz

Titel11th International Symposium on Highly Efficient Accelerators and Reconfigurable Technologies, HEART 2021
Dauer21 - 23 Juni 2021
StadtVirtual, Online
LandDeutschland

Externe IDs

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

Schlagworte

Schlagwörter

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