香蕉综合网/日本老头一级456/色综合久久88中文字幕/国产在线|日韩 - 99久久精品毛片免费播放

400-076-9985
GPU虛擬化@Intel專家|KVM熱門技術知識分享
作者:admin 發布時間:2020-10-20 訪問次數:4304
簡介
大家好。我是來自intel的馮少合,在這里給大家分享一些GPU虛擬化相關的話題. 在intel做GPU虛擬化相關的同事,很多都是專家。群里有虛擬化的專家呂志遠,和云計算專家程盈心,跟我一起做相關的介紹,和Q&A。

首先非常感謝邀請,能夠和大家一起分享、討論一些熱門技術,也非常感謝今晚主持人楊軒,一直忙前忙后的籌備本期分享,最后感謝各位聽眾對我分享的技術感興趣,希望和大家一起探討、學習、共同進步!

GPU虛擬化的狀況
虛擬化技術發展到現在,已經比較成熟了。CPU, 內存,存儲,IO設備等都已經可以虛擬化,可以實現多個虛擬機實例共享同一硬件資源。

而GPU(圖形處理器單元)作為計算機的一個很重要的組成部分,其浮點運算和并行運算速度可以比CPU都強。但是在虛擬的技術中, QEMU對GPU虛擬的支持,很長時間都是純粹的軟件模擬,并沒有充分利用硬件GPU的資源,性能大大折扣。

GPU密集工作性負載,對高性能GPU虛擬化的需求越來越強烈。如:

3D/2D 圖形加速

           游戲
           VDI

Media Transcoding

           視頻會議, CDN

高性能計算(GPGPU)OpenCL/CUDA
       Geometric computing, Scientific computing, Machinelearning
       Bioinformatics, Finance, Medical industry,Meteorology
       Personalized medicine, drugdiscovery,Big Dataanalytics
佳聯云終端廠家
順應潮流,這幾年, NVIDIA、AMD和intel相繼推出自己的基于硬件的虛擬化解決方案。
AMD: 其GPU虛擬化解決方案是完全基于業界標準的SR-IOV(單根輸入輸出虛擬化)。這是由PCI SIG組織開發的一種規范,為設備的硬件虛擬化應用提供了標準化方法。其能夠允許多達15個虛擬化桌面共享同一個圖形處理器,其最終用戶就能夠同等地訪問GPU,無論他們是何種工作負載,而且不會有任何性能上的損失。
SR-IOV標準允許一個GPU給多個虛擬機共享使用,因此為每一個用戶都提供了虛擬化的性能進行設計、創造并且執行他們的工作負載,而沒有一個用戶會占據整個GPU。由于硬件的復雜性,目前支持的GPU廠商只有AMD。

NVIDIA:沒有像AMD那樣使用的基于硬件的GPU虛擬化技術。其虛擬化方案是稱為Grid桌面虛擬化技術,該技術是基于它最新的Tesla GPUs的。NVIDIA的虛擬化方案比較有意思的一個特色是可以虛擬出幾種不同model的虛擬顯卡。 FloridaAtlantic University基于NVIDIA GPU 虛擬化方案的VDI已經有幾年歷史了,他們稱,可以使用8-12個虛擬化桌面同時共享一個GPU 板卡。

IntelGPU虛擬化解決方案
做為intel的員工,今天的重點還是要介紹intel自己的GPU解決方案。Intel有三種GPU虛擬化的方法。
佳聯云計算
API轉發(GVT-S)
將openGL或者DirectX的API轉發給host上的Graphics Driver上。
優點:性能佳、可以共享。
缺點:功能滯后。

直通設備(GVT-d)
利用VT-d將顯卡直通給虛擬機。
優點:性能佳、功能完備。
缺點:不能共享。

完全GPU虛擬化(GVT-g)
優點:性能佳、功能完備、可以共享

Intel的完全虛擬化解決方案包括軟件和硬件方案。可以將GPU直通給多個虛擬機,可以在性能,功能,共享方面達到很好的平衡。

由于在共享和性能方面的平衡,intel的GVT-g 是很值得推薦的。

Intel KVMGT技術

KVMGT 是Intel? 完全GPU虛擬化(GraphicsVirtualization Technology GVT-g) 的KVM實現,是VGT-g的純軟件方案。其mediatedpass-through相當于軟件實現的GPU分時復用,不同于SR-IOV。


