顯示廣告
隱藏 ✕
※ 本文轉寄自 ptt.cc 更新時間: 2023-04-09 22:41:44
看板 PC_Shopping
作者 MACROSS2K (MACROSS2K)
標題 Re: [閒聊] 欸不是,買個顯卡還要買驅動= =
時間 Sat Apr  8 22:32:27 2023


另外開一篇

在Docker/Container概念開始流行之前,多重環境同時執行的概念

從"模擬",也就是用軟體進行binary translation,這種只靠CPU進行軟體運算的

環境

到"虛擬",在原生硬體上建立多個"楚門的世界",並且都享有原生硬體效能

到"函式庫共用",同指令集架構的軟體,如果函式庫相同,則直接引用

不須要再建立那麼多楚門的世界



2013年開始的GPU虛擬化只是當時要興起的硬體虛擬化浪潮其中一環

而且還吃力不討好,因為要牽動從硬體層,韌體層到軟體層全部的設計


2020年的安培架構資料中心產品A100,多重執行實體Multiple Instance GPU

某種程度上解決了對於硬體依賴性的虛擬化方案

試想一下,如果今天GPU裝在一個還沒支援PCI IOMMU的平台上

那GPU硬體虛擬化便無用武之地,例如ARM

而MIG的作法提供了簡單的驅動程式層隔離,脫離對硬體虛擬化平台的依賴

MIG方案其實設計得很細,在不依賴硬體虛擬化的前提下,instance profile

把CUDA core數量,VRAM,硬體編解碼單元的劃分方式都考慮進去了

除了等分切割,還支援混和規模切割(例如切一個大一點的VRAM instance

然後把剩下的VRAM都用最小單位切割)

而且文中提到,這些instance可以各自執行不同變數類型的workload

FP32,BF16,FP64,TF32...

那vGPU呢?

這其實不太能跟MIG拿來比較,因為vGPU其實是作為虛擬桌面解決方案

的,他的設計是從遠端桌面環境體驗去設計的,而MIG僅能執行"運算"



更新說明虛擬化等級:

Host OS->最常見的使用情境,就是安裝一個例如Windows 10/11,RHEL,SLES
Guest OS->虛擬機當中運行的OS
Hypervisor->虛擬機管理軟體,用來溝通其下層的資源提供來源與虛擬機群
不論資源來源提供是原生硬體還是CPU進行軟體模擬

Level 0虛擬化 -> 虛擬機管理員hypervisor直接控制硬體,沒有預先安裝
Host OS,hypervisor自己就是host OS,例如VMware ESXi,Citrix XenServer

Level 1虛擬化 -> 一開始的Host OS還在,但退化成虛擬機的角色作為
管理介面,改由hypervisor核心來控制硬體,開機一樣會進原本的OS GUI
例如Hyper-V,SuSE Xen kernel,此時該虛擬機被定義為Parent

Level 2虛擬化 -> Host OS當中安裝hypervisor,對硬體沒有控制權,僅作為
一個應用程式來執行,例如VMware Workstation,Oracle Virtual Box
Parallels Desktop

原po的方案我想應該是level 0,雖然proxmox我沒有接觸過
vGPU的方案是在這環境下,hypervisor(此處為proxmox)透過驅動程式
控制GPU,並且利用驅動程式提供的功能建立vGPU

這個vGPU是一種"子項目","子分支",大概是這樣的概念
vGPU可以提供1/1到1/n(n視該卡型號提供的分割而定)GPU硬體的效能
並且占用PCI bus形成硬體通道,讓guest OS可以使用
上面提到的控制權是一個很重要的點

Host OS上了驅動程式,則Host OS核心可以透過驅動程式控制該硬體
其他OS核心無法控制,在虛擬化環境中則是
Hypervisor控制了GPU,因此guest OS無法直接控制GPU,頂多只能透過
軟體來"分"一些GPU效能

如果希望要guest OS群都能享受原生硬體存取,免去軟體轉譯的效能耗損
1. Passthrough
叫hypervisor不要用,不上驅動程式,並且設定為passthrough
成為等待指派的資源,接著guest OS來占用,帶著這張硬體開機

