※ 本文轉寄自 ptt.cc 更新時間: 2023-04-09 22:41:44
看板 PC_Shopping
作者 標題 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僅能執行"運算"
的,他的設計是從遠端桌面環境體驗去設計的,而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來占用,帶著這張硬體開機
然後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
由於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
噓 : 你幹嘛不上一篇編輯就好 洗文章?1F 04/08 22:34
→ : 不好意思,我很少回文,版面操作不是很熟悉,感謝指教2F 04/08 22:37
噓 : 噓一樓 PTT現在文章數沒什麼用3F 04/08 22:44
推 : 那就推回來...至少人家還是有心4F 04/08 22:47
推 : 這麼多字你想洗還洗不出來5F 04/08 22:48
推 : 這一兩篇單字我都看得懂,但組再一起沒有一個詞看得懂6F 04/08 22:52
→ : 原PO真的專業戶,有空再邊google邊看到底是在說明什麼東西
→ : 原PO真的專業戶,有空再邊google邊看到底是在說明什麼東西
推 : 好不容易有專業文8F 04/08 22:57
→ : 感謝,希望分享一些商用產品的測試經驗對各位有幫助9F 04/08 22:57
推 : 以前沒有官方支援vGPU,要搞GPU資源隔離或是切割的做法還10F 04/08 23:00
→ : 滿邪門的
→ : 滿邪門的
推 : 感謝 漲知識了 我對vGPU其實也沒什麼研究 就單純覺得現代12F 04/08 23:13
→ : PC應該可以完全虛擬化 想玩玩看
→ : PC應該可以完全虛擬化 想玩玩看
推 : 一樓打的出來這些字嗎? 笑死14F 04/08 23:14
推 : 不然你來講15F 04/08 23:21
→ : 我打不出來 真是抱歉 但我覺得能編輯為啥不編輯16F 04/08 23:22
→ : 文章又不是很舊或是相隔很多篇
→ : 文章又不是很舊或是相隔很多篇
→ : 我剛試著編輯文章,發現並不是只編輯內文18F 04/08 23:24
→ : 而是連留言都一併顯示,有點看不懂這樣是否會動到版面
→ : proxmox我沒有接觸過,也蠻好奇它提供到什麼程度
→ : 而是連留言都一併顯示,有點看不懂這樣是否會動到版面
→ : proxmox我沒有接觸過,也蠻好奇它提供到什麼程度
推 : 補推21F 04/08 23:29
推 : 專業文求洗好嗎22F 04/08 23:33
推 : 這種有料的文越多越好,雖然我看不懂QQ23F 04/08 23:33
推 : 沒事,討論就好別在意 沒啥大不了的24F 04/08 23:34
→ : 雖然專業,不過有電蝦點嗎XD25F 04/08 23:35
推 : 編輯文章的留言底下換行 不去動到留言的行不會有事的26F 04/08 23:36
→ : 編輯期間新增的推文也不用擔心洗掉 但手機App要擔心
→ : 編輯期間新增的推文也不用擔心洗掉 但手機App要擔心
推 : 有阿,極客灣就搞過虛擬化GPU四開虛擬機器打CS。應該是?28F 04/08 23:39
→ : 是極客灣還是某科技,我忘了。但概念大概雷同?
→ : 是極客灣還是某科技,我忘了。但概念大概雷同?
推 : 極客灣沒錯30F 04/08 23:42
→ : 四等分顯卡 不過是hyperV31F 04/08 23:44
推 : 這種專業文多洗一點才好 不像某大濕整天廢文32F 04/08 23:45
推 : 之前看GPU虛擬化技術上多難的的文章 結果nv好像已經克服了33F 04/08 23:47
→ : 20系顯卡被人發現只要改id就能解鎖vGPU,只是不想下放消費
→ : 級= =
→ : 20系顯卡被人發現只要改id就能解鎖vGPU,只是不想下放消費
→ : 級= =
推 : 能用跟足夠用我個人是覺得兩回事。能用應該好解決36F 04/08 23:49
→ : 但是足夠用就是問題惹,經過層層轉譯堆疊被吃掉的不知多少
→ : 但是足夠用就是問題惹,經過層層轉譯堆疊被吃掉的不知多少
推 : 問個不專業的問題,一般消費級顯卡有辦法虛擬化嗎?有時38F 04/08 23:53
→ : 候不想動到電腦的東西想在VM裡面測試一些東西
這要看希望實作的虛擬化環境是什麼結構了→ : 候不想動到電腦的東西想在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的控制權"
→ : 樓上可以參考一下我前面說的那個極客灣搞事影片,原理應該40F 04/08 23:57
→ : 相似。
※ 編輯: MACROSS2K (220.134.54.139 臺灣), 04/09/2023 00:09:23→ : 相似。
推 : 顯卡虛擬化理論上需要有硬體支援 20系消費級顯卡很多只要42F 04/09 00:01
→ : 改id就可以解鎖虛擬化能力(vgpu_unlock) 不過還有hyperV、
→ : GPU分區之類不用硬體支援的方法 還在研究中
※ 編輯: MACROSS2K (220.134.54.139 臺灣), 04/09/2023 00:35:34→ : 改id就可以解鎖虛擬化能力(vgpu_unlock) 不過還有hyperV、
→ : GPU分區之類不用硬體支援的方法 還在研究中
推 : 還寧可這種文多洗幾篇 不然還要去看原文的耶45F 04/09 00:14
推 : 推46F 04/09 00:17
推 : 虛擬化給推47F 04/09 00:18
推 : 受益良多,之前在研究計算卡都很少討論...或是能力不足48F 04/09 00:20
→ : 找不到,只能看NV官方說明超怕找錯方向XD 所以以純AI計
→ : 算來講MIG系列應該比較適合
→ : 找不到,只能看NV官方說明超怕找錯方向XD 所以以純AI計
→ : 算來講MIG系列應該比較適合
推 : 專業文推51F 04/09 00:21
推 : 推52F 04/09 00:32
→ : 就內容來說開一篇不過份啦 只是這標題會很難找53F 04/09 00:36
推 : 標題難找不是問題 不然有誰還記得以解決的標題是什麼54F 04/09 00:41
→ : 還是一樣每次都有人把#找出來XDDD
→ : 還是一樣每次都有人把#找出來XDDD
推 : 恩恩 跟我想得差不多56F 04/09 00:47
推 : 你只要孤狗ptt 以解決就能看到那篇www57F 04/09 00:47
→ : 找以解決有啥難的 找推=100跟請益不就得了58F 04/09 01:11
推 : 這邊顯卡虛擬化講得不賴阿~我做系統整合的都不熟~慚愧59F 04/09 02:27
推 : 推有料文60F 04/09 02:34
推 : 一樓是在噓啥,這麼有料的文章我還巴不得原PO多洗幾61F 04/09 04:13
→ : 篇
→ : 平常都只用到level2,連原理都不知道,專業文收藏
→ : 篇
→ : 平常都只用到level2,連原理都不知道,專業文收藏
推 : 這內容推文是要打多久 一樓是在兇幾點64F 04/09 05:44
推 : 科普分享有什麼好噓?65F 04/09 06:26
推 : 推66F 04/09 06:53
推 : 原來不是只有我看不懂 XDDDD 太專業了67F 04/09 07:15
推 : 推專業68F 04/09 07:20
推 : 一樓很行的話 麻煩多洗幾篇文章啊69F 04/09 07:41
推 : 一樓有事嗎70F 04/09 08:04
推 : 好啦人家都道歉了別這麼凶啦XD71F 04/09 08:06
推 :72F 04/09 08:24
推 : 我感覺到第一次翻開計算機概論時看到的光73F 04/09 08:43
推 : windows subsystem又是另一個坑,tensorflow windows版不能74F 04/09 08:48
→ : 用GPU但WSL的Linux on Windows版可以
→ : 用GPU但WSL的Linux on Windows版可以
推 : 用心分享推76F 04/09 08:58
推 : 嗯嗯,跟我想的差不多77F 04/09 09:22
推 : tensorflow win可以用gpu啊 我四年多前就用過1060了78F 04/09 10:00
→ : 推優文
→ : 推優文
推 : PUSH80F 04/09 10:15
推 : proxmox好像沒辦法切割一般遊戲顯卡如3080成vGPU 說是81F 04/09 10:26
→ : 不支援虛擬化 要運算卡才可以
推 : 看了原PO那篇 他遇到跟我一樣的問題沒錯 哈哈哈幹 我也
→ : 好想顯卡虛擬化
→ : 不支援虛擬化 要運算卡才可以
推 : 看了原PO那篇 他遇到跟我一樣的問題沒錯 哈哈哈幹 我也
→ : 好想顯卡虛擬化
推 : push! 謝謝分享85F 04/09 10:44
推 : tensorflow只有舊版可以,四年前當然可以,新版就不行了86F 04/09 10:48
噓 : 1樓這麼氣喔87F 04/09 10:52
推 : tf現在新版也都還可以啊,windows環境下還是可以調用88F 04/09 11:05
→ : GPU阿...我覺得新版還比舊版(之前是1.14)方便一點點,
→ : 雖然環境搞起來還是挺繁瑣就是了==
→ : GPU阿...我覺得新版還比舊版(之前是1.14)方便一點點,
→ : 雖然環境搞起來還是挺繁瑣就是了==
推 : 推專業91F 04/09 11:18
推 : 現在虛擬化的效能很不錯,損失也不大,但問題是到client92F 04/09 11:18
→ : 中間還是有一堆延遲和瓶頸
→ : 中間還是有一堆延遲和瓶頸
推 : 推專業文!94F 04/09 11:21
推 : 推, 優質文95F 04/09 11:30
推 : 我的舊版指是2.10以前,從2.11開始windows停止支援GPU96F 04/09 11:43
推 : 推這篇97F 04/09 12:26
推 : 真假 抱歉 我以為2.8算新的了XD98F 04/09 12:42
→ : tensorflow官網文件提到用pip安裝Windows支援GPU99F 04/09 12:45
推 : 幫推,專業文可以多來幾篇100F 04/09 13:09
推 : 你把一堆傘亂資訊總結專業文 給推101F 04/09 13:18
→ : tf已經沒有windows原生gpu了 要wsl2才能支援102F 04/09 14:03
推 : 猛103F 04/09 14:25
推 : 長知識推。 工作上有用到proxmox,但是只用到xeon104F 04/09 14:45
→ : 內建GPU給VM用而已XD
→ : 內建GPU給VM用而已XD
推 : 1樓快點寫一篇專業文來洗106F 04/09 14:52
推 : 嗯,跟我想得一樣,我以為大家會這樣說107F 04/09 15:14
推 : 這種文再多我也不介意呀108F 04/09 15:20
推 : 推專業文109F 04/09 15:32
推 : 這是免費可以看的嗎110F 04/09 16:45
推 : 推111F 04/09 17:18
→ : 下次還是編輯就好...112F 04/09 17:47
推 : 只懂到passthrough,SR-IOV還是很模糊。113F 04/09 19:18
推 : 推專業文114F 04/09 19:40
推 : 這是專業文吧,看了半天還是看不懂,感覺很專業!115F 04/09 20:02
推 : Proxmox是在qemu/kvm上套一層自己的介面,算level 1116F 04/09 20:48
推 : MXGPU其實有打出市場,Instinct MI系列一直混的不差,
→ : 只是消費級看得到吃不到,開源支援幾乎是零
推 : 最近還有一種玩法是GPU-over-IP,直接跳過硬體層
推 : MXGPU其實有打出市場,Instinct MI系列一直混的不差,
→ : 只是消費級看得到吃不到,開源支援幾乎是零
推 : 最近還有一種玩法是GPU-over-IP,直接跳過硬體層
推 : 雖然不太了解 不過推專業120F 04/09 22:03
推 : 一樓有貓餅 幫推專業文121F 04/09 22:11
推 : 這篇超專業好嗎...有本事自己打一篇別只出張嘴...122F 04/09 22:15
--
※ 看板: PC_Shopping 文章推薦值: 0 目前人氣: 0 累積人氣: 178
作者 MACROSS2K 的最新發文:
- 另外開一篇 在Docker/Container概念開始流行之前,多重環境同時執行的概念 從"模擬",也就是用軟體進行binary translation,這種只靠CPU進行軟體運算 …122F 78推 3噓
→
guest
回列表(←)
分享