KVMGT從intel的broadwell處理器開始支持。

其性能:

3D性能可以達到host的80%以上。

2D性能可以達到host的70%以上。

Media解碼能力可以到host的90%以上。

Media轉碼能力可以到host的80%以上。

KVMGT支持的Features

可以運行native的driver。

DirectX*11.1

OpenGL*4.2

OpenCL*1.2

MediaSDK16.2

DirectX*12

支持的不同操作系統的guest數量:

MultipleVMs up to 7

SupportUbuntu* Guest

SupportWindows* 7 x32/x64

SupportWindows* 8 x32/x64

GuestWindows* 10 x64

目前支持的遠程顯示協議:

虛擬化技術in openstack

目前,Openstack 對于AMD的GPU虛擬化是應該支持的。因為AMD每個SRIOV的GPU可以作為PCI設備pass-through到guest。

Citrix 提出了2個版本的方案支持Nvidia和 XENGT(VGT-G的XEN實現)。

第一個版本是基于on-demand的方案,社區感覺有些復雜。之后他們提出了一個新的方案,pre-define的方案。pre-define的方案,預先定義虛擬的GPU(VGPU),定義好之后,數量不能修改了,并且通過openstack的代碼,做hack,將每個pre-define的VGPU作為SRIOV設備,并且每個設備分配一個虛擬的PCI  BDF號,該BDF號只有Openstack可見。社區比較傾向這個方案,但是還沒有得到approve, upstream還需要時日。

對于KVMGT,可以在Citrix實現基礎上,比較容易的實現。

對于企業來說,如果業務需求,需要GPU的虛擬化,自己完全可以很快的基于Openstack實現自己私有的GPU虛擬化方案,沒有必要依賴社區。

對于不想做開發的企業,我們會做一個KVMGT的demo,可以參考我們。

此外我們在巴塞羅那的峰會,提交的一個KVMGT的topic,《enabling GPU virtualization in Openstack》,感興趣的同行可以支持一下。

謝謝。
 

QA

1、2vm的時候,每個vm能跑到native的多少性能?比如3dmark11

答:2個VM我們一般是統計性能之和。每個VM 3dmark11的數據大概是native的vm的分數一半多一點

2、enabling GPU virtualization in Openstack這東西在那里能看到?

答:現在可以看到摘要,也可以投票,https://www.openstack.org/summit/barcelona-2016/vote-for-speakers/

3、intel的顯卡是集成在主板芯片上的吧?

答:Intel目前的顯卡是和CPU集成的,不是在主板上。

4、多謝專家的介紹,請問windows 客戶操作系統需要安裝什么樣的驅動,在哪里可以獲取; 對spice的支持怎么樣,虛擬的GPU和spice是怎么整合的,謝謝

答:windows的驅動直接從Intel官網下載,跟裸機上跑的驅動是一樣的。KVMGT發布時候會給定一個驅動版本號,那個是QA經過測試的版本

5、你好,從Intel的角度看,現在kvmgt是處于什么狀態,demo,beta,還是可商用?另外對于spice協議支持的代碼什么地方可以獲?。恐x謝。

答:SPICE的支持目前處在POC階段。可以用但是性能并不好,原因是對VM的每次屏幕刷新需要一次拷貝。這一塊有優化的解決辦法,我們正在做.

6、主板集成的顯卡,能用KVMGT么?最多能帶多少VM?

答:KVMGT只支持Intel的GPU,從Haswell開始,更老的用不了,以后upstream的代碼從Broadwell開始支持
7、GVT-d現在已經upstream了嗎?
答:redhat最近有一個博客詳細描述GVT-d的支持,在VFIO里,可以看下。http://vfio.blogspot.com/2016/07/intel-graphics-assignment.html
8、直播云這個詞現在經常聽到。是否用到這個技術,

答:“直播云”或“視頻云”,也許會是潛在的應用,目前應該是以bare metal機器為主我猜。

9、gpu對網絡的優化有沒有改善 ?

答:這個可能跟GPU的虛擬化并沒有特定的關系,gpu不負責網絡優化。如果想在固定帶寬內做數據壓縮,intel有QAT技術,支持硬件的壓縮。
10、GPU可以實現在kvm下面動態調整顯存嗎?或者說指定對應虛擬機的顯存
答:我們目前是只支持靜態顯存設置,是在啟動VM之前。動態顯存是個很好的問題,目前沒有支持,看需求。
11、對CPU有限制嗎?比如skylake的Pentium的GPU可以用GVT-d嗎?
答:唯一的要求是有GPU。GVT-d就是指的VT-D,支持VT-D的機器都可以