然後guest OS得到這張硬體,比照host OS方式安裝驅動,享受該卡全部

硬體效能,但也因此當要調度硬體時,必須要先關虛擬機,造成downtime

2. SR-IOV
GPU卡建立一些硬體通道,讓這些硬體通道分布在PCI bus上
guest OS可以占用這些硬體通道,雖然只能得到1/n的GPU效能
但在需要調度效能的時候,因為hypervisor控制硬體,所以不會受限
於任何guest OS獨佔,只要GPU還有剩餘可調度效能,隨時可以變換規劃

由於proxmox不是NVIDIA支援項目,所以我猜proxmox是設計成直接讀取
給其他hypervisor用的驅動程式,例如VMware ESXi

但因為可能有license鎖,所以可能要花時間去改動一些細節才能
讓proxmox利用

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.54.139 (臺灣)
※ 作者: MACROSS2K 2023-04-08 22:32:27
※ 文章代碼(AID): #1aCNhzXo (PC_Shopping)
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1680964349.A.872.html
DsLove710: 你幹嘛不上一篇編輯就好 洗文章?1F 04/08 22:34
MACROSS2K: 不好意思,我很少回文,版面操作不是很熟悉,感謝指教2F 04/08 22:37
E6300: 噓一樓   PTT現在文章數沒什麼用3F 04/08 22:44
wertyorz: 那就推回來...至少人家還是有心4F 04/08 22:47
scarbywind: 這麼多字你想洗還洗不出來5F 04/08 22:48
Fezico: 這一兩篇單字我都看得懂,但組再一起沒有一個詞看得懂6F 04/08 22:52
Fezico: 原PO真的專業戶,有空再邊google邊看到底是在說明什麼東西
AbeNana: 好不容易有專業文8F 04/08 22:57
MACROSS2K: 感謝,希望分享一些商用產品的測試經驗對各位有幫助9F 04/08 22:57
Arbin: 以前沒有官方支援vGPU,要搞GPU資源隔離或是切割的做法還10F 04/08 23:00
Arbin: 滿邪門的
wei115: 感謝 漲知識了 我對vGPU其實也沒什麼研究 就單純覺得現代12F 04/08 23:13
wei115: PC應該可以完全虛擬化 想玩玩看
oldmove: 一樓打的出來這些字嗎? 笑死14F 04/08 23:14
ceming: 不然你來講15F 04/08 23:21
DsLove710: 我打不出來 真是抱歉 但我覺得能編輯為啥不編輯16F 04/08 23:22
DsLove710: 文章又不是很舊或是相隔很多篇
MACROSS2K: 我剛試著編輯文章,發現並不是只編輯內文18F 04/08 23:24
MACROSS2K: 而是連留言都一併顯示,有點看不懂這樣是否會動到版面
MACROSS2K: proxmox我沒有接觸過,也蠻好奇它提供到什麼程度
DsLove710: 補推21F 04/08 23:29
justicebb: 專業文求洗好嗎22F 04/08 23:33
mrme945: 這種有料的文越多越好,雖然我看不懂QQ23F 04/08 23:33
rx1304: 沒事,討論就好別在意 沒啥大不了的24F 04/08 23:34
ksng1092: 雖然專業,不過有電蝦點嗎XD25F 04/08 23:35
smallreader: 編輯文章的留言底下換行 不去動到留言的行不會有事的26F 04/08 23:36
smallreader: 編輯期間新增的推文也不用擔心洗掉 但手機App要擔心
Fezico: 有阿,極客灣就搞過虛擬化GPU四開虛擬機器打CS。應該是?28F 04/08 23:39
Fezico: 是極客灣還是某科技,我忘了。但概念大概雷同?
smallreader: 極客灣沒錯30F 04/08 23:42
scarbywind: 四等分顯卡 不過是hyperV31F 04/08 23:44
pcfox: 這種專業文多洗一點才好 不像某大濕整天廢文32F 04/08 23:45
wei115: 之前看GPU虛擬化技術上多難的的文章 結果nv好像已經克服了33F 04/08 23:47
wei115: 20系顯卡被人發現只要改id就能解鎖vGPU,只是不想下放消費
wei115: 級= =
Fezico: 能用跟足夠用我個人是覺得兩回事。能用應該好解決36F 04/08 23:49
Fezico: 但是足夠用就是問題惹,經過層層轉譯堆疊被吃掉的不知多少
mrme945: 問個不專業的問題,一般消費級顯卡有辦法虛擬化嗎?有時38F 04/08 23:53
mrme945: 候不想動到電腦的東西想在VM裡面測試一些東西
這要看希望實作的虛擬化環境是什麼結構了
假設要維持,例如Windows 10/11好了,是一個host OS
則可以試試Virtual Box,它可以用軟體模擬方式在guest OS內執行DX11程式
Hyper-V那種做法其實是passthrough,微軟稱為Discrete Device Assignment
但Easy GPU PV的細節不太清楚,從極客灣他們的實測來看應該是搶佔式分享
而且Hyper-V的DDA我記得僅限Server,他們大概做了很多改動才辦到的
或是用VMware Workstation Pro,也能支援在guest OS中執行DX11程式
這種做法比較像是"虛擬機來借用一點GPU效能,但沒有GPU的控制權"
Fezico: 樓上可以參考一下我前面說的那個極客灣搞事影片,原理應該40F 04/08 23:57
Fezico: 相似。
※ 編輯: MACROSS2K (220.134.54.139 臺灣), 04/09/2023 00:09:23
wei115: 顯卡虛擬化理論上需要有硬體支援 20系消費級顯卡很多只要42F 04/09 00:01
wei115: 改id就可以解鎖虛擬化能力(vgpu_unlock) 不過還有hyperV、
wei115: GPU分區之類不用硬體支援的方法 還在研究中
※ 編輯: MACROSS2K (220.134.54.139 臺灣), 04/09/2023 00:35:34
not5566: 還寧可這種文多洗幾篇 不然還要去看原文的耶45F 04/09 00:14
Simonfenix: 推46F 04/09 00:17
not5566: 虛擬化給推47F 04/09 00:18
jaspergod: 受益良多,之前在研究計算卡都很少討論...或是能力不足48F 04/09 00:20
jaspergod: 找不到,只能看NV官方說明超怕找錯方向XD 所以以純AI計
jaspergod: 算來講MIG系列應該比較適合
masutaka: 專業文推51F 04/09 00:21
zseineo: 推52F 04/09 00:32
LordSo: 就內容來說開一篇不過份啦  只是這標題會很難找53F 04/09 00:36
smallreader: 標題難找不是問題 不然有誰還記得以解決的標題是什麼54F 04/09 00:41
smallreader: 還是一樣每次都有人把#找出來XDDD
dos01: 恩恩 跟我想得差不多56F 04/09 00:47
b325019: 你只要孤狗ptt 以解決就能看到那篇www57F 04/09 00:47
tomsawyer: 找以解決有啥難的 找推=100跟請益不就得了58F 04/09 01:11
chugliang: 這邊顯卡虛擬化講得不賴阿~我做系統整合的都不熟~慚愧59F 04/09 02:27
MK47: 推有料文60F 04/09 02:34
james111222: 一樓是在噓啥,這麼有料的文章我還巴不得原PO多洗幾61F 04/09 04:13
james111222: 篇
james111222: 平常都只用到level2,連原理都不知道,專業文收藏
gogowow: 這內容推文是要打多久 一樓是在兇幾點64F 04/09 05:44
JKGOOD: 科普分享有什麼好噓?65F 04/09 06:26
waldo34: 推66F 04/09 06:53
widec: 原來不是只有我看不懂 XDDDD 太專業了67F 04/09 07:15
DivineSX: 推專業68F 04/09 07:20
darkangel119: 一樓很行的話 麻煩多洗幾篇文章啊69F 04/09 07:41
JustBecauseU: 一樓有事嗎70F 04/09 08:04
fanyuzeng: 好啦人家都道歉了別這麼凶啦XD71F 04/09 08:06
Bijala:72F 04/09 08:24
Lailungsheng: 我感覺到第一次翻開計算機概論時看到的光73F 04/09 08:43
kaltu: windows subsystem又是另一個坑,tensorflow windows版不能74F 04/09 08:48
kaltu: 用GPU但WSL的Linux on Windows版可以
jacklin2002: 用心分享推76F 04/09 08:58
smallsir2000: 嗯嗯,跟我想的差不多77F 04/09 09:22
winiel559: tensorflow win可以用gpu啊 我四年多前就用過1060了78F 04/09 10:00
winiel559: 推優文
proletariat: PUSH80F 04/09 10:15
paul40807: proxmox好像沒辦法切割一般遊戲顯卡如3080成vGPU 說是81F 04/09 10:26
paul40807: 不支援虛擬化 要運算卡才可以
paul40807: 看了原PO那篇 他遇到跟我一樣的問題沒錯 哈哈哈幹 我也
paul40807: 好想顯卡虛擬化
microviewer: push! 謝謝分享85F 04/09 10:44
kaltu: tensorflow只有舊版可以,四年前當然可以,新版就不行了86F 04/09 10:48
Oqfyian: 1樓這麼氣喔87F 04/09 10:52
jaspergod: tf現在新版也都還可以啊,windows環境下還是可以調用88F 04/09 11:05
jaspergod: GPU阿...我覺得新版還比舊版(之前是1.14)方便一點點,
jaspergod: 雖然環境搞起來還是挺繁瑣就是了==
orzno: 推專業91F 04/09 11:18
Litfal: 現在虛擬化的效能很不錯,損失也不大,但問題是到client92F 04/09 11:18
Litfal: 中間還是有一堆延遲和瓶頸
hankchen1728: 推專業文!94F 04/09 11:21
atpx: 推, 優質文95F 04/09 11:30
kaltu: 我的舊版指是2.10以前,從2.11開始windows停止支援GPU96F 04/09 11:43
qazwsxedcedc: 推這篇97F 04/09 12:26
jaspergod: 真假 抱歉 我以為2.8算新的了XD98F 04/09 12:42
commandoEX: tensorflow官網文件提到用pip安裝Windows支援GPU99F 04/09 12:45
lovebbqjim: 幫推,專業文可以多來幾篇100F 04/09 13:09
waiter337: 你把一堆傘亂資訊總結專業文 給推101F 04/09 13:18
tomsawyer: tf已經沒有windows原生gpu了 要wsl2才能支援102F 04/09 14:03
fly02094484: 猛103F 04/09 14:25
EYESOFDARKKE: 長知識推。 工作上有用到proxmox,但是只用到xeon104F 04/09 14:45
EYESOFDARKKE: 內建GPU給VM用而已XD
god70541: 1樓快點寫一篇專業文來洗106F 04/09 14:52
leehom309536: 嗯,跟我想得一樣,我以為大家會這樣說107F 04/09 15:14
Ryzen1700: 這種文再多我也不介意呀108F 04/09 15:20
jjjj6: 推專業文109F 04/09 15:32
Amulet1: 這是免費可以看的嗎110F 04/09 16:45
gugimi: 推111F 04/09 17:18
illya65536: 下次還是編輯就好...112F 04/09 17:47
fmp1234: 只懂到passthrough,SR-IOV還是很模糊。113F 04/09 19:18
as222as222a: 推專業文114F 04/09 19:40
israelii: 這是專業文吧,看了半天還是看不懂,感覺很專業!115F 04/09 20:02
TacoEater: Proxmox是在qemu/kvm上套一層自己的介面,算level 1116F 04/09 20:48
TacoEater: MXGPU其實有打出市場,Instinct MI系列一直混的不差,
TacoEater: 只是消費級看得到吃不到,開源支援幾乎是零
TacoEater: 最近還有一種玩法是GPU-over-IP,直接跳過硬體層
amows: 雖然不太了解 不過推專業120F 04/09 22:03
Severine: 一樓有貓餅 幫推專業文121F 04/09 22:11
amin0811: 這篇超專業好嗎...有本事自己打一篇別只出張嘴...122F 04/09 22:15

--
※ 看板: PC_Shopping 文章推薦值: 0 目前人氣: 0 累積人氣: 173 
作者 MACROSS2K 的最新發文:
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