PTT推薦

Re: [閒聊] 欸不是,買個顯卡還要買驅動= =

看板PC_Shopping標題Re: [閒聊] 欸不是,買個顯卡還要買驅動= =作者
MACROSS2K
(MACROSS2K)
時間推噓85 推:88 噓:3 →:44

另外開一篇

在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 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.54.139 (臺灣)
PTT 網址

DsLove71004/08 22:34你幹嘛不上一篇編輯就好 洗文章?

MACROSS2K04/08 22:37不好意思,我很少回文,版面操作不是很熟悉,感謝指教

E630004/08 22:44噓一樓 PTT現在文章數沒什麼用

wertyorz04/08 22:47那就推回來...至少人家還是有心

scarbywind04/08 22:48這麼多字你想洗還洗不出來

Fezico04/08 22:52這一兩篇單字我都看得懂,但組再一起沒有一個詞看得懂

Fezico04/08 22:54原PO真的專業戶,有空再邊google邊看到底是在說明什麼東西

AbeNana04/08 22:57好不容易有專業文

MACROSS2K04/08 22:57感謝,希望分享一些商用產品的測試經驗對各位有幫助

Arbin04/08 23:00以前沒有官方支援vGPU,要搞GPU資源隔離或是切割的做法還

Arbin04/08 23:00滿邪門的

wei11504/08 23:13感謝 漲知識了 我對vGPU其實也沒什麼研究 就單純覺得現代

wei11504/08 23:13PC應該可以完全虛擬化 想玩玩看

oldmove04/08 23:14一樓打的出來這些字嗎? 笑死

ceming04/08 23:21不然你來講

DsLove71004/08 23:22我打不出來 真是抱歉 但我覺得能編輯為啥不編輯

DsLove71004/08 23:23文章又不是很舊或是相隔很多篇

MACROSS2K04/08 23:24我剛試著編輯文章,發現並不是只編輯內文

MACROSS2K04/08 23:24而是連留言都一併顯示,有點看不懂這樣是否會動到版面

MACROSS2K04/08 23:25proxmox我沒有接觸過,也蠻好奇它提供到什麼程度

DsLove71004/08 23:29補推

justicebb04/08 23:33專業文求洗好嗎

mrme94504/08 23:33這種有料的文越多越好,雖然我看不懂QQ

rx130404/08 23:34沒事,討論就好別在意 沒啥大不了的

ksng109204/08 23:35雖然專業,不過有電蝦點嗎XD

smallreader04/08 23:36編輯文章的留言底下換行 不去動到留言的行不會有事的

smallreader04/08 23:38編輯期間新增的推文也不用擔心洗掉 但手機App要擔心

Fezico04/08 23:39有阿,極客灣就搞過虛擬化GPU四開虛擬機器打CS。應該是?

Fezico04/08 23:39是極客灣還是某科技,我忘了。但概念大概雷同?

smallreader04/08 23:42極客灣沒錯

scarbywind04/08 23:44四等分顯卡 不過是hyperV

pcfox04/08 23:45這種專業文多洗一點才好 不像某大濕整天廢文

wei11504/08 23:47之前看GPU虛擬化技術上多難的的文章 結果nv好像已經克服了

wei11504/08 23:4820系顯卡被人發現只要改id就能解鎖vGPU,只是不想下放消費

wei11504/08 23:48級= =

Fezico04/08 23:49能用跟足夠用我個人是覺得兩回事。能用應該好解決

Fezico04/08 23:50但是足夠用就是問題惹,經過層層轉譯堆疊被吃掉的不知多少

mrme94504/08 23:53問個不專業的問題,一般消費級顯卡有辦法虛擬化嗎?有時

mrme94504/08 23:53候不想動到電腦的東西想在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的控制權"

Fezico04/08 23:57樓上可以參考一下我前面說的那個極客灣搞事影片,原理應該

Fezico04/08 23:58相似。

※ 編輯: MACROSS2K (220.134.54.139 臺灣), 04/09/2023 00:09:23

wei11504/09 00:01顯卡虛擬化理論上需要有硬體支援 20系消費級顯卡很多只要

wei11504/09 00:03改id就可以解鎖虛擬化能力(vgpu_unlock) 不過還有hyperV、

wei11504/09 00:03GPU分區之類不用硬體支援的方法 還在研究中

※ 編輯: MACROSS2K (220.134.54.139 臺灣), 04/09/2023 00:35:34

not556604/09 00:14還寧可這種文多洗幾篇 不然還要去看原文的耶

Simonfenix04/09 00:17

not556604/09 00:18虛擬化給推

jaspergod04/09 00:20受益良多,之前在研究計算卡都很少討論...或是能力不足

jaspergod04/09 00:20找不到,只能看NV官方說明超怕找錯方向XD 所以以純AI計

jaspergod04/09 00:20算來講MIG系列應該比較適合

masutaka04/09 00:21專業文推

zseineo04/09 00:32

LordSo04/09 00:36就內容來說開一篇不過份啦 只是這標題會很難找

smallreader04/09 00:41標題難找不是問題 不然有誰還記得以解決的標題是什麼

smallreader04/09 00:42還是一樣每次都有人把#找出來XDDD

dos0104/09 00:47恩恩 跟我想得差不多

b32501904/09 00:47你只要孤狗ptt 以解決就能看到那篇www

tomsawyer04/09 01:11找以解決有啥難的 找推=100跟請益不就得了

