S. Xiao, P. Balaji, Q. Zhu, R. Thakur, S. Coghlan, H. Lin, G. Wen, J. Hong, W. Feng, "VOCL: An Optimized Environment for Transparent Virtualization of Graphics Processing Units," Preprint ANL/MCS-P2029-0212, February 2012. [pdf]
Graphics processing units (GPUs) have been widely used for general purpose computation acceleration. However, current programming models such as CUDA and OpenCL can support GPUs only on the local computing node, where the application execution is tightly coupled to the physical GPU hardware. In this work, we propose a virtual OpenCL (VOCL) framework to support the transparent utilization of local or remote GPUs. This framework, based on the OpenCL programming model, exposes physical GPUs as decoupled virtual resources that can be transparently managed independent of the application execution. The proposed framework requires no source code modifications. We also propose various strategies for reducing the overhead caused by data communication and kernel launching and demonstrate about 85 percent of the data write bandwidth and 90 percent of the data read bandwidth compared to writing and reading in a native nonvirtualized environment. We evaluate the performance of VOCL using four real world applications with various computation and memory access intensities and demonstrate that compute intensive applications can execute with negligible overhead in the VOCL environment.