12、這類顯卡的視頻處理是否只是并發4路,如果是的話,與1:7 VMs不匹配啊

答:并發路數應該與VM個數沒有關系的。可以起7個VM,每個里面處理多路并發

13、我想問的是:(GVT-g)的方式是不是這樣的,VM里面看到的是整個物理的GPU,訪問方式是利用pass-through直接對GPU進行訪問,但是要多個VM同時訪問的話,這個調度是在hypervisor來調度、還是VM的驅動來調度?還是GPU的硬件來調度?

答:KVMGT是完全由軟件調度的。顯存的訪問是pass-through的。KVMGT內部對顯存做了partition。這是個好問題

14、請問我的物理機上如果有多塊顯卡,我如何分配指定給特定的虛擬機呢?

答:向OpenStack請求啟動虛擬機是通過選擇flavor來確定CPU,RAM,DISK的,我們的計劃也是在Flavor中的extra_spec里面實現GPU類型的選擇。所以GPU的分配是在虛擬機啟動的時候由nova選擇的。

15、請問我的物理機上如果有多塊顯卡,我如何分配指定給特定的虛擬機呢?

答:KVMGT只支持Intel的集成顯卡,不會遇到多塊顯卡的問題

問:這樣??!那這個技術對于機器學習有幫助嗎?

答:對于機器學習目前IntelGen graphics的運算能力還有差距,并不是Intel主推的機器學習平臺

16、不同的VM之間做context switch的時候,GPU的pipeline是不是要完全flush?這個context是i915的驅動來管理的嗎?

答:我們目前switch的時間點是GPU idle,就是說當前VM所發的任務跑完了。context的管里是一個實現問題。我們目前的實現里面:guest的context是做了shadow,影子context是由i915管理

17、VM內的多路并發沒問題,但性能不足下的多路,浪費調度資源,設計合理性方面是否需要慎重考慮

答:是的,確實是。虛擬機之間的調度是存在性能損耗的

18、KVMGT什么時候可以upstream?

答:KVMGT目前正在進行upstream。我們主要的代碼是改在kernel i915驅動里面。其中有一部分是驅動本身的擴展,更主要的一部分是虛擬gpu模型。目前第一部分已經upstream了,第二部分會作為英特爾GPU驅動的一個子模塊,目標是今年upstrem到linux kernel,

19、openstack和Citrix虛擬化那個好,用戶交付來說

答:OpenStack可以提供更全面的公有云,私有云和混合云的解決方案,提供計費,租戶管理,網絡,存儲個類服務,和Citrix的關注點有所不同。

openstack 是云計算,原則上可以支持各種GPU虛擬化技術。 對于用戶交付來說,Citrix應該是商業軟件,他們應該交付好些吧。

20、gt技術3d畫面是不是只是放在顯存里沒有export出來?有沒有可能直接吧顯存里渲染好的畫面送到硬件視頻編碼給host上的協議服務端?能支持7個vgpu是并行的嗎還是只是用某種方式分享一個物理gpu的時間片?聽說intel的芯片帶了視頻編碼硬件 這個和gpu部分是一起的還是一個獨立的部分 也就是說用硬件視頻編碼的同時3d渲染的性能會不會下降?

 答:也是很好的問題。3D渲染出來的結果是可以直接做硬件編碼的。這也是我們SPICE優化想做的事情 ,Intel有硬件編解碼的fix function,與3D渲染有一定的并發性。但是3D和media操作還是有共用的單元,存在相互影響,KVMGT對GPU運算單元是分時共享。不是并發的。
推薦文章
上一篇:什么是服務器虛擬化,虛擬化知識分享!
下一篇:助力大數據發展 2015可信云服務大會召開
技術服務
桌面云部署
軟件下載
經典案例解析
問題解答
云終端解決方案
友情鏈接
教育裝備網
政府采購網
企業級大數據云計算平臺
云計算資訊
聯系我們
咨詢熱線:400-0769-985
聯系電話:13288889856(業務)/13713681586(技術)
客服郵箱:kehu@senyuglo.com
公司地址:中國廣東·東莞市南城區聯發信息產業園八棟六層