GPU虛擬化是什麼意,具體怎麼實現?

麗臺中國


1。主要看到公有云的主要規格是cpu,內存和存儲,沒有gpu,但大家提到CPU計算能力和gpu計算能力有很大差異,有必要歸入不同的資源,也應該提供不同的虛擬化資源。但是目前還沒看到,為什麼? 2。如果應用者編寫了某些基於神經網絡的算法,希望利用gpu運行,那是否在目前公有云租用的虛擬主機或集群裡是實現不了的? 3。另外當前主流服務商如aws,微軟,提供的數據挖掘算法服務,這些服務是在傳統的CPU資源上運行,還是有後臺的gpu資源支撐運行。


404err


GPU虛擬化指的就是顯卡虛擬化,這種顯卡並不是一般的顯卡,通常是服務器專用的顯卡,比如英偉達的tesla系列顯卡。

要實現GPU虛擬化還需要虛擬化產品的支持,只有在虛擬化環境裡才能實現GPU虛擬化。它可以把一塊顯卡虛擬成多個顯卡供虛擬機使用,虛擬環境也可以把顯卡直通給虛擬機使用,這樣性能更強。

GPU虛擬化通常是用在桌面雲環境裡,現在常用的桌面雲環境有:華為桌面雲、VMware桌面雲、Citrix桌面雲,實現技術大同小異。


技術宅在家


顯卡虛擬化(GPU虛擬化)

顯卡虛擬化就是將顯卡進行切片,並將這些顯卡時間片分配給虛擬機使用的過程。由於支持顯卡虛擬化的顯卡一般可以根據需要切分成不同的規格的時間片,因此可以分配給多臺虛擬機使用。

其實現原理其實就是利用應用層接口虛擬化(API remoting),API重定向是指在應用層進行攔截與GPU相關的應用程序編程接口(Application ProgrammingInterface,API),通過重定向(仍然使用GPU)的方式完成相應功能,再將執行結果返回應用程序

我們現在使用3D桌面虛擬化解決方案中,大部分是使用NVIDIA公司提供的顯卡虛擬化技術,即是vCUDA(virtual CUDA)技術,前面我們說過了CUDA框架。vCUDA採用在用戶層攔截和重定向CUDA API的方法,在虛擬機中建立物理GPU的邏輯映像――虛擬GPU,實現GPU資源的細粒度劃分、重組和再利用,支持多機併發、掛起恢復等虛擬機高級特性。

其vCUDA的實現原理大概如下:包括三個模塊:CUDA客戶端、CUDA服務端和CUDA管理端。以XenServer為例,在物理硬件資源上運行著一個VMM用於向上提供硬件映像,在VMM上運行著若干個虛擬機。其中一個虛擬機為特權虛擬機(Host VM),即為XenServer中的Domain 0,在虛擬機中運行的操作系統稱為

Host OS。Host OS能夠直接控制硬件,系統內安裝著原生的CUDA庫以及GPU驅動,使得Host OS可以直接訪問GPU和使用CUDA。其它的虛擬機屬於非特權虛擬機(Guest VM),其上運行的操作系統(Guest OS)不能直接操縱GPU。在這裡我們將CUDA客戶端稱之為客戶端驅動,CUDA服務端稱之為宿主機的驅動,CUDA管理端稱之為GPU管理器。


分享到:


相關文章: