Affiliation:
1. University of Michigan, MI, USA
2. Hongik University, Seoul, Korea
Abstract
Heterogeneous computing on CPUs and GPUs has traditionally used fixed roles for each device: the GPU handles data parallel work by taking advantage of its massive number of cores while the CPU handles non data-parallel work, such as the sequential code or data transfer management. This work distribution can be a poor solution as it underutilizes the CPU, has difficulty generalizing beyond the single CPU-GPU combination, and may waste a large fraction of time transferring data. Further, CPUs are performance competitive with GPUs on many workloads, thus simply partitioning work based on the fixed roles may be a poor choice. In this article, we present the single-kernel multiple devices (SKMD) system, a framework that transparently orchestrates collaborative execution of a single data-parallel kernel across multiple asymmetric CPUs and GPUs. The programmer is responsible for developing a single data-parallel kernel in OpenCL, while the system automatically partitions the workload across an arbitrary set of devices, generates kernels to execute the partial workloads, and efficiently merges the partial outputs together. The goal is performance improvement by maximally utilizing all available resources to execute the kernel. SKMD handles the difficult challenges of exposed data transfer costs and the performance variations GPUs have with respect to input size. On real hardware, SKMD achieves an average speedup of 28% on a system with one multicore CPU and two asymmetric GPUs compared to a fastest device execution strategy for a set of popular OpenCL kernels.
Funder
National Science Foundation
Defense Advanced Research Projects Agency under the Power Efficiency Revolution for Embedded Computing Technologies (PERFECT) program
Publisher
Association for Computing Machinery (ACM)
Reference37 articles.
1. AMD. 2012. Accelerated Parallel Processing (APP) SDK. http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/. AMD. 2012. Accelerated Parallel Processing (APP) SDK. http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/.
2. A Heterogeneous Parallel Framework for Domain-Specific Languages
3. Ocelot
4. Harmony
5. Microarchitectural Design Space Exploration Using an Architecture-Centric Approach
Cited by
37 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. CuPBoP: Making CUDA a Portable Language;ACM Transactions on Design Automation of Electronic Systems;2024-06-21
2. A Unified CPU-GPU Protocol for GNN Training;Proceedings of the 21st ACM International Conference on Computing Frontiers;2024-05-07
3. Hardware support for balanced co-execution in heterogeneous processors;Proceedings of the 21st ACM International Conference on Computing Frontiers;2024-05-07
4. MVSym: Efficient symbiotic exploitation of HLS-kernel multi-versioning for collaborative CPU-FPGA cloud systems;Integration;2023-11
5. Regular Composite Resource Partitioning and Reconfiguration in Open Systems;ACM Transactions on Embedded Computing Systems;2023-09-26