Argonne National Laboratory
Graphics Processing Units (GPUs) have been widely used for general-purpose computation acceleration. However, cur-rent 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 paper, the authors 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 de-coupled virtual resources that can be transparently managed independent of the application execution. The proposed framework requires no source code modifications.