【Nvidia】nvidiaの高度な機能MIGの詳細紹介(2)

ブロガーは、ブロガーの元の記事を転載することを個人または組織に許可していません。元の記事へのサポートに感謝します!
ブロガーリンク

私は国際的に有名な端末メーカーで働いており、モデム チップの研究開発を担当しています。
5G黎明期には端末データサービス層とコアネットワークの開発を担当し、現在は6Gコンピューティングパワーネットワークの技術標準の研究をリードしている。


ブログの内容は主に
       5G/6G プロトコルの説明
       コンピューティングパワー ネットワークの説明 (クラウドコンピューティング、エッジコンピューティング、エンドコンピューティング)
       高度な C 言語の説明
       Rust 言語の説明



nvidia の高度な機能 MIG の詳細な紹介 (2)

ここに画像の説明を挿入

1. CUDA が提供する同時実行メカニズム

       MIG は基本的に CUDA アプリケーションに対して透過的であるため、CUDA のプログラミング モデルを変更せずにプログラミング作業を削減できます。CUDA は、GPU でジョブを並列実行するためのいくつかの手法を公開しており、これらの手法と MIG との比較を以下に示します。Streamsおよび はMPSCUDA プログラミング モデルの一部であるため、GPU インスタンスで使用できることに注意してください。

       CUDA ストリームは CUDA プログラミング モデルの機能であり、異なるジョブを CUDA アプリケーションの個別のキューに送信し、GPU によって個別に処理できます。CUDA ストリームは単一のプロセス内でのみ使用でき、あまり分離されていません。アドレス空間が共有され、SM が共有され、GPU メモリ帯域幅、キャッシュ、およびメモリ容量が共有されます。最終的に、エラーはすべての Streams と実行全体に影響します

       MPS (Multi-Process service) は、CUDA のマルチプロセス サービスです。協調的なマルチプロセス アプリケーションが GPU 上のコンピューティング リソースを共有できるようにしますMPI の共同作業に一般的に使用されますが、無関係なアプリケーションが GPU リソースを共有するためにも使用されますが、このソリューションによってもたらされる課題も受け入れます。MPS は現在、クライアント間のエラー分離を提供しませんが、すべての SM 間で各 MPS クライアントが使用するストリーミング マルチプロセッサの割合を制限することは可能ですが、スケジューリング ハードウェアは引き続き共有されます。メモリ帯域幅、キャッシュ、およびメモリ容量はすべて、MPS クライアント間で共有されます。

       MIG は、並列ジョブを実行する際の他の CUDA テクノロジの制限の一部に対処しながら、NVIDIA GPU によって提供される新しい形式の同時実行です。

ストリーム MPS 自分
パーティションタイプ 単一プロセス 論理分割 身体区分
最大パーティション数 無制限 48 7
SM パフォーマンス分離 いいえ はい (パーセンテージで、パーティションではありません) はい
メモリ保護 いいえ はい はい
メモリ帯域幅 QoS いいえ いいえ はい
誤った隔離 いいえ いいえ はい
パーティション間の相互運用性 いつも IPC 限定IPC
いつ再構成するか 設定する準備ができました プロセス開始 アイドル状態で

2. MIG 機器の命名規則

       デフォルトでは、MIG デバイスは「GPU インスタンス」と「コンピュート インスタンス」で構成されます次の表は、GPU インスタンスごとの命名規則を示しています。スライスの数を数えますそしてその合計メモリ (GB)(単にメモリ スライス番号ではなく) MIG デバイスをマークします。

写真の説明を追加してください

CI が 1 つだけ作成される (GI のすべての計算能力を消費する) 場合、上の図に示すように、デバイス名に CI のサイズが示されます。

       次の表に、A100-SXM4-40GB プロファイル名の説明を示します。A100-SXM4-80GB の場合、プロファイル名はメモリ比率に応じて変化します (例: 1g.10gb、2g.20gb、3g.40gb、4g.40gb、7g.80gb)。

