Author :
Chen, Long ; Villa, Oreste ; Gao, Guang R.
Author_Institution :
Qualcomm Inc., San Diego, CA, USA
Abstract :
Using multi-GPU systems, including GPU clusters, is gaining popularity in scientific computing. However, when using multiple GPUs concurrently, the conventional data parallel GPU programming paradigms, e.g., CUDA, cannot satisfactorily address certain issues, such as load balancing, GPU resource utilization, overlapping fine grained computation with communication, etc. In this paper, we present a fine-grained task-based execution framework for multi-GPU systems. By scheduling finer-grained tasks than what is supported in the conventional CUDA programming method among multiple GPUs, and allowing concurrent task execution on a single GPU, our framework provides means for solving the above issues and efficiently utilizing multi-GPU systems. Experiments with a molecular dynamics application show that, for nonuniform distributed workload, the solutions based on our framework achieve good load balance, and considerable performance improvement over other solutions based on the standard CUDA programming methodologies.
Keywords :
computer graphic equipment; concurrency control; coprocessors; multiprocessing systems; parallel architectures; parallel programming; processor scheduling; resource allocation; CUDA programming; GPU cluster; GPU resource utilization; concurrent task execution; data parallel GPU programming paradigm; fine-grained task-based execution; finer-grained task scheduling; load balancing; molecular dynamics application; multiGPU system; nonuniform distributed workload; overlapping fine grained computation; scientific computing; Containers; Force; Graphics processing unit; Kernel; Load management; Performance evaluation; Programming; GPGPU; dynamic load balance; fine-grained; multi-GPU; task;