Options
2021
Conference Paper
Title
CoopCL: A Framework for Cooperative Execution of Data-parallel Kernels on Multi-device Platforms
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.
Author(s)