A KVM-based Hypervisor for Heterogeneous System Architecture
|關鍵字:||虛擬化技術;系統虛擬化;圖形處理器虛擬化;異質運算;異質系統架構;Virtualization;GPU Virtualization;Kernel-based Virtual Machine;Heterogeneous system architecture;HSA|
本論文探討與實作一可運行於異質系統架構之系統虛擬機，因異質系統架構為一嶄新的架構，舊有的系統虛擬機器無法直接運行及虛擬多項異質系統架構所定義的特性。本論文實作基於Linux KVM，並提出多項設計及修改以達到異質系統架構的系統虛擬化。並基於此實作，在異質系統架構上之GPU可共享於多的虛擬作業系統及原生作業系統，在實驗平台AMD Kaveri機器上，多個虛擬作業系統及原生作業系統均可同時分配工作並於GPU端執行。|
Heterogeneous System Architecture (HSA)  is defined and developed by HSA foundation aiming at reducing programmability barrier and improving computation efficiency for heterogeneous computing. HSA tries to integrate CPU and other computing devices on the same bus and enables them to share the same virtual memory address space. Since the address space is shared, programmers do not need to take care of explicit data copying between devices, as was required in discrete GPUs in the past, and can focus more on developing algorithms. The communication overhead between CPU and devices is also reduced by eliminating such explicit data copy. HSA offers new opportunities for heterogeneous computing and introduces various features in the architecture to make heterogeneous computing more powerful, more convenient, and more power efficient. This thesis introduces HSA virtualization. Since HSA is a new architecture, which tightly integrates CPU with GPU, legacy hypervisors cannot work directly on HSA-compliant systems. This work investigates on the issues involved and implements a system virtual machine based on Linux KVM (kernel-based virtual machine) . The newly created hypervisor enables major features defined by HSA inside the guest operating systems. GPU in an HSA machine can be shared between multiple guest OSes and the host OS under this implementation. We have shown that on the HSA-compliant computing system AMD Kaveri, various processes in multiple guest operating systems and host operating system can dispatch jobs to the shared GPU for execution under our new and HSA-ready hypervisor.
|Appears in Collections:||Thesis|