• 正文
    • Part 01●??背景?●
    • Part 02●??相關基礎概念?●
    • Part 03●??GPU虛擬化技術方案?●
  • 相關推薦
申請入駐 產(chǎn)業(yè)圖譜

淺談GPU虛擬化

01/28 11:55 來源:中國移動智慧家庭運營中心成都業(yè)務支持中心
4290
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

作者:仇昌棟、廖長軍

GPU虛擬化是一種技術,它允許多個虛擬環(huán)境共享單個物理GPU的資源,它能帶來提高資源利用率、降低成本、高靈活性和可擴展性、提高安全性等方面的好處。隨著GPU在各種領域的應用越來越普及,如圖形渲染、通用計算(如深度學習)、音視頻編解碼等,GPU虛擬化也在近年來得到了越來越廣泛的關注。

Part 01●??背景?

1.1 GPU應用場景

GPU(圖形處理器)最初設計用于處理計算機圖形學任務,但現(xiàn)在其應用場景已經(jīng)擴展到了許多其他領域。以下是一些GPU應用的場景:

游戲和視覺效果:GPU最初的目的是為了加速圖形渲染,因此它們在游戲和視覺效果方面有很大的應用。GPU可以快速處理大量數(shù)據(jù)并生成復雜的三維圖形,為玩家提供更真實的游戲體驗。

機器學習和深度學習近年來,GPU在人工智能領域的應用越來越廣泛。由于深度學習模型需要大量的并行計算和浮點運算,GPU非常適合這種任務。使用GPU加速機器學習訓練過程可以節(jié)省大量時間。

科學模擬和數(shù)據(jù)分析:許多科學計算任務需要處理大量數(shù)據(jù)并進行復雜數(shù)學運算。GPU可以在分子動力學、流體動力學、天文學、地球科學等領域的模擬和分析中發(fā)揮重要作用。

圖像和視頻處理:GPU在圖像和視頻處理領域也有很大的應用。例如,它們可以用于實時視頻編解碼、圖像降噪、圖像增強、圖像識別等任務。

虛擬現(xiàn)實和增強現(xiàn)實GPU在虛擬現(xiàn)實(VR)和增強現(xiàn)實(AR)領域也有很大的應用。它們可以實時渲染高質量的虛擬環(huán)境,為用戶提供沉浸式體驗。

可以預見,隨著技術的發(fā)展,GPU的應用領域還將繼續(xù)擴展。

1.2 GPU虛擬化帶來的優(yōu)勢

GPU虛擬化是一種將物理GPU的計算和顯存資源在多個虛擬環(huán)境中共享的技術,它的主要優(yōu)勢如下:

資源共享:GPU虛擬化允許在多個虛擬環(huán)境中共享物理GPU的計算和顯存資源,提高GPU的使用效率。

彈性擴展:通過GPU虛擬化,可以根據(jù)應用程序的需求動態(tài)調整虛擬GPU的計算和顯存資源,實現(xiàn)資源的彈性擴展。

成本效益:GPU虛擬化可以降低硬件投資和維護成本,因為它允許在多個虛擬環(huán)境中共享物理GPU,從而減少了購買和維護多個獨立GPU的需要。

隔離性:GPU虛擬化提供了良好的隔離性,確保了虛擬環(huán)境之間的安全和獨立性。這在多租戶云計算環(huán)境中尤為重要,因為它可以確保不同租戶之間的數(shù)據(jù)和計算隔離。

靈活部署:GPU虛擬化使得虛擬環(huán)境可以靈活地部署在不同的物理硬件上,以滿足不同的性能需求。這意味著用戶可以根據(jù)自己的需求選擇合適的GPU硬件,而無需考慮與現(xiàn)有虛擬環(huán)境的兼容性問題。

Part 02●??相關基礎概念?

為方便大家理解GPU虛擬化,先介紹相關的基礎概念,包括I/O總線、GPU API、GPU工作流程。

2.1 I/O總線

根據(jù)接口協(xié)議的性能,現(xiàn)代計算機對I/O總線進行了分層。

見上圖,一些外圍相對較慢的I/O設備則通過外圍I/O總線連接到系統(tǒng),比如使用SCSI(Small Computer System Interface)、SATA(Serial AT Attachment)或者USB(Universal Serial Bus)等協(xié)議的I/O設備。而顯卡、網(wǎng)卡等高性能的I/O設備通過通用I/O總線連接到系統(tǒng),在許多現(xiàn)代系統(tǒng)中會是PCIe(Peripheral Component Interconnect Express)或它的衍生形式。

2.2 GPU API

為了支持各種功能,GPU提供了不同類型的API,讓開發(fā)者能夠在應用程序中使用GPU的強大功能。這些API可分為三類:圖形渲染、通用計算和音視頻編解碼。

