多實例 GPU ( MIG )是 NVIDIA H100 , A100 和 A30 張量核 GPU ,因為它可以將 GPU 劃分為多個實例。每個實例都有自己的計算核心、高帶寬內(nèi)存、二級緩存、 DRAM 帶寬和解碼器等媒體引擎。
這使得多個工作負載或多個用戶能夠在一個 GPU 上同時運行工作負載,以最大化 CPU 利用率,同時保證服務(wù)質(zhì)量( QoS )。單個 A30 可以被劃分為最多四個 MIG 實例,以并行運行四個應(yīng)用程序。
這篇文章將指導(dǎo)您如何在 A30 上使用 MIG ,從劃分 MIG 實例到同時在 MIG 實例上運行深度學(xué)習(xí)應(yīng)用程序。
A30 MIG 剖面圖
默認情況下, A30 上禁用 MIG 模式。在分區(qū) GPU 上運行任何 MIG 工作負載之前,必須啟用 CUDA 模式,然后對 A30 進行分區(qū)。要劃分 A30 ,請創(chuàng)建 GPU 實例,然后創(chuàng)建相應(yīng)的計算實例。
GPU 實例是 GPU 切片和 CPU 引擎( DMA 、 NVDEC 等)的組合。 GPU 切片是 GPU 的最小部分,它組合了單個 CPU 內(nèi)存切片和單個流式多處理器( SM )切片。
在 GPU 實例中,GPU 內(nèi)存片和其他 CPU 引擎共享,但 SM 片可以進一步細分為計算實例。 GPU 實例提供內(nèi)存 QoS 。
您可以將具有 24 GB 內(nèi)存的 A30 配置為:
一個 GPU 實例,具有 24 GB 內(nèi)存
兩個 GPU 實例,每個實例具有 12 GB 內(nèi)存
三個 GPU 實例,一個具有 12GB 內(nèi)存,兩個具有 6GB 內(nèi)存
四個 GPU 實例,每個實例具有 6 GB 內(nèi)存
根據(jù) GPU 實例的大小,可以將 GPU 實例進一步劃分為一個或多個計算實例。計算實例包含父 GPU 實例的 SM 切片的子集。 GPU 實例中的計算實例共享內(nèi)存和其他媒體引擎。但是,每個計算實例都有專用的 SM 切片。
例如,您可以將 A30 分成四個 GPU 實例,每個實例有一個計算實例,或者將 A30 分為兩個 GPU 示例,每個實例都有兩個計算實例。雖然這兩個分區(qū)導(dǎo)致四個計算實例可以同時運行四個應(yīng)用程序,但不同之處在于,內(nèi)存和其他引擎在 GPU 實例級別隔離,而不是在計算實例級別隔離。因此,如果有多個用戶共享 A30 ,最好為不同的用戶創(chuàng)建不同的 GPU 實例以保證 QoS 。
表 1 概述了 A30 上支持的 GPU 配置文件,包括顯示 MIG 實例數(shù)量和每個 CPU 實例中 GPU 切片數(shù)量的五種可能 MIG 配置。它還顯示了硬件解碼器如何在 GPU 實例之間劃分。
表 1.A30 支持的 MIG 配置文件
GPC (圖形處理集群)或切片表示 SMs 、緩存和內(nèi)存的分組。 GPC 直接映射到 GPU 實例。 OFA (光流加速器)是基于 A100 和 A30 的 GA100 架構(gòu)上的引擎。對等( P2P )已禁用。
表 2 提供了 A30 上受支持的 MIG 實例的配置文件名,以及內(nèi)存、 SMs 和二級緩存如何在 MIG 配置文件之間劃分。 MIG 的配置文件名可以解釋為其 GPU 實例的 SM 切片計數(shù)及其總內(nèi)存大?。?GB )。例如:
MIG 2g 。 12gb 意味著這個 MIG 實例有兩個 SM 片和 12gb 內(nèi)存
MIG 4g 。 24gb 意味著這個 MIG 實例有四個 SM 片和 24gb 內(nèi)存
通過查看 2g 中 2 或 4 的 SM 切片計數(shù)。 12gb 或 4g 。 24gb ,您知道可以將 GPU 實例劃分為兩個或四個計算實例。
MIG 1g 。 6gb + me : me 是指在創(chuàng)建 1g 時訪問視頻和 JPEG 解碼器的媒體擴展。 6gb 配置文件。
MIG 實例可以動態(tài)創(chuàng)建和銷毀?。 創(chuàng)建和銷毀不會影響其他實例,因此它為您提供了銷毀未使用的實例并創(chuàng)建不同配置的靈活性。
管理 MIG 實例
使用mig-parted分區(qū)編輯器( MIG )自動創(chuàng)建 GPU 實例和計算實例 工具 或者按照中的nvidia-smi mig命令執(zhí)行 開始使用 MIG 。
強烈建議使用mig-parted工具,因為它使您能夠輕松更改和應(yīng)用 MIG 分區(qū)的配置,而無需發(fā)出一系列nvidia-smi mig命令。在使用該工具之前,您必須按照 說明 安裝 mig-parted 工具或從標記的 版本 中獲取預(yù)構(gòu)建的二進制文件。
下面是如何使用該工具將 A30 劃分為 1g 的四個 MIG 實例。 6gb 配置文件。首先,創(chuàng)建一個示例配置文件,然后可以與該工具一起使用。這個示例文件不僅包括前面討論的分區(qū),還包括一個自定義配置custom-config,將 GPU 0 劃分為四個 1g 。 6gb 實例和 GPU 1 到兩個 2g 。 12gb 實例。
$ cat << EOF > a30-example-configs.yaml version: v1 mig-configs: all-disabled: - devices: all mig-enabled: false all-enabled: - devices: all mig-enabled: true mig-devices: {} all-1g.6gb: - devices: all mig-enabled: true mig-devices: "1g.6gb": 4 all-2g.12gb: - devices: all mig-enabled: true mig-devices: "2g.12gb": 2 all-balanced: - devices: all mig-enabled: true mig-devices: "1g.6gb": 2 "2g.12gb": 1 custom-config: - devices: [0] mig-enabled: true mig-devices: "1g.6gb": 4 - devices: [1] mig-enabled: true mig-devices: "2g.12gb": 2 EOF
接下來,應(yīng)用all-1g.6gb配置將 A30 劃分為四個 MIG 實例。如果 MIG 模式尚未啟用,則mig-parted啟用GPU 模式,然后創(chuàng)建分區(qū):
通過指定 MIG 幾何圖形,然后使用mig-parted適當配置 GPU ,您可以輕松選擇其他配置或創(chuàng)建自己的自定義配置。
創(chuàng)建 MIG 實例后,現(xiàn)在您可以運行一些工作負載了!
深度學(xué)習(xí)用例
您可以在 MIG 實例上同時運行多個深度學(xué)習(xí)應(yīng)用程序。圖 1 顯示了四個 MIG 實例(四個 GPU 實例,每個實例都有一個計算實例),每個實例運行一個深度學(xué)習(xí)推理模型,以最大限度地利用單個 A30 同時執(zhí)行四個不同的任務(wù)。
例如,您可以 ResNet50 (圖像分類)在實例 1 上, EfficientDet (對象檢測)在實例二上, BERT (語言模型)在實例三上,以及 FastPitch (語音合成)實例四。該示例還可以表示四個不同的用戶在確保 QoS 的情況下同時共享 A30 。
性能分析
為了分析在啟用和不啟用 MIG 的情況下 A30 的性能改進,我們對 BERT PyTorch 模型 SQuAD (問答)在 A30 (帶和不帶 MIG )和 T4 上的三種不同場景中。
A30 四個 MIG 實例,每個實例有一個模型,總共四個模型同時微調(diào)
A30 MIG 模式被禁用,四個模型在四個容器中同時微調(diào)
A30 MIG 模式被禁用,四種型號串聯(lián)微調(diào)
T4 有四個串聯(lián)微調(diào)模型
要運行此示例,請使用 NVIDIA /深度學(xué)習(xí)示例 github 回購。
根據(jù)表 3 中的實驗結(jié)果,具有四個 MIG 實例的 A30 顯示了總共四個模型的最高吞吐量和最短微調(diào)時間。
使用 MIG 的 A30 總微調(diào)時間的加速:
1.39 倍,與 A30 相比,四種型號同時使用 MIG
1.27 倍,與 A30 相比,在四個串聯(lián)型號上無 MIG
3.18 倍于 T4
A30 米格的吞吐量
1.39 倍,與 A30 相比,四種型號同時使用 MIG
1.27 倍,與 A30 相比,在四個串聯(lián)型號上無 MIG
3.18 倍于 T4
在沒有 MIG 的情況下,同時對具有四個模型的 A30 進行微調(diào)也可以實現(xiàn)高 GPU 利用率,但不同之處在于,沒有 MIG 提供的硬件隔離。與使用 MIG 相比,它會產(chǎn)生上下文切換的開銷,并導(dǎo)致性能降低。
下一步是什么?
A30 MIG 模式基于最新的 NVIDIA Ampere 架構(gòu),可加速各種工作負載,如大規(guī)模人工智能推理,使您能夠充分利用單個 GPU ,同時以服務(wù)質(zhì)量為多個用戶提供服務(wù)。
關(guān)于作者
Maggie Zhang 是 NVIDIA 的深度學(xué)習(xí)工程師,致力于深度學(xué)習(xí)框架和應(yīng)用程序。她在澳大利亞新南威爾士大學(xué)獲得計算機科學(xué)和工程博士學(xué)位,在那里她從事 GPU / CPU 異構(gòu)計算和編譯器優(yōu)化。
Davide Onofrio 是 NVIDIA 的高級深度學(xué)習(xí)軟件技術(shù)營銷工程師。他在 NVIDIA 專注于深度學(xué)習(xí)技術(shù)開發(fā)人員關(guān)注內(nèi)容的開發(fā)和演示。戴維德在生物特征識別、虛擬現(xiàn)實和汽車行業(yè)擔(dān)任計算機視覺和機器學(xué)習(xí)工程師已有多年經(jīng)驗。他的教育背景包括米蘭理工學(xué)院的信號處理博士學(xué)位。Ivan Belyavtsev 是一名圖形開發(fā)工程師,主要致力于開發(fā)人員支持和優(yōu)化基于虛擬引擎的游戲。他還是 Innopolis 大學(xué)游戲開發(fā)領(lǐng)域的計算機圖形學(xué)導(dǎo)師。
Pramod Ramarao 是 NVIDIA 加速計算的產(chǎn)品經(jīng)理。他領(lǐng)導(dǎo) CUDA 平臺和數(shù)據(jù)中心軟件的產(chǎn)品管理,包括容器技術(shù)。
Joe DeLaere 是負責(zé)數(shù)據(jù)中心加速計算的高級產(chǎn)品營銷經(jīng)理,專注于 GPU 和 AI 用例。此前,他曾在 Altera / Intel 和 Xilinx / AMD 擔(dān)任產(chǎn)品管理和營銷職務(wù),專注于基于 FPGA 的數(shù)據(jù)中心加速解決方案。喬擁有圣何塞州立大學(xué)電氣工程學(xué)士學(xué)位。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4793瀏覽量
102429 -
gpu
+關(guān)注
關(guān)注
27文章
4591瀏覽量
128144 -
CUDA
+關(guān)注
關(guān)注
0文章
121瀏覽量
13546
發(fā)布評論請先 登錄
相關(guān)推薦
評論