NVIDIA安培架構下MIG技術分析

天翼雲開發者社群發表於2022-05-26

作者:天翼雲 高鵬軍

關鍵詞: NVIDIA MIG 、安培

什麼是 MIG

2020年5月,NVIDIA 釋出了最新的 GPU 架構: 安培,以及基於安培架構的最新的 GPU : A100。安培提供了許多新的特性,MIG 是其中一項非常重要的新特性。MIG的全名是 Multi-Instance GPU。 NVIDIA安培架構中的MIG模式可以在A100 GPU上並行執行七個作業。多例項 GPU (MIG) 可提升每個 NVIDIA A100 Tensor 核心 GPU 的效能和價值。MIG 可將 A100 GPU 劃分為多達七個例項,每個例項均與各自的高頻寬視訊記憶體、快取和計算核心完全隔離。現在,管理員可以支援從大到小的各項工作負載,為每項工作提供規模適當的 GPU,而且服務質量 (QoS) 穩定可靠,從而優化利用率,讓每位使用者都能享用加速計算資源。

 

MIG 技術分析

MIG 推出之前,我們也能夠透過 CUDA MPS (Multi-Process Service) 來提高 GPU 使用率。但 MPS 的缺點在於,多個使用者會使用共同的記憶體,因此使用者的程式會互相影響,除了無法保證推理的速度和吞吐量之外,也有可能因為其中一位使用者的程式出錯而導致其他使用者受到干擾。而 MIG 克服了 MPS 面臨的問題。MIG 藉由硬體上的分離,保證了使用者的程式不會互相干擾,進而能夠讓程式的時延和吞吐量能符合預期。

在表格 1當中,我們比較了多流 (multi-stream)、MPS 以及 MIG 的優缺點。其中,多流的使用限制較少,同時也很靈活,但對程式碼更動的需求大,並且無法避免使用者之間的互相干擾,使用者必須小心的使用以避免產生錯誤。MPS 則不需要更動程式碼即可使用,可以同時執行的程式也較 MIG 多 (48 與 7),記憶體的使用與分配也是自動處理的,不需要人工的介入。缺點在於,無法避免多個使用者對於 GPU 資源的競爭;最後,MIG 雖然可以同時執行的程式數量最少,但和 MPS 一樣不需要使用者另外更動程式碼,同時在安全性與可靠性上面也是三者中最佳的。這三樣技術並不互相沖突,使用者可以根據使用的情境與場景選擇與搭配使用。

 

表一

 

藉助 MIG,工作可同時在不同的例項上執行,每個例項都有專用的計算、視訊記憶體和視訊記憶體頻寬資源,從而實現可預測的效能,同時符合服務質量並儘可能提升 GPU 利用率。

MIG模式下的A100可以執行多達7個不同大小的AI或HPC工作負載的任意組合。這種能力對於通常不需要現代 GPU(

) 所提供的所有效能的AI推理工作特別有用。

例如,使用者可以建立兩個MIG例項,每個例項的記憶體為20gb,三個例項的記憶體為10gb,七個例項的記憶體為5gb。使用者建立適合其工作負載的組合。

如何計算最大可建例項的數量呢? A100 40GB視訊記憶體為例,A100一張卡的SM單元(streaming multiprocessor)數量(類似CPU的核心數)為108,每14個SM單元稱作一個Slice,每張A100卡有7個Slice。一個GPU運算例項的最小粒度是14個SM單元,也就是說在分配GPU的SM單元數量時必須是14的整數倍。如果申請規模為28 SM單元數,10GB視訊記憶體的運算例項,設在單張A100上這樣的例項個數最多為X個,那麼必須滿足28 * X <= 108(SM單元總數限制) 且 10 *X <= 40(GPU視訊記憶體限制) 所以X最大為3。

表二

 

 

MIG隔離了GPU例項,所以它提供了故障隔離,一個例項中的問題不會影響在同一物理GPU上執行的其他例項。每個例項都提供有保證的QoS,確保使用者的工作負載獲得他們期望的延遲和吞吐量。

表三比較了上一代旗艦產品 V100與A100使用7個MIG GPU例項在FasterTransformer模型中不同batch size下的吞吐量與時延。我們可以看到在batch size為8的時候,A100的吞吐量已經很接近峰值,距離峰值不到百分之十;另一方面,V100在batch size 為8的時候,吞吐量距離峰值還有百分之三十左右,在batch size 為32時,吞吐量距離峰值也還有百分之十左右。這代表和上一代的GPU相比,MIG在提升GPU的使用率上有很大的進步。

表三

 

當在A100上配置MIG mode的時候,需要考慮如下限制:

1) MIG只支援Linux作業系統, CUDA11/ R450 or更高版本。(推薦至少要使用過450.80.02或更高版本)

2) 支援bare-metal (包括容器); 支援Linux guest通過hypervisor進行GPU pass-through 視覺化;支援vGPU 模式 ;

3) A100上設定MIG,需要GPU reset和超級使用者許可權(super-user privileges)。一旦A100設定了MIG後,instance的管理就可以是動態的了(無需再進行GPU reset).需要注意這一點是針對單個GPU而言,不是對單個機器而言;

4) 類似於ECC mode,MIG 設定是persistent的,即使reboot也不會影響。直到使用者顯式地切換。

5) 在起用MIG之前,所有hold driver modules handles的程式必須被停掉。

6) 切換 MIG 模式需要 CAP_SYS_ADMIN 功能。其他 MIG 管理(例如建立和銷燬例項)預設需要超級使用者,但可以通過在 /proc/ 中調整對 MIG 功能的許可權來委託給非特權使用者。

優勢

更多使用者享受到 GPU 加速能力

藉助 MIG 技術 使用者 可以在單個 A100 GPU 上獲得多達原來 7 倍的 GPU 資源。MIG 為研發人員提供了更多的資源和更高的靈活性。

優化 GPU 利用率

MIG 允許 使用者 靈活選擇許多不同的例項大小,從而為每項工作負載提供適當規模的 GPU 例項,最終優化利用率並使資料中心投資充分發揮成效。

同時執行混合工作負載

憑藉 MIG,能以確定性延遲和吞吐量,在單個 GPU 上同時執行推理、訓練和高效能運算 (HPC) 工作負載。

程式設計模型沒有變化

NVIDIA通過它為其A100提供的軟體啟用MIG。其中包括GPU驅動程式、NVIDIA的CUDA11軟體,使得每個 MIG 例項對於應用程式都像獨立 GPU 一樣執行,使其程式設計模型沒有改變,對開發者友好。
     提供出色的服務質量

每個 MIG 例項都有一套專用於計算、記憶體和快取的硬體資源,從而能為工作負載提供穩定可靠的服務質量 (QoS) 和有效的故障隔離。這樣一來,如果某個例項上執行的應用程式發生故障,並不會影響其他例項上執行的應用程式。而且,不同的例項可以執行不同型別的工作負載,包括互動式模型開發、深度學習訓練、AI 推理或高效能運算應用程式等。由於這些例項並行執行,因此工作負載也在同一個物理 A100 GPU 上同時執行,但它們彼此相互獨立、隔離。

GPU雲主機


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2897199/,如需轉載,請註明出處,否則將追究法律責任。

相關文章