CUDA virtualization using QEMU and virtio

碩士 === 國立清華大學 === 資訊工程學系 === 104 === Virtualization has become a key technology in cloud computing. However, no single solution of GPGPU virtualization can satisfy all different demands. In this thesis, we propose qCUDA: a GPGPU virtualization method based on QEMU virtio for NVidia CUDA. The archite...

Full description

Bibliographic Details
Main Authors: Chen, Jia-Chi, 陳家齊
Other Authors: Lee, Che-Rung
Format: Others
Language:zh-TW
Published: 2016
Online Access:http://ndltd.ncl.edu.tw/handle/63062324221717717053
Description
Summary:碩士 === 國立清華大學 === 資訊工程學系 === 104 === Virtualization has become a key technology in cloud computing. However, no single solution of GPGPU virtualization can satisfy all different demands. In this thesis, we propose qCUDA: a GPGPU virtualization method based on QEMU virtio for NVidia CUDA. The architecture of qCUDA consists of three parts: library, driver, and virtual hardware devices. The virtualization method of qCUDA is based on API forwarding, which accepts users’ invocation of CUDA API in the virtual machine, and forwards the APIs to the physical machine through virtIO and QEMU. The experiments evaluate three different types of benchmarks, which are of bandwidth bound, computational bound, and memory bound, and compare qCUDA with native CUDA and rCUDA, which is a popular GPGPU virtualization method. For the bandwidth bound benchmark, qCUDA can reach 50% bandwidth performance of native CUDA, but rCUDA can only have 3% bandwidth performance of native CUDA. For the computational bound benchmark, qCUDA is 2000% time faster than rCUDA for a small data size and 200% time faster than rCUDA for a large data size. For the memory-bound benchmark, qCUDA is 1000%~˜2500% times faster than rCUDA.