0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GPU虛擬化技術MIG簡介和安裝使用教程

冬至子 ? 來源:思否AI ? 作者:思否AI ? 2023-10-11 14:42 ? 次閱讀

使用多實例GPU (MIG/Multi-Instance GPU)可以將強大的顯卡分成更小的部分,每個部分都有自己的工作,這樣單張顯卡可以同時運行不同的任務。本文將對其進行簡單介紹并且提供安裝和使用的示例。

什么是MIG

NVIDIA Multi-Instance GPU (MIG) 技術是 NVIDIA 推出的一種 GPU 虛擬化技術,允許一塊物理 GPU 被分割成多個獨立的 GPU 實例,每個實例可以被分配給不同的虛擬機、容器或用戶。這種技術有助于更有效地利用 GPU 資源,提高 GPU 的共享性和多租戶支持。

MIG 技術通常需要硬件和軟件支持,包括支持 MIG 的 NVIDIA GPU 和相應的驅動程序。這使得 MIG 技術成為數據中心云計算環(huán)境中更好地管理 GPU 資源的有力工具。它有助于提高 GPU 利用率,降低成本,并更好地滿足不同應用程序和用戶的需求。

MIG是如何工作的

MIG通過虛擬地將單個物理GPU劃分為更小的獨立實例,這項技術涉及GPU虛擬化,GPU的資源,包括CUDA內核和內存,被分配到不同的實例。這些實例彼此隔離,確保在一個實例上運行的任務不會干擾其他實例。

MIG支持GPU資源的動態(tài)分配,允許根據工作負載需求動態(tài)調整實例的大小。這種動態(tài)分配有助于有效地利用資源。多個應用程序或用戶可以在同一個GPU上并發(fā)運行,每個GPU都有自己的專用實例。整個過程通過軟件進行管理,為管理員提供了對實例配置和資源分配的控制。這種方法增強了在單個GPU上處理不同工作負載的靈活性、可擴展性和資源效率。

MIG 技術關鍵特點

  1. 資源劃分 :MIG 允許將一塊物理 GPU 分割成多個 GPU 實例,每個實例具有自己的 GPU 核心、GPU 內存、NVLink 帶寬等資源。這樣可以更好地控制和劃分 GPU 資源。
  2. 多租戶支持 :MIG 技術可以用于虛擬化 GPU,以便不同用戶或應用程序可以共享同一塊物理 GPU 而不會相互干擾。
  3. 動態(tài)資源調整 :管理員可以根據工作負載的需求動態(tài)地重新配置 MIG 實例的資源,從而實現更好的資源利用和性能。
  4. 容錯性 :MIG 技術支持 GPU 實例的隔離,這意味著一個 GPU 實例中的問題不會影響到其他實例,從而提高了系統(tǒng)的容錯性。
  5. 部署靈活性 :MIG 技術可以用于云計算、虛擬化環(huán)境、容器化應用程序等多種情境,為不同的部署需求提供了靈活性。

MIG的條件

并不是所有的顯卡都支持MIG,以下是官方給出的GPU型號:

可以看到,基本上就是A100和H100可以使用,雖然都是24G顯存,但是消費級的4090是不支持的。

然后就是驅動

達到這些要求以后就可以使用了

MIG配置和使用

安裝Nvidia SMI(這里使用ubuntu系統(tǒng)作為示例)很簡單,只要安裝好nvidia提供的工具包即可

sudo apt-get install nvidia-utils

下一步就是驗證Nvidia驅動程序。

nvidia-smi

沒問題的話就說明安裝完成了。下面就是配置的命令:

sudo nvidia-smi -i < GPU_ID > --mig on

nvidia-smi結果中包含了GPU ID。

驗證MIG配置(需要GPU ID和實例ID進行下一步工作)

nvidia-smi mig -lgip

驗證成功后就說明我們的MIG已經正??捎茫旅婵梢蚤_始創(chuàng)建虛擬GPU

我們將單個GPU(硬件)劃分為多個獨立的GPU實例,以手動分擔工作負載并降低工作平衡的成本。

sudo nvidia-smi -i < GPU_ID > --mig < INSTANCE_COUNT >