圖形渲染API被用于處理圖形渲染任務,例如實時3D圖形和動畫。這些API提供了一組函數(shù)和接口,允許開發(fā)者在程序中創(chuàng)建和操縱3D對象、紋理和著色器。這些API經(jīng)常被用于游戲和3D建模軟件。主要的渲染API有:OpenGL(開放圖形庫):跨平臺的圖形編程接口,提供2D和3D圖形渲染功能;Vulkan:與OpenGL類似,是一個跨平臺的3D圖形和計算API,但提供了更低級的硬件控制和更高的性能;DirectX:由微軟開發(fā)的一系列API,包括Direct3D,用于處理Windows平臺上的3D圖形渲染;Metal:由蘋果開發(fā)的圖形和計算API,專為iOS和macOS平臺設計。

通用計算API允許開發(fā)者將GPU用于通用計算任務,而不僅僅是圖形渲染。這些任務可能包括物理模擬、機器學習、圖像處理等。通用計算API提供了編程模型和優(yōu)化工具,以便在GPU上實現(xiàn)高性能并行計算。主要的通用計算API有:CUDA(Compute Unified Device Architecture):由NVIDIA開發(fā)的并行計算平臺和編程模型,專為NVIDIA GPU設計;OpenCL(開放計算語言):跨平臺的并行計算API,可以在不同類型的處理器(如GPU、CPU和其他加速器)上運行。

音視頻編解碼API用于處理音頻和視頻數(shù)據(jù)的編碼和解碼。它們利用GPU的并行處理能力來加速音視頻數(shù)據(jù)的壓縮和解壓縮。主要的音視頻編解碼API有:NVENC/NVDEC:NVIDIA GPU上的硬件加速視頻編碼和解碼API,支持常見的視頻編碼標準,如H.264、HEVC和VP9;AMD VCE/UVD:AMD GPU上的硬件加速視頻編碼和解碼API,支持常見的視頻編碼標準;Intel Quick Sync Video:Intel處理器集成GPU上的硬件加速視頻編解碼API;VideoToolbox:蘋果平臺上的硬件加速視頻編解碼框架,支持iOS和macOS設備。

2.3 GPU工作流程

在沒有虛擬化的情況下,渲染涉及到的關鍵組件見下圖。

一個典型的GPU設備的工作流程如下:

應用調用GPU支持的某個API,如OpenGL或DirectX;

OpenGL或DirectX庫,提交渲染負載到操作系統(tǒng)內核GPU驅動;

GPU驅動把它提交給GPU硬件;

GPU硬件開始工作。完成后,DMA到內存,發(fā)出中斷給CPU;

CPU找到中斷處理程序(GPU驅動此前向操作系統(tǒng)注冊過的)調用它;

中斷處理程序找到是哪個渲染負載被執(zhí)行完畢了,最終GPU驅動喚醒相關的應用。

Part 03●??GPU虛擬化技術方案?

3.1?PCIe直通

PCIe直通是一種虛擬化技術,允許虛擬機(Virtual Machine,VM)直接訪問物理主機上的PCIe設備,而無需通過虛擬化軟件進行模擬。通過PCIe直通就可以將GPU設備直接分配給虛擬機,見下圖:

各大公用云廠商廣泛采用直通模式,因為它的性能損耗最小,硬件驅動無需修改。直通模式?jīng)]有對可支持的GPU數(shù)量做限制,也沒有對GPU功能性做閹割,因此大多數(shù)功能可以在直通模式下無修改支持。

? 直通模式存在以下優(yōu)點:

①性能損耗?。?/p>

②功能兼容性好;

③技術簡單,運維成本低,對GPU廠商沒有依賴。

? 直通模式存在以下缺點:

1.不支持熱遷移;

2.只能支持1:1,不支持GPU資源分隔。

3.2 PCIe SR-IOV

PCIe SR-IOV(Single Root Input/Output Virtualization)是一種更高級的虛擬化技術,允許一個PCIe設備在多個虛擬機之間共享,同時保持較高的性能。它是通過在物理設備(Physical Functions,PF)上創(chuàng)建多個虛擬功能(Virtual Functions,VF)來實現(xiàn)的,每個虛擬功能可以被分配給一個虛擬機,讓虛擬機直接訪問和控制這些虛擬功能,從而實現(xiàn)高效的I/O虛擬化。基于PCIe SR-IOV的GPU虛擬化方案,本質是把一個物理GPU顯卡設備(PF)拆分成多份虛擬(VF)的顯卡設備,而且VF 依然是符合 PCIe 規(guī)范的設備。核心架構如下圖:

在SR-IOV方案中,可以將一個PF虛擬化分割為多個VF。

基于此,SR-IOV有三種應用場景:

(1)用戶基于HostOS通過PF驅動直接使用PF;

(2)用戶基于HostOS通過VF驅動直接使用VF;

(3)用戶在VM中通過VF驅動使用VF;

? SR-IOV方案的優(yōu)點:

①每個VF都有獨立的配置空間、MMIO、地址空間,因此數(shù)據(jù)更加安全;

②真正實現(xiàn)了1:N,一個PCIe設備提供給多個VM使用;

? SR-IOV方案的缺點:

1.靈活性較差,無法進行更細粒度的分割與調度;

2.不支持熱遷移。

業(yè)界支持SR-IOV的顯卡:

1、AMD Radeon PRO V620:一塊顯卡PV支持分割12個VF。

2、摩爾線程MTT S3000:一塊顯卡PV支持分隔32個VF。

3.3 API轉發(fā)

在苦等PCIe SR-IOV期間,業(yè)界出現(xiàn)了基于API轉發(fā)的GPU虛擬化方案。API轉發(fā)分為被調方和調用方,兩方對外提供同樣的接口(API),被調方API實現(xiàn)是真實的渲染、計算處理邏輯,而調用方API實現(xiàn)僅僅是轉發(fā),轉發(fā)給被調方。其核心架構示意如下圖:

在GPU API層的轉發(fā),業(yè)界有針對OpenGL的AWS Elastic GPU,OrionX,有針對CUDA的騰訊vCUDA,瓦倫西亞理工大學rCUDA;在GPU驅動層的轉發(fā),有針對CUDA的阿里云cGPU和騰訊云pGPU。

? API轉發(fā)方案的優(yōu)點:

①靈活性最高。通過API轉發(fā)的方式解耦應用與GPU設備之后,可以通過軟件任意配置1塊GPU設備服務N個VM。也能做到靈活的GPU資源擴縮容、遷移等等;

②不依賴GPU硬件廠商。

③不限虛擬化環(huán)境。

? API轉發(fā)方案的缺點:

1.復雜度極高。同一功能有多套 API(渲染的 DirectX 和 OpenGL),同一套 API 還有不同版本(如 DirectX 9 和 DirectX 11),兼容性非常復雜。

2.功能不完整。如不支持媒體編解碼。

3.4 受控直通

受控直通方案是由Nvidia提出,并聯(lián)合Intel一起將相關的mdev提交到了Linux內核4.0中。受控直通把會影響性能的訪問直接透傳給GPU(如顯存),把性能無關功能部分(如CSR和部分MMIO寄存器)做攔截,并在mdev模塊中做模擬,使得系統(tǒng)層面能看到多個“看似”完整的多個GPU PCIe設備,即vGPU,它也可以支持原生GPU驅動。

? 該方案的優(yōu)點:

①具備1:N的靈活性;

②高性能;

③功能完備,3D渲染、通用計算、媒體編解碼都支持。

? 該方案的缺點:宿主機的GPU驅動相當于在模擬GPU,而GPU的硬件不開源,導致只有GPU廠商才能提供這一部分。

業(yè)界的受控直通實現(xiàn),有Nvidia的vGPU、Intel的GVT-g、摩爾線程的MT Mesh 2.0(MTT S3000顯卡)。

中國移動

中國移動

中國移動有限公司(「本公司」,包括子公司合稱為「本集團」)于1997年9月3日在香港成立,本集團在中國內地所有三十一個省、自治區(qū)、直轄市以及香港特別行政區(qū)提供通信和信息服務,業(yè)務主要涵蓋個人、家庭、政企和新興市場的語音、數(shù)據(jù)、寬帶、專線、IDC、云計算、物聯(lián)網(wǎng)等,是中國內地最大的通信和信息服務供應商,亦是全球網(wǎng)絡和客戶規(guī)模最大、盈利能力領先、市值排名位居前列的世界級通信和信息運營商。

中國移動有限公司(「本公司」,包括子公司合稱為「本集團」)于1997年9月3日在香港成立,本集團在中國內地所有三十一個省、自治區(qū)、直轄市以及香港特別行政區(qū)提供通信和信息服務,業(yè)務主要涵蓋個人、家庭、政企和新興市場的語音、數(shù)據(jù)、寬帶、專線、IDC、云計算、物聯(lián)網(wǎng)等,是中國內地最大的通信和信息服務供應商,亦是全球網(wǎng)絡和客戶規(guī)模最大、盈利能力領先、市值排名位居前列的世界級通信和信息運營商。收起

查看更多

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

移動Labs是中國移動的社交化新媒體平臺,是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務發(fā)展和產(chǎn)業(yè)推進門戶。