GPU,也即圖形處理單元。不論在手機中,還是在電腦、筆記本上,GPU都發揮著不可替代的作用。往期文章中,小編對GPU加速原理、GPU服務器選擇、GPU存儲性能提升等均有所介紹。為增進大家對GPU的認識,本文將對GPU的5種虛擬化技術的實現策略予以介紹。如果你對GPU具有興趣,不妨繼續往下閱讀哦。
一、設備模擬(Device Emulation)
設備模擬是指通過軟件的方法來為虛擬機模擬GPU設備,這種方法的好處是虛擬機內部都可以調用GPU命令,可以完全記錄GPU設備的狀態,保證虛擬化技術的全部特性,滿足四個標準中的資源復用和支持虛擬化特性的標準。QEMU 通過軟件模擬實現了傳統的VGA設備,但是該設備的性能很低,只能支持基礎的功能。軟件模擬設備的方法幾乎不會使用硬件加速,因此其實現的GPU性能已經無法滿足現在虛擬機的圖形圖像處理和高性能計算的需求。而且正如前文提到的,現代GPU架構具有很高的復雜性,而且缺少文檔,因此很難實現對一個真實的物理GPU進行軟件模擬。這意味著設備模擬方法只能模擬少量的API,只能保證少量的GPU特性提供給虛擬機。由于設備模擬的方法在性能和支持的GPU特性上和真實的GPU相差過大,設備模擬的技術已經不再應用到GPU虛擬化技術中。
二、API轉發(API Forwarding)
API轉發是指通過實現包裹圖形API的庫,這些庫在虛擬機調用相關的API時,將這些圖形API通過遠程過程調用的方法轉發到主機上,然后調用主機上的圖形驅動提供的API支持完成調用。通過給高層的API實現包裹庫,客戶機就能支持高層的API如CUDA。vCUDA、vGRIS等虛擬化方案都是利用API轉發的方法。這種方法的優點是利于實現,而且一定程度上利用了GPU硬件實現加速,同時可以使多個虛擬機調用的GPU相關指令與API在物理GPU上執行。但是API轉發的主要問題在于這種方法失去了語言和庫的靈活性選擇,包裹庫和支持的API的不匹配會造成GPU虛擬化不成功。而如果在遷移的過程中,目標主機與源主機的包裹庫版本不一致,可能會造成遷移之后GPU虛擬化不成功,因此API轉發會影響虛擬化提供的特性。
三、中介傳遞(Mediated Pass-through)
GPU已經可以支持多個獨立的上下文,中介傳遞的方法使虛擬機只占用這些上下文的一個或者子集。高帶寬操作(指令緩存提交、幀緩存提交)需要使用映射到物理GPU的內存或者MMIO資源,低帶寬操作(資源分配、傳統的特性)可能會通過使用全虛擬化的資源來實現。
四、直接傳遞(Direct Pass-through)
直接傳遞是指給一臺虛擬機使用一個物理GPU的全部訪問權限。Intel提供了Intel VT-d硬件輔助技術,使研究者不需要去了解GPU的編程接口就可以直接實現一臺虛擬機占用物理GPU的全部訪問權限。這種方法的好處在于可以提供與真實機器相近的性能以及保真度,亞馬遜的Amazon EC2提供的GPU資源就是使用這種虛擬化策略。但是這種方法問題在于一個物理GPU只能被一臺虛擬機使用,犧牲了GPU資源在多臺機器之間共享的條件。而且虛擬化的遷移功能也會受到影響,因為不同體系架構的GPU之間可能存在不兼容。
五、全虛擬化與半虛擬化
GPU虛擬化實現策略按照是否需要修改客戶機操作系統內部的驅動代碼分為GPU全虛擬化和GPU半虛擬化。GPU全虛擬化是指實現在多個虛擬機之間共享GPu資源的同時不需要修改虛擬機內部的圖形驅動。GPU半虛擬化是指向虛擬機提供軟件實現的理想設備模型,對客戶機的圖形驅動進行底層的控制。使用GPU半虛擬化的方法,比API轉發的性能消耗更小,但是客戶機的設備驅動必須要改寫。主流的GPU虛擬化方案GPUvm使用半虛擬化的實現策略對虛擬機GPU的性能有明顯的改善。
-
gpu
+關注
關注
28文章
4729瀏覽量
128890 -
VGA
+關注
關注
5文章
535瀏覽量
62900 -
虛擬機
+關注
關注
1文章
914瀏覽量
28160
發布評論請先 登錄
相關推薦
評論