Abstract
Graphics processing Units (GPUs), which originally designed for the graphics calculating, have been widely adopted to general purpose computing in many domains owing to their massive computational power. In the era of cloud computing, GPU virtualization becomes an important technique for the better management of GPUs in data centers. However, most of current solutions are not full virtualization. They either need to modify the guest drivers or libraries, or restrict the hardware sharing capability. GPUvm is a full GPU virtualization solution for Nvidia GPUs, but it can only be executed on Xen hypervisors. In this thesis, we present a _rst full GPU virtualization solution on KVM (Kernel-based Virtual Machine), called GPUvmK. Our work is not merely a direct porting of GPUvm to KVM, since Xen and KVM have fundamental di_erences in their system architectures. Three major changes of GPUvmK are aggregator, QEMU device model, and memory management. Experiments show that GPUvmK can achieve 82% of native GPU performance. Comparing to GPUvm, GPUvmK has a larger memory initialization overhead but better execution performance.