「DGX A100 テストドライブ」で MIG を試してみた

エヌビディアの佐々木です。

この記事は、エヌビディアのパートナー企業で、多くの GPU 搭載コンピューターの導入を手掛けている株式会社ジーデップ・アドバンスさん (以下: GDEP-A) との共同企画です。

昨年の 9 月に、「[NVIDIA DGX A100 開封の儀](https://www.gdep.co.jp/information/report/%E7%89%B9%E8%A8%AD%E5%8B%95%E7%94%BB%E3%80%8Cnvidia-dgx-a100-%E9%96%8B%E5%B0%81%E3%81%AE%E5%84%80%E3%80%8D/)」なる動画が公開されましたが、ご覧いただけましたか？エヌビディアからは森野と私が出演して、ホンモノ (GDEP-A の自社用) の DGX A100 を開封し、その外観と内部を解説したものです。(実は、COVID-19 の影響で本社へ行けなくなったため、私も DGX A100 の実機に触れたのは、あの撮影が初めてでした！)

この時開封した DGX A100 は現在、設備の整った DGX Ready データセンターに設置され、DGX A100 の購入を検討中のお客様向けの「[NVIDIA DGX A100 TRY & BUY プログラム (DGX A100 テストドライブ)](https://www.gdep.co.jp/information/campaign/dgx-a100-trybuy/)」で利用されています。私もこの DGX A100 を借りることができましたので、ちょっとどんな感じか紹介したいと思います。

# テストドライブの形式

テストドライブでは、1 台の DGX A100 へのリモートアクセスが提供されます。もちろん管理者権限が得られますし、SSH でのログインのほか、お願いすれば BMC (Baseboard Management Controller: サーバーに内蔵されている管理用のコンピューター) へのアクセスも可能なので、リモートアクセスとはいえ、実機への物理アクセスに近い状態で、電源の OFF/ON や BIOS 設定の変更など、何でも試すことができます。

Web ブラウザで BMC にアクセスしたところ:
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32712/572f915d-6224-291e-761f-d34eb845e28c.png" width="50%"/>

電源のコントロール:
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32712/3accb935-709d-6c5e-efb7-7fc425c5761d.png" width="50%"/>

BIOS 画面:
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32712/f9cc9fa7-0c6f-2c68-1809-21326bd9e70d.png" width="50%"/>

GDEP-A さんによるわかりやすい説明書も提供されるので、利用開始は非常に簡単です。

# Multi-Instance GPU (MIG) を試してみよう

さて、せっかく DGX A100 をまるまる 1 台借りることができたので、NVIDIA A100 GPU の特徴である Multi-Instance GPU (MIG: ミグ) を試してみました。エヌビディア社内にはもちろん DGX A100 がたくさんあって、いつでもジョブを実行できるのですが、自由に MIG の設定を変えたり、再起動したりできる環境は、実はそんなに多くないのです。テストドライブはまたとないチャンス！

# MIG とは

MIG は、[NVIDIA A100 GPU](https://www.nvidia.com/ja-jp/data-center/a100/) で初めて実装され、そして現時点では A100 及び [A30](https://www.nvidia.com/ja-jp/data-center/products/a30-gpu/) GPU のみが備える GPU の物理分割機構です。GPU のパーティショニングとしては、すでに NVIDIA 仮想 GPU (vGPU) がありますが、vGPU と MIG は別物です。MIG は、ハイパーバイザなどの外部ソフトウェアに依存しない GPU 単体の機能で、A100 GPU では最大 7 つ、A30 GPU では最大 4 つのスライスに分割することができます。なお、この記事では、A100 GPU を対象にします。

7 分割というのはやや半端な印象を与えるかもしれませんが、これは A100 GPU の内部構造に由来します。下図の通り、A100 GPU (に搭載されている GA100 チップ) には 8 つの GPC (Graphics Processing Cluster) が存在し、そのうち 7 つが有効化されています。それぞれの GPC はいわば「小さな GPU」ともいえる存在で、MIG はこの GPC を単位に GPU を分割します。GPC が 7 つあるので、「最大 7 分割」なのです。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32712/dfdd8e64-ea5d-b3d4-ad1b-8ad5c1055803.png"/>

なお、GPC の内部には TPC (Texture Processing Cluster) があり、それぞれの TPC が、演算器の集まりである SM (Streaming Multiprocessor) を 2 個ずつ含んでいるのですが、上の図を見ていただくと、GPC 毎の有効 TPC 数が、7 あるいは 8 とばらついているのがわかります(灰色の部分は無効)。これでは、7 分割した MIG のスライスに含まれる演算器の数が不揃いになってしまいます。そのため、A100 GPU は MIG がデフォルト状態では無効化されており、MIG を有効にすると、下図の通りすべての GPC で 7 つの TPC だけが有効になります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32712/230ceba3-7df1-26ee-9efd-793357bd65ff.png"/>

つまり、MIG を有効にすると、使える SM が 10 個減ってしまうわけですが、そもそも「A100 GPU の能力を 1 つのプログラムでは使いきれないから複数に分割」するのが MIG の動機ですから、これが大きな問題になることはない、と信じています。

# MIG の有効化とインスタンスの作成

ここから、具体的に MIG の使い方を紹介してきます。まず、先ほど紹介したとおり、MIG はデフォルトでは無効化されていますので、これを有効化します。

と、その前に。

## GPU 関連サービスの停止

何らかのプロセスが GPU にアクセスしていると、MIG の有効・無効の切り替えができません。DGX A100 では、標準で動作している NVSM (NVIDIA System Management) 及び DCGM (Data Center GPU Manager) サービスがそれに該当します。まずはこれらを停止する必要があります。

```
# systemctl stop nvsm
# systemctl stop dcgm
```

## MIG の有効化

MIG の有効・無効は A100 GPU 1 基ずつ個別に設定できるので、まずは 8 基ある A100 のうち 1 基だけ、MIG を有効にしてみましょう。

```
# nvidia-smi -i 0 -mig 1
Enabled MIG Mode for GPU 00000000:07:00.0
All done.
```

これで、MIG が有効になりました。確認してみましょう。

```
# nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  A100-SXM4-40GB      On   | 00000000:07:00.0 Off |                   On |
| N/A   31C    P0    69W / 400W |      0MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
～ 中略 ～
+-------------------------------+----------------------+----------------------+
|   7  A100-SXM4-40GB      On   | 00000000:BD:00.0 Off |                    0 |
| N/A   33C    P0    55W / 400W |      0MiB / 40537MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| MIG devices:                                                                |
+------------------+----------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
|      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
|                  |                      |        ECC|                       |
|==================+======================+===========+=======================|
|  No MIG devices found                                                       |
+-----------------------------------------------------------------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
```
0番 (先頭) の A100 で、右端の "MIG M." 欄が Enabled になりましたね。しかし、まだ MIG を有効化しただけで、実際の分割を行ってはいません。そのため、下のほうの MIG devices: 欄が "No MIG devices found" となっています。

## GPU インスタンス (GI) とコンピュート インスタンス (CI)

MIG における GPU の分割は、まず「GPU インスタンス (GI)」の作成という形で行われます。前述の通り、7 つある GPC を組み合わせる形でインスタンスを作っていくわけですが、作成可能なインスタンスの種類は「GPU インスタンス プロファイル」として定義されており、下記のコマンドで確認できます。(``-lgip`` オプションは、List Gpu Instance Profile の略です)

```
# nvidia-smi mig -lgip
+--------------------------------------------------------------------------+
| GPU instance profiles:                                                   |
| GPU   Name          ID    Instances   Memory     P2P    SM    DEC   ENC  |
|                           Free/Total   GiB              CE    JPEG  OFA  |
|==========================================================================|
|   0  MIG 1g.5gb     19     7/7        4.75       No     14     0     0   |
|                                                          1     0     0   |
+--------------------------------------------------------------------------+
|   0  MIG 2g.10gb    14     3/3        9.75       No     28     1     0   |
|                                                          2     0     0   |
+--------------------------------------------------------------------------+
|   0  MIG 3g.20gb     9     2/2        19.62      No     42     2     0   |
|                                                          3     0     0   |
+--------------------------------------------------------------------------+
|   0  MIG 4g.20gb     5     1/1        19.62      No     56     2     0   |
|                                                          4     0     0   |
+--------------------------------------------------------------------------+
|   0  MIG 7g.40gb     0     1/1        39.50      No     98     5     0   |
|                                                          7     1     1   |
+--------------------------------------------------------------------------+

```
1g.5gb は、1 個の GPC と、5GB のメモリを備える最小のインスタンスで、最大 7 個作成できます。2g.10gb は 1g.5gb の2倍の大きさ、4g.20gb ならさらにその 2 倍です。7g.40gb は、A100 全体を使った最大のインスタンスで、当然 1 基の A100 に 1 個しか作れません。

例えば 1g.5gb、2g.10gb、4g.20gb を 1 個ずつ作ると下図のようになりますが、ここで注目していただきたいのは、図の中の「コンピュート インスタンス」の部分です。

![単純に 3 つの GPU インスタンスを作成した例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32712/ca31085d-0fcc-f18b-8d3b-219414ba0ac9.png)




MIG では、GPU インスタンス (GI) を作るだけでは、まだそれは 1 個の GPU として機能しません。GI の中に必ず、コンピュート インスタンス (CI) が必要です。CI は、この図のように GI と 1:1 でも構いませんし、複数の GPC を持つ GI では、GPC の数を上限として、複数の CI を定義できます (後述)。

### GI と CI の作成

なんだか話が少しややこしくなってしまったので、実際にインスタンスを作ってみましょう。先ほどの図と同じように、1g.5gb、2g.10gb、4g.20gb を 1 個ずつ作ってみます。``-cgi`` オプションは Create Gpu Instance の略です。さらに、``-C`` オプションをつけることで、GI 内に、GI と 1:1 になる大きさの CI を同時に作ることができます。
※ なお、この ``-C`` オプションは、450.80.02 より前のドライバを使っている環境では使えません。


```
# nvidia-smi mig -cgi 1g.5gb,2g.10gb,4g.20gb -C
Successfully created GPU instance ID  9 on GPU  0 using profile MIG 1g.5gb (ID 19)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  9 using profile MIG 1g.5gb (ID  0)
Successfully created GPU instance ID  3 on GPU  0 using profile MIG 2g.10gb (ID 14)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  3 using profile MIG 2g.10gb (ID  1)
Successfully created GPU instance ID  2 on GPU  0 using profile MIG 4g.20gb (ID  5)
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  2 using profile MIG 4g.20gb (ID  3)
```
3 つの GI と、それぞれの GI に 1 つずつの CI が作成されました。

### 作成した GI/CI の確認

``nvidia-smi`` で確認してみましょう。"MIG devices: " 欄に注目です。 3 つの GI が確認できますね。

```
# nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
～ 中略 ～
+-----------------------------------------------------------------------------+
| MIG devices:                                                                |
+------------------+----------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
|      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
|                  |                      |        ECC|                       |
|==================+======================+===========+=======================|
|  0    2   0   0  |     14MiB / 20096MiB | 56      0 |  4   0    2    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0    3   0   1  |      7MiB /  9984MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
```

左側の方に、何種類か ID が表示されていますが、これらの意味は次の通りです。

- GPU: MIG とは無関係に、A100 GPU 単体を識別する番号。DGX A100 には A100 GPU が 8 基搭載されているので、この ID は 0 から 7 まで。
- GI ID: GPU インスタンスの ID。GPU 内でユニーク。GI の作成から削除までの間、不変。
- CI ID: コンピュート インスタンスの ID。GI 内でユニーク。CI の作成から削除までの間、不変。
- MIG Dev: 「今見えている GPU 内の CI」に連番を振ったもの。GPU 内でユニーク。環境変数 CUDA_VISIBLE_DEVICES などの設定により、同じ CI に別の番号がつくことが当然ある。

``nvidia-smi -L`` では、各 CI を指す UUID (正確には、GPU の UUID に GI ID と CI ID を付与したもの) が得られます。この UUID、後ほど使います。

```
# nvidia-smi -L
GPU 0: A100-SXM4-40GB (UUID: GPU-a4139e7e-4d09-d80b-486e-030e04d3e4b1)
  MIG 4g.20gb Device 0: (UUID: MIG-GPU-a4139e7e-4d09-d80b-486e-030e04d3e4b1/2/0)
  MIG 2g.10gb Device 1: (UUID: MIG-GPU-a4139e7e-4d09-d80b-486e-030e04d3e4b1/3/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-a4139e7e-4d09-d80b-486e-030e04d3e4b1/9/0)
GPU 1: A100-SXM4-40GB (UUID: GPU-731444f0-aa05-00b0-a35f-ea9dc09ce349)
GPU 2: A100-SXM4-40GB (UUID: GPU-d55668a0-bd8d-be8e-cf19-14ba757360a5)
GPU 3: A100-SXM4-40GB (UUID: GPU-fea1bc89-8f1d-f399-36ac-2debab0e6a59)
GPU 4: A100-SXM4-40GB (UUID: GPU-bc6d7c29-3fc5-6430-6b41-5da0793a14ed)
GPU 5: A100-SXM4-40GB (UUID: GPU-eb5d3a40-2edf-f587-5cdd-40b67a07cc3e)
GPU 6: A100-SXM4-40GB (UUID: GPU-66757085-9010-e66d-d7f8-28b3c59d3cdc)
GPU 7: A100-SXM4-40GB (UUID: GPU-e87e3b42-52e7-a3b2-7b8d-b3b9833dff58)
```

また、 ``nvidia-smi mig -lgi`` (lgi: List GPU Instance) コマンドでも、GI の一覧が取得できます。

```
# nvidia-smi mig -i 0 -lgi
+----------------------------------------------------+
| GPU instances:                                     |
| GPU   Name          Profile  Instance   Placement  |
|                       ID       ID       Start:Size |
|====================================================|
|   0  MIG 1g.5gb       19        9          6:1     |
+----------------------------------------------------+
|   0  MIG 2g.10gb      14        3          4:2     |
+----------------------------------------------------+
|   0  MIG 4g.20gb       5        2          0:4     |
+----------------------------------------------------+
```

そろそろ ``nvidia-smi mig`` コマンドのパターンが読めてきましたよね？CI の一覧を取得するなら、``-lci`` (List Compute Instance) です。

```
# nvidia-smi mig -i 0 -lci
+--------------------------------------------------------------------+
| Compute instances:                                                 |
| GPU     GPU       Name             Profile   Instance   Placement  |
|       Instance                       ID        ID       Start:Size |
|         ID                                                         |
|====================================================================|
|   0      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   0      3       MIG 2g.10gb          1         0          0:2     |
+--------------------------------------------------------------------+
|   0      2       MIG 4g.20gb          3         0          0:4     |
+--------------------------------------------------------------------+
```

## GI に複数の CI を作ってみる

前述の通り、GI には複数の CI を作ることができます。同一 GI 内の複数の CI は、専用の演算器 (GPC) を持ちますが、メモリを共有しています。
例えば下の図では、4g.20gb という GI 内に、4 つの CI (1c.4g.20gb) を作っています。一つの 1c.4g.20gb は、演算器の数では 1g.5gb と一緒ですが、20GB の GPU メモリにアクセス可能です。

![4c.20gb に 4 つの CI](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32712/70b4a2b8-2343-b08e-04d3-2399ee91e464.png)


先ほどは、``nvidia mig -cgi`` に ``-C`` オプションを付けて簡単に CI を作ったので、4g.20gb にも CI が一つしかありませんでした。今度は、上の図と同じように、4g.20gb には 4 つの CI を作ってみましょうか。

### CI のプロファイルを確認

まず、作成可能なコンピュートインスタンスのプロファイルを確認してみます。はい。 ``-lcip`` (List Compute Instance Profile) です。
先ほど作った 4g.20gb の GI の GPU Instance ID は 2 なので、 ``-gi 2`` で絞り込んでみます。

```
# nvidia-smi mig -gi 2 -lcip
+--------------------------------------------------------------------------------------+
| Compute instance profiles:                                                           |
| GPU     GPU       Name             Profile  Instances   Exclusive       Shared       |
|       Instance                       ID     Free/Total     SM       DEC   ENC   OFA  |
|         ID                                                          CE    JPEG       |
|======================================================================================|
|   0      2       MIG 1c.4g.20gb       0      4/4           14        2     0     0   |
|                                                                      4     0         |
+--------------------------------------------------------------------------------------+
|   0      2       MIG 2c.4g.20gb       1      2/2           28        2     0     0   |
|                                                                      4     0         |
+--------------------------------------------------------------------------------------+
|   0      2       MIG 4g.20gb          3*     1/1           56        2     0     0   |
|                                                                      4     0         |
+--------------------------------------------------------------------------------------+
```

Profile ID が 0 の、1c.4g.20gb というのがありますね。これが、GPC を 1 個だけ使う CI のプロファイルです。これを 4 個作ってやればよいわけです。

### 既存の CI の削除

まず、既存の CI を削除します。``-gi`` で、GPU インスタンスの ID を指定して、``-dci`` (=Destroy Compute Instance) します。

```
# nvidia-smi mig -gi 2 -dci
Successfully destroyed compute instance ID  0 from GPU  0 GPU instance ID  2
```

### 新たな CI を作成

では、空っぽになった 4g.20gb の GI に、新たな CI を作ります。1c.4g.20gb の Profile ID である 0 を指定して、 ``-cci`` (Create Compute Instance) します。

```
# nvidia-smi mig -gi 2 -cci 0
Successfully created compute instance ID  0 on GPU  0 GPU instance ID  2 using profile MIG 1c.4g.20gb (ID  0)
```

とりあえず、確認してみましょう。できてますね。

```
# nvidia-smi mig -gi 2 -lci
+--------------------------------------------------------------------+
| Compute instances:                                                 |
| GPU     GPU       Name             Profile   Instance   Placement  |
|       Instance                       ID        ID       Start:Size |
|         ID                                                         |
|====================================================================|
|   0      2       MIG 1c.4g.20gb       0         0          0:1     |
+--------------------------------------------------------------------+
```

4g.20gb (GI) には 1c.4g.20gb (CI) が 4 つ作れますので、あと 3 つ作りましょう。

```
# nvidia-smi mig -gi 2 -cci 0
Successfully created compute instance ID  1 on GPU  0 GPU instance ID  2 using profile MIG 1c.4g.20gb (ID  0)
# nvidia-smi mig -gi 2 -cci 0
Successfully created compute instance ID  2 on GPU  0 GPU instance ID  2 using profile MIG 1c.4g.20gb (ID  0)
# nvidia-smi mig -gi 2 -cci 0
Successfully created compute instance ID  3 on GPU  0 GPU instance ID  2 using profile MIG 1c.4g.20gb (ID  0)
```

改めて確認、ちゃんと 4 つできましたね。

```
# nvidia-smi mig -gi 2 -lci
+--------------------------------------------------------------------+
| Compute instances:                                                 |
| GPU     GPU       Name             Profile   Instance   Placement  |
|       Instance                       ID        ID       Start:Size |
|         ID                                                         |
|====================================================================|
|   0      2       MIG 1c.4g.20gb       0         0          0:1     |
+--------------------------------------------------------------------+
|   0      2       MIG 1c.4g.20gb       0         1          1:1     |
+--------------------------------------------------------------------+
|   0      2       MIG 1c.4g.20gb       0         2          2:1     |
+--------------------------------------------------------------------+
|   0      2       MIG 1c.4g.20gb       0         3          3:1     |
+--------------------------------------------------------------------+
```

nvidia-smi -L でも確認してみます。

```
# nvidia-smi -L
GPU 0: A100-SXM4-40GB (UUID: GPU-391cab19-446b-9b97-5eca-d30416a299de)
  MIG 1c.4g.20gb Device 0: (UUID: MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/2/0)
  MIG 1c.4g.20gb Device 1: (UUID: MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/2/1)
  MIG 1c.4g.20gb Device 2: (UUID: MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/2/2)
  MIG 1c.4g.20gb Device 3: (UUID: MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/2/3)
  MIG 2g.10gb Device 4: (UUID: MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/3/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/9/0)
GPU 1: A100-SXM4-40GB (UUID: GPU-8ba56bff-d648-6313-4754-9fc3fe27255f)
GPU 2: A100-SXM4-40GB (UUID: GPU-b3d39792-5a5c-4097-d1e2-243f13876a90)
GPU 3: A100-SXM4-40GB (UUID: GPU-4a18354b-102e-afba-01b6-fc7110238d07)
GPU 4: A100-SXM4-40GB (UUID: GPU-f539233d-cae6-fa4c-62bf-374db51c0f1e)
GPU 5: A100-SXM4-40GB (UUID: GPU-e7057e65-91a2-f25e-212f-aab3c83ebf85)
GPU 6: A100-SXM4-40GB (UUID: GPU-6531d762-fc17-0c9c-7d30-0d1d63ad5e23)
GPU 7: A100-SXM4-40GB (UUID: GPU-3aa368d6-3830-bccf-2679-6edd8f282dfc)
```

これで、GI と CI をひとまず作成することができました。

# プログラムの実行

では、いよいよ MIG でプログラムを実行してみましょう。まずはシンプルに、コンテナを使わず生の Linux 上で、題材は何でも良いのですが、[MIG のユーザーガイド](https://docs.nvidia.com/datacenter/tesla/pdf/NVIDIA_MIG_User_Guide.pdf)に倣って、CUDA Toolkit に付属のサンプルプログラム BlackScholes を使います。

``/usr/local/cuda/samples/4_Finance/BlackScholes`` ディレクトリで ``sudo make`` して、ビルドします。

これを、先ほど作成した、 1c.4g.20gb と 2g.10gb で動かしてみます。``nvidia-smi -L`` で取得した UUID でいうと:

- ``1c.4g.20gb``:  MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/2/0 
- ``2g.10gb``: MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/3/0

ですね。この長ーい UUID を、おなじみの環境変数 CUDA_VISIBLE_DEVICES に設定すれば OK です。
下記のようにして、 BlackScholes を 2 プロセス動かしてみます。


```
$ CUDA_VISIBLE_DEVICES=MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/2/0 /usr/local/cuda/samples/4_Finance/BlackScholes/BlackScholes &
$ CUDA_VISIBLE_DEVICES=MIG-GPU-391cab19-446b-9b97-5eca-d30416a299de/3/0 /usr/local/cuda/samples/4_Finance/BlackScholes/BlackScholes
```

``nvidia-smi`` で確認すると、Processes 欄に、BlackScholes のプロセスと、それが動いている GI/CI 情報が表示されていますね！

```
# nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
～ 中略 ～
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0    2    0       7736      C   ...BlackScholes/BlackScholes      153MiB |
|    0    3    0       7737      C   ...BlackScholes/BlackScholes      203MiB |
+-----------------------------------------------------------------------------+
```

## コンテナでの MIG の利用

次に、NGC のコンテナイメージで MIG を使ってみましょう。DGX A100 には新しい (19.03 以降の) Docker がインストールされていますから、GPU の指定には下記のように ``--gpus`` オプションを使い、そのオプションへの引数として、 ``device={MIG の UUID}`` を付ければ OK です。

下記のコマンドで、TensorFlow コンテナ内で nvidia-smi を実行してみます。

```
# docker run --gpus device=MIG-GPU-a4139e7e-4d09-d80b-486e-030e04d3e4b1/2/0 --rm -it nvcr.io/nvidia/tensorflow:20.09-tf2-py3 nvidia-smi

================
== TensorFlow ==
================
～ 中略 ～
+-----------------------------------------------------------------------------+
| MIG devices:                                                                |
+------------------+----------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
|      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
|                  |                      |        ECC|                       |
|==================+======================+===========+=======================|
|  0    2   0   0  |     14MiB / 20096MiB | 56      0 |  4   0    2    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
```

ちゃんとコンテナ内で MIG のインスタンスが見えていますね！

しかし、この長ーい UUID を指定する方法では、複数のインスタンスを並べるのが少し大変です。そこで、もう一つの指定方法を試しましょう「``device=GPU ID:MIG Dev ID``」の形式でも指定できるのです。

例として、下記のように 2 基の A100 で MIG が有効になっており、GPU 0 には 6 つ、GPU 1 には 3 つの CI があるとしましょう。

```
+-----------------------------------------------------------------------------+
| MIG devices:                                                                |
+------------------+----------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
|      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
|                  |                      |        ECC|                       |
|==================+======================+===========+=======================|
|  0    1   0   0  |     14MiB / 20096MiB | 14      0 |  4   0    2    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+                      +-----------+-----------------------+
|  0    1   1   1  |                      | 14      0 |  4   0    2    0    0 |
|                  |                      |           |                       |
+------------------+                      +-----------+-----------------------+
|  0    1   2   2  |                      | 14      0 |  4   0    2    0    0 |
|                  |                      |           |                       |
+------------------+                      +-----------+-----------------------+
|  0    1   3   3  |                      | 14      0 |  4   0    2    0    0 |
|                  |                      |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0    5   0   4  |      7MiB /  9984MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0   13   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    2   0   0  |     14MiB / 20096MiB | 56      0 |  4   0    2    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    3   0   1  |      7MiB /  9984MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
```

この中から、以下の 4 つを選んでコンテナに指定してみます。

1. GPU 0 の MIG Dev 3 (1c.4g.20gb)
1. GPU 0 の MIG Dev 4 (2g.10gb)
1. GPU 1 の MIG Dev 0 (4g.20gb)
1. GPU 1 の MIG Dev 1 (2g.10gb)

``--gpus`` オプションへの指定方法は次のようになります。GPU ID と MIG Dev ID をコロンを挟んで連結する形式です。複数指定する際はカンマで区切ります。

```
$ docker run --gpus '"device=0:3,0:4,1:0,1:1"' --rm -it nvcr.io/nvidia/tensorflow:20.09-tf2-py3 nvidia-smi
````

なお、上記コマンド例では、クォートが二重になっていてなんだか冗長な感じですが、これには意味があります。Docker がこの文字列を解析する際に、カンマの部分で文字列をちょん切っちゃうようなので、``"device=0:3,0:4,1:0,1:1"``のように、クォート記号を含めて Docker コマンドに渡してやる必要があるのです。
``'"device=0:3,0:4,1:0,1:1"'`` は、まずシェルによって外側のシングルクォートが除去され、``"device=0:3,0:4,1:0,1:1"`` が Docker コマンドに渡ります。めでたしめでたし(?)

結果として、コンテナの中での GPU および MIG デバイスの見え方は次のようになります。

```
～ 中略 ～
+-----------------------------------------------------------------------------+
| MIG devices:                                                                |
+------------------+----------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
|      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
|                  |                      |        ECC|                       |
|==================+======================+===========+=======================|
|  0    1   3   0  |     14MiB / 20096MiB | 14      0 |  4   0    2    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0    5   0   1  |      7MiB /  9984MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    2   0   0  |     14MiB / 20096MiB | 56      0 |  4   0    2    0    0 |
|                  |      0MiB / 32767MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    3   0   1  |      7MiB /  9984MiB | 28      0 |  2   0    1    0    0 |
|                  |      0MiB / 16383MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
```

注意したいのは、 MIG Dev ID がホストで見た値とは異なっている点です。MIG Dev ID は前述の通り「今見えている GPU 内の CI に連番を振ったもの」なので、こうなります。

というわけで、ちょっと長くなってしまいましたが、これで、MIG の基本的な使い方を確認できました。

# MIG の考慮事項

さて、いろいろ便利に使えそうな MIG ですが、いくつか要注意ポイントもありますので、簡単にまとめます。

## GI と CI は揮発性

MIG の GI や CI は、稼働中に動的に作成・削除できます。この記事でも、作成した GI 内の CIをいったん削除して、より細かい CI を複数作成してみました。このように、「用途に応じてダイナミックに作り替える」のが MIG のコンセプトで、作成した GI や CI は、コンピューターを再起動すると、すべて消えてしまいます。ハイパーバイザー型仮想化における仮想マシンのような、長いライフサイクルを想定していると、面食らうことになるので、ご注意ください。
※ MIG の有効・無効の状態は、GPU の InfoROM と呼ばれる不揮発メモリに格納されますので、いったん設定するとコンピューターを再起動しても維持されます。

なお、定義ファイルに基づいて MIG のパーティションを構成する [MIG Partiton Editor](https://github.com/NVIDIA/mig-parted) と、それをサービス化する [nvidia-mig-manager サービス](https://github.com/NVIDIA/mig-parted/tree/master/deployments/systemd) を利用すると、システム起動時に MIG のインスタンスを自動作成することが可能です。

## 1 プロセス : 1 インスタンス

現在のところ、MIG が有効な環境の CUDA プログラム上で GPU のリストを取得すると、たとえ環境に複数の GPU が存在しても、先頭のデバイスしか取得できません。言い換えると、シングルプロセスでマルチ GPU の処理は実行できません。先ほど、BlackScholes のプログラム自体を複数動かしたように、複数のプロセスを起動し、それぞれに別の MIG デバイスを指定することで、複数の MIG デバイスを活用することができます。

この制限に関して、詳しくはユーザーガイドの [CUDA Device Enumeration](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/index.html#cuda-visible-devices) 節をご覧ください。
一部、引用しておきます。

> With CUDA 11, only enumeration of a single MIG instance is supported.

<中略>

> CUDA is limited to use a single CI and will pick the first one available if several of them are visible.
> To summarize, there are two constraints:
> 1. CUDA can only enumerate a single compute instance
> 2. CUDA will not enumerate non-MIG GPU if any compute instance is enumerated on any other GPU

## GPU 使用率のモニタリング

下記の通り、MIG を有効にした GPU では、nvidia-smi で表示される GPU 使用率が "N/A" となってしまいます。

```
# nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  A100-SXM4-40GB      On   | 00000000:07:00.0 Off |                   On |
| N/A   31C    P0    69W / 400W |      0MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
```

これはちょっと困った制限なのですが、[NVIDIA DCGM](https://developer.nvidia.com/dcgm) を使うと、MIG インスタンスの活動状況を取得することができます。
DCGM を使う簡単な方法は、コマンドラインツールの dcgmi を使うことで、 DGX A100 にはこれが標準でインストールされています。やったね！

DCGM に関して、詳しくは稿を改めて紹介しようと思いますが、ここではごく簡単にコマンドの例だけお伝えします。``dcgmi dmon`` サブコマンドに、 ``-i`` オプションで対象 GPU デバイスを、そして ``-e`` オプションで、収集対象のメトリクスを指定します。

```
$ dcgmi dmon -i 0/4/0 -e 100,113,150,155,203,1001,1002,1003,1004,1006,1007,1008
# Entity  SMCLK  SMMAX  TMPTR       POWER       GPUTL  GRACT  SMACT  SMOCC  TENSO  FP64A  FP32A  FP16A
      Id                    C           W
    GPU 0   1410   1410     37     138.545         N/A  0.105  0.103  0.043  0.022  0.000  0.017  0.002
    GPU 0   1410   1410     36     122.252         N/A  0.111  0.107  0.047  0.022  0.000  0.017  0.003
    GPU 0   1410   1410     37     138.545         N/A  0.105  0.102  0.043  0.022  0.000  0.017  0.002
    GPU 0   1410   1410     36      86.032         N/A  0.111  0.107  0.047  0.023  0.000  0.017  0.003
    GPU 0   1410   1410     37     136.407         N/A  0.105  0.101  0.043  0.022  0.000  0.017  0.002
```

上記コマンド例では、 ``-i`` オプションに "0/4/0" を指定していますが、これは、

- GPU ID: 0 の
  - GPU Instance ID: 4 の、
     - Compute Instance ID: 0 

という意味です。直感的ですよね！

``-e`` オプションには、わかりやすい文字列ではなく Field ID を指定しなければならず、そしてこの Field ID は 360 種類以上あってなかなかフクザツなのですが、とりあえず、先ほどのコマンド例で指定している以下の ID あたりは使いやすいと思います。

- 100: sm_clock
- 113: sm_max_clock
- 150: gpu_temp
- 155: power_usage
- 203: gpu_utilization (MIG では値なし)
- 1001: gr_engine_active
- 1002: sm_active
- 1003: sm_occupancy
- 1004: tensor_active
- 1006: fp64_active
- 1007: fp32_active
- 1008: fp16_active

※ 完全な Field ID のリストは、 ``dcgmi dmon --list`` で得られます。

# まとめ

- MIG は NVIDIA A100 GPU の物理分割機構です。
- MIG 自体の有効・無効は GPU 1基ごとに個別設定可能です。
- MIG は GPU インスタンス (GI) とコンピュート インスタンス (CI) の 2 段階の構成要素からなります。
- GI や CI は動的に構成可能。用途に応じて柔軟に形を変えられます。
- 環境変数 CUDA_VISIBLE_DEVICES や、 Docker の --gpus オプションで、利用する MIG デバイスを指定可能です。
- 現時点では、1 プロセスあたり、1 つの MIG デバイスだけ使えます。複数のデバイスは、マルチプロセスで活用してください。
- MIG 環境では、nvidia-smi で GPU 使用率が見えません！DCGM を使いましょう。

DGX A100 をちょっと真面目に試してみたくなったら「[NVIDIA DGX A100 TRY & BUY プログラム](https://www.gdep.co.jp/information/campaign/dgx-a100-trybuy/)」へ GO！

# 関連情報 
[DGX A100 System User Guide](https://docs.nvidia.com/dgx/dgxa100-user-guide/index.html)
[NVIDIA Multi-Instance GPU User Guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/index.html)
[Data Center GPU Manager User Guide](https://docs.nvidia.com/datacenter/dcgm/latest/dcgm-user-guide/index.html)
[NVIDIA Docker って今どうなってるの？ (20.09 版)](https://medium.com/nvidiajapan/nvidia-docker-%E3%81%A3%E3%81%A6%E4%BB%8A%E3%81%A9%E3%81%86%E3%81%AA%E3%81%A3%E3%81%A6%E3%82%8B%E3%81%AE-20-09-%E7%89%88-558fae883f44)

# おまけ: 56 x 1g.5gb

長ーくなってしまうので、最後に持ってきましたが、DGX A100 に搭載されている 8 基の A100 GPU すべてで MIG を有効にし、「一番細かく刻んだ」、つまり 1g.5gb が 56 個ある状態での nvidia-smi の出力、こんな感じです。

## nvidia-smi

```
# nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  A100-SXM4-40GB      On   | 00000000:10:1C.0 Off |                   On |
| N/A   28C    P0    41W / 400W |     25MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   1  A100-SXM4-40GB      On   | 00000000:10:1D.0 Off |                   On |
| N/A   28C    P0    38W / 400W |     25MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   2  A100-SXM4-40GB      On   | 00000000:20:1C.0 Off |                   On |
| N/A   28C    P0    41W / 400W |     25MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   3  A100-SXM4-40GB      On   | 00000000:20:1D.0 Off |                   On |
| N/A   28C    P0    41W / 400W |     25MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   4  A100-SXM4-40GB      On   | 00000000:90:1C.0 Off |                   On |
| N/A   29C    P0    42W / 400W |     25MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   5  A100-SXM4-40GB      On   | 00000000:90:1D.0 Off |                   On |
| N/A   30C    P0    41W / 400W |     25MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   6  A100-SXM4-40GB      On   | 00000000:A0:1C.0 Off |                   On |
| N/A   30C    P0    40W / 400W |     25MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+
|   7  A100-SXM4-40GB      On   | 00000000:A0:1D.0 Off |                   On |
| N/A   29C    P0    42W / 400W |     25MiB / 40537MiB |     N/A      Default |
|                               |                      |              Enabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| MIG devices:                                                                |
+------------------+----------------------+-----------+-----------------------+
| GPU  GI  CI  MIG |         Memory-Usage |        Vol|         Shared        |
|      ID  ID  Dev |           BAR1-Usage | SM     Unc| CE  ENC  DEC  OFA  JPG|
|                  |                      |        ECC|                       |
|==================+======================+===========+=======================|
|  0    7   0   0  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0    8   0   1  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0   11   0   3  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0   12   0   4  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0   13   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  0   14   0   6  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    7   0   0  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    8   0   1  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1   10   0   3  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1   11   0   4  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1   12   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  1   13   0   6  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2    7   0   0  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2    8   0   1  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2   10   0   3  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2   11   0   4  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2   12   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  2   13   0   6  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3    7   0   0  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3    8   0   1  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3   10   0   3  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3   11   0   4  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3   12   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  3   13   0   6  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  4    7   0   0  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  4    8   0   1  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  4    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  4   10   0   3  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  4   11   0   4  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  4   12   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  4   13   0   6  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  5    7   0   0  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  5    8   0   1  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  5    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  5   11   0   3  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  5   12   0   4  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  5   13   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  5   14   0   6  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  6    7   0   0  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  6    8   0   1  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  6    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  6   11   0   3  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  6   12   0   4  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  6   13   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  6   14   0   6  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  7    7   0   0  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  7    8   0   1  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  7    9   0   2  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  7   10   0   3  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  7   11   0   4  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  7   12   0   5  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+
|  7   13   0   6  |      3MiB /  4864MiB | 14      0 |  1   0    0    0    0 |
|                  |      0MiB /  8191MiB |           |                       |
+------------------+----------------------+-----------+-----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
```

## nvidia-smi -L

```
# nvidia-smi -L
GPU 0: A100-SXM4-40GB (UUID: GPU-7f965474-fdf7-85c6-5b7c-f05d43ec9fb5)
  MIG 1g.5gb Device 0: (UUID: MIG-GPU-7f965474-fdf7-85c6-5b7c-f05d43ec9fb5/7/0)
  MIG 1g.5gb Device 1: (UUID: MIG-GPU-7f965474-fdf7-85c6-5b7c-f05d43ec9fb5/8/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-7f965474-fdf7-85c6-5b7c-f05d43ec9fb5/9/0)
  MIG 1g.5gb Device 3: (UUID: MIG-GPU-7f965474-fdf7-85c6-5b7c-f05d43ec9fb5/11/0)
  MIG 1g.5gb Device 4: (UUID: MIG-GPU-7f965474-fdf7-85c6-5b7c-f05d43ec9fb5/12/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-7f965474-fdf7-85c6-5b7c-f05d43ec9fb5/13/0)
  MIG 1g.5gb Device 6: (UUID: MIG-GPU-7f965474-fdf7-85c6-5b7c-f05d43ec9fb5/14/0)
GPU 1: A100-SXM4-40GB (UUID: GPU-e69fc8e1-1d2b-ec03-727e-6f86acdd89fe)
  MIG 1g.5gb Device 0: (UUID: MIG-GPU-e69fc8e1-1d2b-ec03-727e-6f86acdd89fe/7/0)
  MIG 1g.5gb Device 1: (UUID: MIG-GPU-e69fc8e1-1d2b-ec03-727e-6f86acdd89fe/8/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-e69fc8e1-1d2b-ec03-727e-6f86acdd89fe/9/0)
  MIG 1g.5gb Device 3: (UUID: MIG-GPU-e69fc8e1-1d2b-ec03-727e-6f86acdd89fe/10/0)
  MIG 1g.5gb Device 4: (UUID: MIG-GPU-e69fc8e1-1d2b-ec03-727e-6f86acdd89fe/11/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-e69fc8e1-1d2b-ec03-727e-6f86acdd89fe/12/0)
  MIG 1g.5gb Device 6: (UUID: MIG-GPU-e69fc8e1-1d2b-ec03-727e-6f86acdd89fe/13/0)
GPU 2: A100-SXM4-40GB (UUID: GPU-336c0e69-cc08-745b-919f-654c58739264)
  MIG 1g.5gb Device 0: (UUID: MIG-GPU-336c0e69-cc08-745b-919f-654c58739264/7/0)
  MIG 1g.5gb Device 1: (UUID: MIG-GPU-336c0e69-cc08-745b-919f-654c58739264/8/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-336c0e69-cc08-745b-919f-654c58739264/9/0)
  MIG 1g.5gb Device 3: (UUID: MIG-GPU-336c0e69-cc08-745b-919f-654c58739264/10/0)
  MIG 1g.5gb Device 4: (UUID: MIG-GPU-336c0e69-cc08-745b-919f-654c58739264/11/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-336c0e69-cc08-745b-919f-654c58739264/12/0)
  MIG 1g.5gb Device 6: (UUID: MIG-GPU-336c0e69-cc08-745b-919f-654c58739264/13/0)
GPU 3: A100-SXM4-40GB (UUID: GPU-30464763-777b-6cc6-9520-7cd692f76caf)
  MIG 1g.5gb Device 0: (UUID: MIG-GPU-30464763-777b-6cc6-9520-7cd692f76caf/7/0)
  MIG 1g.5gb Device 1: (UUID: MIG-GPU-30464763-777b-6cc6-9520-7cd692f76caf/8/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-30464763-777b-6cc6-9520-7cd692f76caf/9/0)
  MIG 1g.5gb Device 3: (UUID: MIG-GPU-30464763-777b-6cc6-9520-7cd692f76caf/10/0)
  MIG 1g.5gb Device 4: (UUID: MIG-GPU-30464763-777b-6cc6-9520-7cd692f76caf/11/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-30464763-777b-6cc6-9520-7cd692f76caf/12/0)
  MIG 1g.5gb Device 6: (UUID: MIG-GPU-30464763-777b-6cc6-9520-7cd692f76caf/13/0)
GPU 4: A100-SXM4-40GB (UUID: GPU-f30e3e80-31aa-0d7e-cba6-7f8ba6a183cc)
  MIG 1g.5gb Device 0: (UUID: MIG-GPU-f30e3e80-31aa-0d7e-cba6-7f8ba6a183cc/7/0)
  MIG 1g.5gb Device 1: (UUID: MIG-GPU-f30e3e80-31aa-0d7e-cba6-7f8ba6a183cc/8/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-f30e3e80-31aa-0d7e-cba6-7f8ba6a183cc/9/0)
  MIG 1g.5gb Device 3: (UUID: MIG-GPU-f30e3e80-31aa-0d7e-cba6-7f8ba6a183cc/10/0)
  MIG 1g.5gb Device 4: (UUID: MIG-GPU-f30e3e80-31aa-0d7e-cba6-7f8ba6a183cc/11/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-f30e3e80-31aa-0d7e-cba6-7f8ba6a183cc/12/0)
  MIG 1g.5gb Device 6: (UUID: MIG-GPU-f30e3e80-31aa-0d7e-cba6-7f8ba6a183cc/13/0)
GPU 5: A100-SXM4-40GB (UUID: GPU-76906707-811a-5ae0-d6b8-36ea5af5f9f9)
  MIG 1g.5gb Device 0: (UUID: MIG-GPU-76906707-811a-5ae0-d6b8-36ea5af5f9f9/7/0)
  MIG 1g.5gb Device 1: (UUID: MIG-GPU-76906707-811a-5ae0-d6b8-36ea5af5f9f9/8/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-76906707-811a-5ae0-d6b8-36ea5af5f9f9/9/0)
  MIG 1g.5gb Device 3: (UUID: MIG-GPU-76906707-811a-5ae0-d6b8-36ea5af5f9f9/11/0)
  MIG 1g.5gb Device 4: (UUID: MIG-GPU-76906707-811a-5ae0-d6b8-36ea5af5f9f9/12/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-76906707-811a-5ae0-d6b8-36ea5af5f9f9/13/0)
  MIG 1g.5gb Device 6: (UUID: MIG-GPU-76906707-811a-5ae0-d6b8-36ea5af5f9f9/14/0)
GPU 6: A100-SXM4-40GB (UUID: GPU-96c022b2-3415-fd87-c3a7-190df923366e)
  MIG 1g.5gb Device 0: (UUID: MIG-GPU-96c022b2-3415-fd87-c3a7-190df923366e/7/0)
  MIG 1g.5gb Device 1: (UUID: MIG-GPU-96c022b2-3415-fd87-c3a7-190df923366e/8/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-96c022b2-3415-fd87-c3a7-190df923366e/9/0)
  MIG 1g.5gb Device 3: (UUID: MIG-GPU-96c022b2-3415-fd87-c3a7-190df923366e/11/0)
  MIG 1g.5gb Device 4: (UUID: MIG-GPU-96c022b2-3415-fd87-c3a7-190df923366e/12/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-96c022b2-3415-fd87-c3a7-190df923366e/13/0)
  MIG 1g.5gb Device 6: (UUID: MIG-GPU-96c022b2-3415-fd87-c3a7-190df923366e/14/0)
GPU 7: A100-SXM4-40GB (UUID: GPU-8aa52044-5af0-51ee-9c76-aa396416b78c)
  MIG 1g.5gb Device 0: (UUID: MIG-GPU-8aa52044-5af0-51ee-9c76-aa396416b78c/7/0)
  MIG 1g.5gb Device 1: (UUID: MIG-GPU-8aa52044-5af0-51ee-9c76-aa396416b78c/8/0)
  MIG 1g.5gb Device 2: (UUID: MIG-GPU-8aa52044-5af0-51ee-9c76-aa396416b78c/9/0)
  MIG 1g.5gb Device 3: (UUID: MIG-GPU-8aa52044-5af0-51ee-9c76-aa396416b78c/10/0)
  MIG 1g.5gb Device 4: (UUID: MIG-GPU-8aa52044-5af0-51ee-9c76-aa396416b78c/11/0)
  MIG 1g.5gb Device 5: (UUID: MIG-GPU-8aa52044-5af0-51ee-9c76-aa396416b78c/12/0)
  MIG 1g.5gb Device 6: (UUID: MIG-GPU-8aa52044-5af0-51ee-9c76-aa396416b78c/13/0)
```

## nvidia-smi mig -lgi

```
# nvidia-smi mig -lgi
+----------------------------------------------------+
| GPU instances:                                     |
| GPU   Name          Profile  Instance   Placement  |
|                       ID       ID       Start:Size |
|====================================================|
|   0  MIG 1g.5gb       19        7          4:1     |
+----------------------------------------------------+
|   0  MIG 1g.5gb       19        8          5:1     |
+----------------------------------------------------+
|   0  MIG 1g.5gb       19        9          6:1     |
+----------------------------------------------------+
|   0  MIG 1g.5gb       19       11          0:1     |
+----------------------------------------------------+
|   0  MIG 1g.5gb       19       12          1:1     |
+----------------------------------------------------+
|   0  MIG 1g.5gb       19       13          2:1     |
+----------------------------------------------------+
|   0  MIG 1g.5gb       19       14          3:1     |
+----------------------------------------------------+
|   1  MIG 1g.5gb       19        7          0:1     |
+----------------------------------------------------+
|   1  MIG 1g.5gb       19        8          1:1     |
+----------------------------------------------------+
|   1  MIG 1g.5gb       19        9          2:1     |
+----------------------------------------------------+
|   1  MIG 1g.5gb       19       10          3:1     |
+----------------------------------------------------+
|   1  MIG 1g.5gb       19       11          4:1     |
+----------------------------------------------------+
|   1  MIG 1g.5gb       19       12          5:1     |
+----------------------------------------------------+
|   1  MIG 1g.5gb       19       13          6:1     |
+----------------------------------------------------+
|   2  MIG 1g.5gb       19        7          0:1     |
+----------------------------------------------------+
|   2  MIG 1g.5gb       19        8          1:1     |
+----------------------------------------------------+
|   2  MIG 1g.5gb       19        9          2:1     |
+----------------------------------------------------+
|   2  MIG 1g.5gb       19       10          3:1     |
+----------------------------------------------------+
|   2  MIG 1g.5gb       19       11          4:1     |
+----------------------------------------------------+
|   2  MIG 1g.5gb       19       12          5:1     |
+----------------------------------------------------+
|   2  MIG 1g.5gb       19       13          6:1     |
+----------------------------------------------------+
|   3  MIG 1g.5gb       19        7          0:1     |
+----------------------------------------------------+
|   3  MIG 1g.5gb       19        8          1:1     |
+----------------------------------------------------+
|   3  MIG 1g.5gb       19        9          2:1     |
+----------------------------------------------------+
|   3  MIG 1g.5gb       19       10          3:1     |
+----------------------------------------------------+
|   3  MIG 1g.5gb       19       11          4:1     |
+----------------------------------------------------+
|   3  MIG 1g.5gb       19       12          5:1     |
+----------------------------------------------------+
|   3  MIG 1g.5gb       19       13          6:1     |
+----------------------------------------------------+
|   4  MIG 1g.5gb       19        7          0:1     |
+----------------------------------------------------+
|   4  MIG 1g.5gb       19        8          1:1     |
+----------------------------------------------------+
|   4  MIG 1g.5gb       19        9          2:1     |
+----------------------------------------------------+
|   4  MIG 1g.5gb       19       10          3:1     |
+----------------------------------------------------+
|   4  MIG 1g.5gb       19       11          4:1     |
+----------------------------------------------------+
|   4  MIG 1g.5gb       19       12          5:1     |
+----------------------------------------------------+
|   4  MIG 1g.5gb       19       13          6:1     |
+----------------------------------------------------+
|   5  MIG 1g.5gb       19        7          4:1     |
+----------------------------------------------------+
|   5  MIG 1g.5gb       19        8          5:1     |
+----------------------------------------------------+
|   5  MIG 1g.5gb       19        9          6:1     |
+----------------------------------------------------+
|   5  MIG 1g.5gb       19       11          0:1     |
+----------------------------------------------------+
|   5  MIG 1g.5gb       19       12          1:1     |
+----------------------------------------------------+
|   5  MIG 1g.5gb       19       13          2:1     |
+----------------------------------------------------+
|   5  MIG 1g.5gb       19       14          3:1     |
+----------------------------------------------------+
|   6  MIG 1g.5gb       19        7          4:1     |
+----------------------------------------------------+
|   6  MIG 1g.5gb       19        8          5:1     |
+----------------------------------------------------+
|   6  MIG 1g.5gb       19        9          6:1     |
+----------------------------------------------------+
|   6  MIG 1g.5gb       19       11          0:1     |
+----------------------------------------------------+
|   6  MIG 1g.5gb       19       12          1:1     |
+----------------------------------------------------+
|   6  MIG 1g.5gb       19       13          2:1     |
+----------------------------------------------------+
|   6  MIG 1g.5gb       19       14          3:1     |
+----------------------------------------------------+
|   7  MIG 1g.5gb       19        7          0:1     |
+----------------------------------------------------+
|   7  MIG 1g.5gb       19        8          1:1     |
+----------------------------------------------------+
|   7  MIG 1g.5gb       19        9          2:1     |
+----------------------------------------------------+
|   7  MIG 1g.5gb       19       10          3:1     |
+----------------------------------------------------+
|   7  MIG 1g.5gb       19       11          4:1     |
+----------------------------------------------------+
|   7  MIG 1g.5gb       19       12          5:1     |
+----------------------------------------------------+
|   7  MIG 1g.5gb       19       13          6:1     |
+----------------------------------------------------+
```

## nvidia-smi mig -lci

```
# nvidia-smi mig -lci
+--------------------------------------------------------------------+
| Compute instances:                                                 |
| GPU     GPU       Name             Profile   Instance   Placement  |
|       Instance                       ID        ID       Start:Size |
|         ID                                                         |
|====================================================================|
|   0      7       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   0      8       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   0      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   0     11       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   0     12       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   0     13       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   0     14       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   1      7       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   1      8       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   1      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   1     10       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   1     11       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   1     12       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   1     13       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   2      7       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   2      8       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   2      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   2     10       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   2     11       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   2     12       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   2     13       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   3      7       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   3      8       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   3      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   3     10       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   3     11       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   3     12       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   3     13       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   4      7       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   4      8       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   4      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   4     10       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   4     11       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   4     12       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   4     13       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   5      7       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   5      8       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   5      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   5     11       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   5     12       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   5     13       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   5     14       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   6      7       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   6      8       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   6      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   6     11       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   6     12       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   6     13       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   6     14       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   7      7       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   7      8       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   7      9       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   7     10       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   7     11       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   7     12       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
|   7     13       MIG 1g.5gb           0         0          0:1     |
+--------------------------------------------------------------------+
```

Enjoy DGX!