-i :指定要使用的GPU設備。將替換為需要配置的GPU的實際ID。

-mig :用于配置mig (Multi-Instance GPU)。將替換為希望在指定GPU上創(chuàng)建的所需GPU實例數。每個實例都有自己的一組資源,包括內存和計算能力。

比如我們下面的示例:在GPU ID=0上創(chuàng)建3個實例

sudo nvidia-smi -i 0 --mig 3

更改實例的資源分配(工作負載),主要目標是為特定的MIG實例調整資源分配

sudo nvidia-smi -i < GPU_ID > -gi < INSTANCE_ID > -rg < WORKLOAD_PERCENT >

-i :指定執(zhí)行該操作的GPU。例如,-i 0表示第一個GPU。

-gi :在指定GPU內執(zhí)行操作的MIG實例。例如,-gi 1表示GPU上的第二個MIG實例。

-rg :分配給指定MIG實例的GPU資源的百分比。將替換為所需的百分比。例如-rg 70表示將70%的GPU資源分配給指定的MIG實例。

在GPU_ID = 0和MIG Instance=1上設置占GPU總資源70%的工作負載

sudo nvidia-smi -i 0 -gi 1 -rg 70

Docker和MIG

大部分情況我們都會使用Docker來作為運行環(huán)境,所以這里我們再介紹一下Docker和MIG的配置。

安裝NVIDIA Container Toolkit,這是我們再Docker中使用GPU的第一步,這里就不詳細介紹了,我們直接使用命令安裝。

sudo apt-get install -y nvidia-container-toolkit

配置Docker守護進程以使用NVIDIA:編輯Docker守護進程配置文件/etc/docker/daemon.json),添加如下行:

{
   "default-runtime": "nvidia",
   "runtimes": {
     "nvidia": {
       "path": "/usr/bin/nvidia-container-runtime",
       "runtimeArgs": []
     }
   }
 }

以上代碼只是示例,請跟你的實際情況修改,本文不主要介紹如何再Docker中使用GPU,所以只作為簡單示例。

配置完需要重啟

sudo systemctl restart docker

驗證GPU可用性,以獲取GPU信息

docker run --gpus all nvidia/cuda:11.0-base nvidia-smi

下面開始我們的主要工作,配置MIG

docker run --gpus device=0,1,2,3 -e NVIDIA_VISIBLE_DEVICES=0,1,2,3 my_container

可以根據想要使用的MIG設備數量來調整——gpu和NVIDIA_VISIBLE_DEVICES參數。這里的gpus是我們通過上面命令虛擬的GPU

總結

MIG能夠將單個GPU劃分為更小的實例,MIG為同時處理各種工作負載提供了經濟高效且可擴展的解決方案。MIG的底層功能,包括資源隔離和動態(tài)分配,增強了GPU使用的靈活性、可擴展性和整體效率。

跨越數據中心、科學研究和人工智能開發(fā)的實際應用凸顯了MIG在優(yōu)化GPU資源和加速計算任務方面的影響。MIG是一個很好的技術,但是就目前顯卡的價格來說對他的普及還是有很大的阻礙。不支持消費級的顯卡,一張A100大概10萬+,4張4090 6萬多,我想沒人會把一張A100分成4份用吧。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16028

    瀏覽量

    176635
  • NVIDIA技術
    +關注

    關注

    0

    文章

    17

    瀏覽量

    6256
  • 虛擬機
    +關注

    關注

    1

    文章

    897

    瀏覽量

    27960
  • MIG
    MIG
    +關注

    關注

    0

    文章

    12

    瀏覽量

    10960
  • GPU芯片
    +關注

    關注

    1

    文章

    303

    瀏覽量

    5761
