08-05-2013, 01:58 PM
Seminar on vCUDA: GPU accelerated high performance computing in virtual machines
Seminar on vCUDA.docx (Size: 79.7 KB / Downloads: 21)
ABSTRACT:
This seminar describes vCUDA, a GPGPU (General Purpose Graphics Processing Unit) computing solution for virtual machines. vCUDA allows applications executing within virtual machines (VMs) to leverage hardware acceleration, which can be beneficial to the performance of a class of high performance computing (HPC) applications. The key idea is: API call interception and redirection. With API interception and redirection, applications in VMs can access graphics hardware device and achieve high performance computing in a transparent way. Detailed analysis on the performance and overhead of the framework hsve been carried out. Evaluation shows that GPU acceleration for HPC applications in VMs is feasible and competitive with those running in a native, non-virtualized environment. Furthermore, evaluation also identifies the main cause of overhead in our current framework, and we give some suggestions for future improvement.
INTRODUCTION:
While virtualization technology has been successfully applied to a variety of devices, it is difficult to virtualize GPU in VMM platform, one main reason is lacking standard interface in hardware level. One practical alternative is to intercept the GPU control protocol in a higher (device-independent) layer. Research communities have already developed some tools to interpose traditional graphic protocol API, like OPENGL or Direct3D, to resolve this problem.
CUDA (Compute Unified Device Architecture) is the second mainstream API on top GPU, which focus on GPGPU computing. CUDA provides direct access to the hardware interface, rather than the traditional approach must rely on the graphical interface API. The framework used common C language as a programming language at same time provide a large number of high-performance computing instructions and development capabilities, so that developers can establish a more efficient data-intensive computing solutions on the basis of powerful GPU calculated abilities.
Due to the closure and diversity, GPU’s powerful parallel processing ability cannot be directly used by application running in virtualization platforms, result in a big functional insufficiency. CUDA, as a higher level interface, give us a chance to access it in a indirect way, just like we used to do with OPENGL. Unfortunately, unlike OPENGL, CUDA is not a full open and stable interface, most internal details is undocumented. By far as we know, vCUDA is the first study about GPU acceleration in virtual machines.
TECHNICAL DESCRIPTION:
vCUDA allows applications executing within virtual machines (VMs) to leverage hardware acceleration, which can be beneficial to the performance of a class of high performance computing (HPC) applications. The key idea in our design is: API call interception and redirection. With API interception and redirection, applications in VMs can access graphics hardware device and achieve high performance computing in a transparent way.
CONCLUSION:
Successfully implemented vCUDA system in the Xen. Also conducted an experimental measurement on the performance of vCUDA using a set of benchmarks from official SDK and 3-party applications from CUDA zone. Carried out detailed analysis on the performance and overhead of the framework. Evaluation shows that GPU acceleration for HPC applications in VMs is feasible and competitive with those running in a native, non-virtualized environment.