vCUDA Framework Development for GPU Virtualization
International Institute of Information Technology, Bangalore
International Institute of Information Technology, Bangalore, Technical Report IIITB-OS-2012-9E, 2012
@article{mittal2012vcuda,
title={vCUDA Framework Development for GPU Virtualization},
author={Mittal, B. and Nayak, S.},
year={2012}
}
vCUDA is a middleware that allows an application to use a CUDA-compatible graphics processing unit (GPU) installed in a remote computer as if it were installed in the computer where the application is being executed. vCUDA is designed following the client-server distributed architecture. On one side, the client employs a library of wrappers to the high-level CUDA Runtime Application Programming Interface (API). On the other side, there is a GPU network service listening for requests on a TCP port. vCUDA allows an instanced virtual machine to access GPUs in a transparent way, with an overhead slightly greater than a real machine/native GPU setup. In our vCUDA implementation, we have used XML-RPC as a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism. We have successfully virtualized a basic set of functions and enabled an application like the CUDA vector addition to run over the server. The feasibility was tested by carrying out the CUDA vector addition son varying data sizes and comparing the performance on the native GPU, a virtual machine, and a remote machine on the network.
August 15, 2012 by hgpu