收藏 人收藏

    評論

    相關推薦

    198.云方案5:GPU虛擬,如何通過盒子遠程玩游戲(上)

    gpu虛擬
    小凡
    發(fā)布于 :2022年10月04日 12:27:00

    技術系列】淺談GPU虛擬技術(第一章)

    摘要: GPU深度好文系列,阿里云技術專家分享第一章GPU虛擬發(fā)展史GPU
    發(fā)表于 04-16 10:51

    GPU虛擬在哪里發(fā)生?

    GPU虛擬在哪里發(fā)生?它是否出現在GRID卡中,然后將vGPU呈現給管理程序然后呈現給客戶?或者,GPU虛擬
    發(fā)表于 09-28 16:45

    可以使用適用于云計算中HPC的GPU虛擬

    是否可以使用NVidia虛擬在云計算中使用GPU虛擬創(chuàng)建VM群集?怎么能實現呢?以上來自于谷歌翻譯以下為原文Is it possible
    發(fā)表于 09-30 10:47

    Linux上的虛擬技術歷史回顧

    虛擬技術的應用十分廣泛. 當前虛擬技術主要關注于服務器的
    發(fā)表于 07-22 07:18

    LucidLogix推出新一代GPU虛擬軟件

    LucidLogix日前推出新一代Virtu Universal GPU虛擬軟件,適用于使用Intel或AMD集成圖像處理器(GPU)的筆記本電腦、All-in-One和臺式計算機
    發(fā)表于 06-27 08:37 ?901次閱讀

    虛擬環(huán)境下多GPU并行計算研究

    虛擬環(huán)境下多GPU并行計算研究_閔芳
    發(fā)表于 01-03 15:24 ?0次下載

    基于虛擬的多GPU深度神經網絡訓練框架

    針對深度神經網絡在分布式多機多GPU上的加速訓練問題,提出一種基于虛擬的遠程多GPU調用的實現方法。利用遠程GPU調用部署的分布式
    發(fā)表于 03-29 16:45 ?0次下載
    基于<b class='flag-5'>虛擬</b><b class='flag-5'>化</b>的多<b class='flag-5'>GPU</b>深度神經網絡訓練框架

    NVIDIA虛擬GPU技術:用戶將享受來自“云端”的極致體驗

    NVIDIA虛擬GPU業(yè)務副總裁John Fanelli近期接受采訪時介紹NVIDIA的虛擬GPU技術。
    的頭像 發(fā)表于 07-09 15:44 ?2795次閱讀

    兩大硬件虛擬GPU虛擬和FPGA虛擬方法

    GPU是計算機的一個重要組成部分,但GPU這類重要資源虛擬的性能、擴展性和可用性相對于CPU等處于滯后的階段。
    發(fā)表于 12-06 15:07 ?3409次閱讀

    服務器虛擬技術到底是什么

    是PowerKVM;以及AIX虛擬PowerVM,支持vSCSI和NPIV兩種技術虛擬出系統(tǒng)叫VIOS)。今天的內容覆蓋了CPU虛擬
    發(fā)表于 06-10 08:00 ?0次下載
    服務器<b class='flag-5'>虛擬</b><b class='flag-5'>化</b><b class='flag-5'>技術</b>到底是什么

    5種GPU虛擬技術的詳細資料講解

    GPU,也即圖形處理單元。不論在手機中,還是在電腦、筆記本上,GPU都發(fā)揮著不可替代的作用。往期文章中,小編對GPU加速原理、GPU服務器選擇、GP
    的頭像 發(fā)表于 02-08 17:48 ?9716次閱讀

    服務器虛擬技術是什么,常見虛擬架構有哪些

    金屬虛擬架構、操作系統(tǒng)虛擬架構、混合虛擬架構和寄居虛擬
    的頭像 發(fā)表于 09-01 16:51 ?7654次閱讀

    NVIDIA虛擬GPU技術推動快速無痛的牙科治療

    NVIDIA虛擬GPU技術推動快速無痛的牙科治療
    的頭像 發(fā)表于 08-01 14:46 ?464次閱讀

    什么是虛擬GPU虛擬GPU的優(yōu)勢有哪些?

    虛擬 GPU,也稱為 vGPU,是通過將數據中心 GPU 進行虛擬,用戶可在多個虛擬機中共享該
    的頭像 發(fā)表于 11-10 09:48 ?1673次閱讀
    什么是<b class='flag-5'>虛擬</b><b class='flag-5'>GPU</b>?<b class='flag-5'>虛擬</b><b class='flag-5'>GPU</b>的優(yōu)勢有哪些?