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