透過您的圖書館登入
IP:3.145.178.157
  • 學位論文

一個為異質系統架構並基於KVM的系統虛擬機器

A KVM-based Hypervisor for Heterogeneous System Architecture

指導教授 : 徐慰中

摘要


為解決舊有異質運算架構所存在的效能消耗及程式撰寫不便性,異質系統架構基金會提出了異質系統架構。該架構將處理器與其他運算單元放置於同一系統匯流排,使運算單元處於相同位址空間,由此省略運算單元間資料傳輸,程式開發者也可更專注於開發運算演算法而不用處理運算單元間溝通,此設計解決了效能消耗及程式撰寫不便的問題。異質系統架構為異質運算開創了嶄新的發展空間,並提供多種特性使異質運算更強大、更方便、以及更省電。 本論文探討與實作一可運行於異質系統架構之系統虛擬機,因異質系統架構為一嶄新的架構,舊有的系統虛擬機器無法直接運行及虛擬多項異質系統架構所定義的特性。本論文實作基於Linux KVM,並提出多項設計及修改以達到異質系統架構的系統虛擬化。並基於此實作,在異質系統架構上之GPU可共享於多的虛擬作業系統及原生作業系統,在實驗平台AMD Kaveri機器上,多個虛擬作業系統及原生作業系統均可同時分配工作並於GPU端執行。

並列摘要


Heterogeneous System Architecture (HSA) [1] 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) [2]. 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.

參考文獻


[1] Heterogeneous System Architecture (HSA), http://www.hsafoundation.com/
[5] J.E. Stone, D. Gohara, G. Shi. OpenCL: a parallel programming standard for heterogeneous computing systems. In Comput. Sci. Eng., 12 (2010), pp. 66–73
[6] DOWTY, M., AND SUGEMAN, J. GPU Virtualization on VMware’s Hosted I/O Architecture. ACM SIGOPS Operating Systems Review 43, 3 (2009), 73–82.
[8] SUZUKI, Y., KATO, S., YAMADA, H., AND KONO, K. , Gpuvm: why not virtualizing gpus at the hypervisor? In Proceedings of the 2014 USENIX conference on USENIX Annual Technical Conference (2014), USENIX Association, pp. 109–120.
[10] Popek and R. P. Goldberg. Formal Requirements for Virtualizable Third Generation Architectures. Communications of the ACM, 17:412–421, July 1974.

延伸閱讀