chugliang04/09 02:27這邊顯卡虛擬化講得不賴阿~我做系統整合的都不熟~慚愧

MK4704/09 02:34推有料文

james11122204/09 04:13一樓是在噓啥,這麼有料的文章我還巴不得原PO多洗幾

james11122204/09 04:13

james11122204/09 04:15平常都只用到level2,連原理都不知道,專業文收藏

gogowow04/09 05:44這內容推文是要打多久 一樓是在兇幾點

JKGOOD04/09 06:26科普分享有什麼好噓?

waldo3404/09 06:53

widec04/09 07:15原來不是只有我看不懂 XDDDD 太專業了

DivineSX04/09 07:20推專業

darkangel11904/09 07:41一樓很行的話 麻煩多洗幾篇文章啊

JustBecauseU04/09 08:04一樓有事嗎

fanyuzeng04/09 08:06好啦人家都道歉了別這麼凶啦XD

Bijala04/09 08:24

Lailungsheng04/09 08:43我感覺到第一次翻開計算機概論時看到的光

kaltu04/09 08:48windows subsystem又是另一個坑,tensorflow windows版不能

kaltu04/09 08:48用GPU但WSL的Linux on Windows版可以

jacklin200204/09 08:58用心分享推

smallsir200004/09 09:22嗯嗯,跟我想的差不多

winiel55904/09 10:00tensorflow win可以用gpu啊 我四年多前就用過1060了

winiel55904/09 10:00推優文

proletariat04/09 10:15PUSH

paul4080704/09 10:26proxmox好像沒辦法切割一般遊戲顯卡如3080成vGPU 說是

paul4080704/09 10:26不支援虛擬化 要運算卡才可以

paul4080704/09 10:32看了原PO那篇 他遇到跟我一樣的問題沒錯 哈哈哈幹 我也

paul4080704/09 10:32好想顯卡虛擬化

microviewer04/09 10:44push! 謝謝分享

kaltu04/09 10:48tensorflow只有舊版可以,四年前當然可以,新版就不行了

Oqfyian04/09 10:521樓這麼氣喔

jaspergod04/09 11:05tf現在新版也都還可以啊,windows環境下還是可以調用

jaspergod04/09 11:05GPU阿...我覺得新版還比舊版(之前是1.14)方便一點點,

jaspergod04/09 11:05雖然環境搞起來還是挺繁瑣就是了==

orzno04/09 11:18推專業

Litfal04/09 11:18現在虛擬化的效能很不錯,損失也不大,但問題是到client

Litfal04/09 11:18中間還是有一堆延遲和瓶頸

hankchen172804/09 11:21推專業文!

atpx04/09 11:30推, 優質文

kaltu04/09 11:43我的舊版指是2.10以前,從2.11開始windows停止支援GPU

qazwsxedcedc04/09 12:26推這篇

jaspergod04/09 12:42真假 抱歉 我以為2.8算新的了XD

commandoEX04/09 12:45tensorflow官網文件提到用pip安裝Windows支援GPU

lovebbqjim04/09 13:09幫推,專業文可以多來幾篇

waiter33704/09 13:18你把一堆傘亂資訊總結專業文 給推

tomsawyer04/09 14:03tf已經沒有windows原生gpu了 要wsl2才能支援

fly0209448404/09 14:25

EYESOFDARKKE04/09 14:45長知識推。 工作上有用到proxmox,但是只用到xeon

EYESOFDARKKE04/09 14:45內建GPU給VM用而已XD

god7054104/09 14:521樓快點寫一篇專業文來洗

leehom30953604/09 15:14嗯,跟我想得一樣,我以為大家會這樣說

Ryzen170004/09 15:20這種文再多我也不介意呀

jjjj604/09 15:32推專業文

Amulet104/09 16:45這是免費可以看的嗎

gugimi04/09 17:18

illya6553604/09 17:47下次還是編輯就好...

fmp123404/09 19:18只懂到passthrough,SR-IOV還是很模糊。

as222as222a04/09 19:40推專業文

israelii04/09 20:02這是專業文吧,看了半天還是看不懂,感覺很專業!

TacoEater04/09 20:48Proxmox是在qemu/kvm上套一層自己的介面,算level 1

TacoEater04/09 20:59MXGPU其實有打出市場,Instinct MI系列一直混的不差,

TacoEater04/09 20:59只是消費級看得到吃不到,開源支援幾乎是零

TacoEater04/09 21:08最近還有一種玩法是GPU-over-IP,直接跳過硬體層

amows04/09 22:03雖然不太了解 不過推專業

Severine04/09 22:11一樓有貓餅 幫推專業文

amin081104/09 22:15這篇超專業好嗎...有本事自己打一篇別只出張嘴...

qoodboy2604/09 22:48一樓也洗一篇這麼長的

v8686106204/09 23:12推推

dsin04/09 23:18推專業

winiel55904/09 23:27原來tf新版不支援了 感謝資訊

dmeiki04/10 09:43推,感謝分享

froce04/10 11:47這種文還不夠格新開一篇,待會來看看一樓都寫些什麼神級論

froce04/10 11:47文發在PTT。科科

froce04/10 11:51TF可以在windows下用GPU啦,就算到WSL2下也是要把windows

froce04/10 11:51下該裝的CUDA裝好

froce04/10 11:52之前裝2.10還有,2.11我就不清楚了

ry329804/10 18:39

d630200x04/11 12:51我是碼農我看不懂,我好廢

saedn04/11 17:57可以敲碗就下集嗎??