メモリー 20ギガバイト 10ギガバイト 5ギガバイト
GPU インスタンス 3g 2g1g
コンピュート インスタンス 3c 2c 1c
MIG デバイス 3g.20GB 2g.10GB 1g.5GB
GPCGPCGPC GPCGPC GPC

       各 GI は、ユーザーのワークロードに応じて複数の CI にさらに分割できます。次の表は、主にこの場合の MIG デバイスの名前を示しています示されている例は、3g.20gb デバイスを、さまざまな数のコンピューティング インスタンス スライスを持つ一連のサブデバイスに分割したものです。

ここに画像の説明を挿入

3、CUDA デバイスの列挙

       CUDA アプリケーションは、MIG デバイス識別子を使用して、特定の MIG デバイスでプログラムを許可します。CUDA 11/R450 および CUDA 12/R525 は、単一の MIG インスタンスの列挙のみをサポートします。つまり、いくつの MIG デバイスが作成された (またはコンテナーで使用できるようになった) 場合でも、1 つの CUDA プロセスで列挙できる MIG デバイスは 1 つだけです

       CUDA アプリケーションは、CI とその親 GI を CUDA デバイスとして認識します。CUDA は単一の CI のみを使用できます。複数の CI が表示されている場合、最初に使用可能な CI が選択されます。要約すると、次の 2 つの制約があります。

  • CUDA は単一のコンピューティング インスタンスのみを列挙できます。
  • 他の GPU の計算インスタンスが列挙されている場合、CUDA は非 MIG GPU を列挙しません。

CUDA_VISIBLE_DEVICES MIG の拡張サポート。使用するドライバーのバージョンに応じて、次の 2 つの形式がサポートされます。

  • drivers >= R470(470.42.01+) の下では、各 MIG デバイスに次の形式で GPU UUID が割り当てられます。
  • drivers > R470 (R450 や R460 など) は、CI と対応する親 GI を指定して、各 MIG デバイスを列挙します。形式は次の規則に従います: MIG-<GPU-UUID>/<GPU インスタンス ID>/<計算インスタンス ID>;
$ nvidia-smi -L        

GPU 0: A100-SXM4-40GB (UUID: GPU-5d5ba0d6-d33d-2b2c-524d-9e3d8d2b8a77)
  MIG 1g.5gb      Device  0: (UUID: MIG-c6d4f1ef-42e4-5de3-91c7-45d71c87eb3f)
  MIG 1g.5gb      Device  1: (UUID: MIG-cba663e8-9bed-5b25-b243-5985ef7c9beb)
  MIG 1g.5gb      Device  2: (UUID: MIG-1e099852-3624-56c0-8064-c5db1211e44f)
  MIG 1g.5gb      Device  3: (UUID: MIG-8243111b-d4c4-587a-a96d-da04583b36e2)
  MIG 1g.5gb      Device  4: (UUID: MIG-169f1837-b996-59aa-9ed5-b0a3f99e88a6)
  MIG 1g.5gb      Device  5: (UUID: MIG-d5d0152c-e3f0-552c-abee-ebc0195e9f1d)
  MIG 1g.5gb      Device  6: (UUID: MIG-7df6b45c-a92d-5e09-8540-a6b389968c31)
GPU 1: A100-SXM4-40GB (UUID: GPU-0aa11ebd-627f-af3f-1a0d-4e1fd92fd7b0)
  MIG 2g.10gb     Device  0: (UUID: MIG-0c757cd7-e942-5726-a0b8-0e8fb7067135)
  MIG 2g.10gb     Device  1: (UUID: MIG-703fb6ed-3fa0-5e48-8e65-1c5bdcfe2202)
  MIG 2g.10gb     Device  2: (UUID: MIG-532453fc-0faa-5c3c-9709-a3fc2e76083d)

4. 使用できる MIG 構成ファイル

気軽に MIG を構成することはできません。NVIDIA には、MIG が使用する構成ファイルがいくつかあります。

A100 を使用しているため、ここでは A100 の MIG 構成ファイルを次のように使用します。
写真の説明を追加してください

A100-SXM4-40GB でサポートされている構成ファイルを次の表に示します。A100-SXM4-80GB の場合、プロファイル名はメモリの比率によって異なります (例: 1g.10gb、1g.10gb+me、1g.20gb、2g.20gb、3g.40gb、4g.40gb、7g.80gb)。

ここに画像の説明を挿入



読んでいただきありがとうございます。Congshanruosui のブログはこちらです。


ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_31985307/article/details/129903676