使用多實(shí)例GPU (MIG/Multi-Instance GPU)可以將強(qiáng)大的顯卡分成更小的部分,每個(gè)部分都有自己的工作,這樣單張顯卡可以同時(shí)運(yùn)行不同的任務(wù)。本文將對(duì)其進(jìn)行簡(jiǎn)單介紹并且提供安裝和使用的示例。
什么是MIG
NVIDIA Multi-Instance GPU (MIG) 技術(shù)是 NVIDIA 推出的一種 GPU 虛擬化技術(shù),允許一塊物理 GPU 被分割成多個(gè)獨(dú)立的 GPU 實(shí)例,每個(gè)實(shí)例可以被分配給不同的虛擬機(jī)、容器或用戶。這種技術(shù)有助于更有效地利用 GPU 資源,提高 GPU 的共享性和多租戶支持。
MIG 技術(shù)通常需要硬件和軟件支持,包括支持 MIG 的 NVIDIA GPU 和相應(yīng)的驅(qū)動(dòng)程序。這使得 MIG 技術(shù)成為數(shù)據(jù)中心和云計(jì)算環(huán)境中更好地管理 GPU 資源的有力工具。它有助于提高 GPU 利用率,降低成本,并更好地滿足不同應(yīng)用程序和用戶的需求。
MIG是如何工作的
MIG通過(guò)虛擬地將單個(gè)物理GPU劃分為更小的獨(dú)立實(shí)例,這項(xiàng)技術(shù)涉及GPU虛擬化,GPU的資源,包括CUDA內(nèi)核和內(nèi)存,被分配到不同的實(shí)例。這些實(shí)例彼此隔離,確保在一個(gè)實(shí)例上運(yùn)行的任務(wù)不會(huì)干擾其他實(shí)例。
MIG支持GPU資源的動(dòng)態(tài)分配,允許根據(jù)工作負(fù)載需求動(dòng)態(tài)調(diào)整實(shí)例的大小。這種動(dòng)態(tài)分配有助于有效地利用資源。多個(gè)應(yīng)用程序或用戶可以在同一個(gè)GPU上并發(fā)運(yùn)行,每個(gè)GPU都有自己的專(zhuān)用實(shí)例。整個(gè)過(guò)程通過(guò)軟件進(jìn)行管理,為管理員提供了對(duì)實(shí)例配置和資源分配的控制。這種方法增強(qiáng)了在單個(gè)GPU上處理不同工作負(fù)載的靈活性、可擴(kuò)展性和資源效率。
MIG 技術(shù)關(guān)鍵特點(diǎn)
- 資源劃分 :MIG 允許將一塊物理 GPU 分割成多個(gè) GPU 實(shí)例,每個(gè)實(shí)例具有自己的 GPU 核心、GPU 內(nèi)存、NVLink 帶寬等資源。這樣可以更好地控制和劃分 GPU 資源。
- 多租戶支持 :MIG 技術(shù)可以用于虛擬化 GPU,以便不同用戶或應(yīng)用程序可以共享同一塊物理 GPU 而不會(huì)相互干擾。
- 動(dòng)態(tài)資源調(diào)整 :管理員可以根據(jù)工作負(fù)載的需求動(dòng)態(tài)地重新配置 MIG 實(shí)例的資源,從而實(shí)現(xiàn)更好的資源利用和性能。
- 容錯(cuò)性 :MIG 技術(shù)支持 GPU 實(shí)例的隔離,這意味著一個(gè) GPU 實(shí)例中的問(wèn)題不會(huì)影響到其他實(shí)例,從而提高了系統(tǒng)的容錯(cuò)性。
- 部署靈活性 :MIG 技術(shù)可以用于云計(jì)算、虛擬化環(huán)境、容器化應(yīng)用程序等多種情境,為不同的部署需求提供了靈活性。
MIG的條件
并不是所有的顯卡都支持MIG,以下是官方給出的GPU型號(hào):
可以看到,基本上就是A100和H100可以使用,雖然都是24G顯存,但是消費(fèi)級(jí)的4090是不支持的。
然后就是驅(qū)動(dòng)
達(dá)到這些要求以后就可以使用了
MIG配置和使用
安裝Nvidia SMI(這里使用ubuntu系統(tǒng)作為示例)很簡(jiǎn)單,只要安裝好nvidia提供的工具包即可
sudo apt-get install nvidia-utils
下一步就是驗(yàn)證Nvidia驅(qū)動(dòng)程序。
nvidia-smi
沒(méi)問(wèn)題的話就說(shuō)明安裝完成了。下面就是配置的命令:
sudo nvidia-smi -i < GPU_ID > --mig on
nvidia-smi結(jié)果中包含了GPU ID。
驗(yàn)證MIG配置(需要GPU ID和實(shí)例ID進(jìn)行下一步工作)
nvidia-smi mig -lgip
驗(yàn)證成功后就說(shuō)明我們的MIG已經(jīng)正常可用,下面可以開(kāi)始創(chuàng)建虛擬GPU
我們將單個(gè)GPU(硬件)劃分為多個(gè)獨(dú)立的GPU實(shí)例,以手動(dòng)分擔(dān)工作負(fù)載并降低工作平衡的成本。
sudo nvidia-smi -i < GPU_ID > --mig < INSTANCE_COUNT >
-i :指定要使用的GPU設(shè)備。將替換為需要配置的GPU的實(shí)際ID。
-mig :用于配置mig (Multi-Instance GPU)。將替換為希望在指定GPU上創(chuàng)建的所需GPU實(shí)例數(shù)。每個(gè)實(shí)例都有自己的一組資源,包括內(nèi)存和計(jì)算能力。
比如我們下面的示例:在GPU ID=0上創(chuàng)建3個(gè)實(shí)例
sudo nvidia-smi -i 0 --mig 3
更改實(shí)例的資源分配(工作負(fù)載),主要目標(biāo)是為特定的MIG實(shí)例調(diào)整資源分配
sudo nvidia-smi -i < GPU_ID > -gi < INSTANCE_ID > -rg < WORKLOAD_PERCENT >
-i :指定執(zhí)行該操作的GPU。例如,-i 0表示第一個(gè)GPU。
-gi :在指定GPU內(nèi)執(zhí)行操作的MIG實(shí)例。例如,-gi 1表示GPU上的第二個(gè)MIG實(shí)例。
-rg :分配給指定MIG實(shí)例的GPU資源的百分比。將替換為所需的百分比。例如-rg 70表示將70%的GPU資源分配給指定的MIG實(shí)例。
在GPU_ID = 0和MIG Instance=1上設(shè)置占GPU總資源70%的工作負(fù)載
sudo nvidia-smi -i 0 -gi 1 -rg 70
Docker和MIG
大部分情況我們都會(huì)使用Docker來(lái)作為運(yùn)行環(huán)境,所以這里我們?cè)俳榻B一下Docker和MIG的配置。
安裝NVIDIA Container Toolkit,這是我們?cè)貲ocker中使用GPU的第一步,這里就不詳細(xì)介紹了,我們直接使用命令安裝。
sudo apt-get install -y nvidia-container-toolkit
配置Docker守護(hù)進(jìn)程以使用NVIDIA:編輯Docker守護(hù)進(jìn)程配置文件/etc/docker/daemon.json),添加如下行:
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
以上代碼只是示例,請(qǐng)跟你的實(shí)際情況修改,本文不主要介紹如何再Docker中使用GPU,所以只作為簡(jiǎn)單示例。
配置完需要重啟
sudo systemctl restart docker
驗(yàn)證GPU可用性,以獲取GPU信息
docker run --gpus all nvidia/cuda:11.0-base nvidia-smi
下面開(kāi)始我們的主要工作,配置MIG
docker run --gpus device=0,1,2,3 -e NVIDIA_VISIBLE_DEVICES=0,1,2,3 my_container
可以根據(jù)想要使用的MIG設(shè)備數(shù)量來(lái)調(diào)整——gpu和NVIDIA_VISIBLE_DEVICES參數(shù)。這里的gpus是我們通過(guò)上面命令虛擬的GPU
總結(jié)
MIG能夠?qū)蝹€(gè)GPU劃分為更小的實(shí)例,MIG為同時(shí)處理各種工作負(fù)載提供了經(jīng)濟(jì)高效且可擴(kuò)展的解決方案。MIG的底層功能,包括資源隔離和動(dòng)態(tài)分配,增強(qiáng)了GPU使用的靈活性、可擴(kuò)展性和整體效率。
跨越數(shù)據(jù)中心、科學(xué)研究和人工智能開(kāi)發(fā)的實(shí)際應(yīng)用凸顯了MIG在優(yōu)化GPU資源和加速計(jì)算任務(wù)方面的影響。MIG是一個(gè)很好的技術(shù),但是就目前顯卡的價(jià)格來(lái)說(shuō)對(duì)他的普及還是有很大的阻礙。不支持消費(fèi)級(jí)的顯卡,一張A100大概10萬(wàn)+,4張4090 6萬(wàn)多,我想沒(méi)人會(huì)把一張A100分成4份用吧。
-
控制器
+關(guān)注
關(guān)注
114文章
17059瀏覽量
183655 -
NVIDIA技術(shù)
+關(guān)注
關(guān)注
0文章
17瀏覽量
6436 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
966瀏覽量
29244 -
MIG
+關(guān)注
關(guān)注
0文章
13瀏覽量
11118 -
GPU芯片
+關(guān)注
關(guān)注
1文章
305瀏覽量
6165
發(fā)布評(píng)論請(qǐng)先 登錄

【技術(shù)系列】淺談GPU虛擬化技術(shù)(第一章)
GPU虛擬化在哪里發(fā)生?
可以使用適用于云計(jì)算中HPC的GPU虛擬化嗎
Linux上的虛擬化技術(shù)歷史回顧
LucidLogix推出新一代GPU虛擬化軟件
虛擬儀器與虛擬試驗(yàn)技術(shù)簡(jiǎn)介
基于虛擬化的多GPU深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練框架

NVIDIA虛擬GPU技術(shù):用戶將享受來(lái)自“云端”的極致體驗(yàn)
兩大硬件虛擬化,GPU虛擬化和FPGA虛擬化方法
5種GPU虛擬化技術(shù)的詳細(xì)資料講解
服務(wù)器虛擬化技術(shù)是什么,常見(jiàn)虛擬化架構(gòu)有哪些
NVIDIA虛擬GPU技術(shù)推動(dòng)快速無(wú)痛的牙科治療
什么是虛擬GPU?虛擬GPU的優(yōu)勢(shì)有哪些?

評(píng)論