- 印刷する
- PDF
KVM GPU
- 印刷する
- PDF
VPC環境で利用できます。
NAVERクラウドプラットフォームで作成した GPU A100サーバを点検する方法について説明します。
GPUドライバと必須ソフトウェア
サーバの GPUドライバと必要なソフトウェアを点検します。詳細な点検要素は、次の通りです。
ドライババージョンの確認
GPUドライバのバージョンを確認するには、nvidia-smi
コマンドを入力します。
- 正常にインストールされたドライバのバージョンと、認識された GPUカードモデルおよび数を確認できます。
# nvidia-smi
Thu Nov 10 10:01:36 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.82.01 Driver Version: 470.82.01 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| 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 NVIDIA A100-SXM... On | 00000000:07:00.0 Off | 0 |
| N/A 30C P0 62W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100-SXM... On | 00000000:0A:00.0 Off | 0 |
| N/A 28C P0 62W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 2 NVIDIA A100-SXM... On | 00000000:45:00.0 Off | 0 |
| N/A 28C P0 61W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 3 NVIDIA A100-SXM... On | 00000000:4B:00.0 Off | 0 |
| N/A 31C P0 61W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 4 NVIDIA A100-SXM... On | 00000000:83:00.0 Off | 0 |
| N/A 32C P0 64W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 5 NVIDIA A100-SXM... On | 00000000:89:00.0 Off | 0 |
| N/A 28C P0 63W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 6 NVIDIA A100-SXM... On | 00000000:BF:00.0 Off | 0 |
| N/A 28C P0 61W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 7 NVIDIA A100-SXM... On | 00000000:C2:00.0 Off | 0 |
| N/A 31C P0 64W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
現在、GPU A100に提供しているドライバのバージョンは470.82.01です。
CUDAバージョンの確認
CUDAドライバのバージョンを確認するには、nvcc --version
コマンドを入力します。
- CUDA Toolkitのバージョンを確認できます。
# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Wed_Jun__2_19:15:15_PDT_2021
Cuda compilation tools, release 11.4, V11.4.48
Build cuda_11.4.r11.4/compiler.30033411_0
NVIDIAドライバと CUDAを再インストールするには、次のガイドに従って手動でインストールします。
現在、GPU A100に提供している CUDAのバージョンは11.4です。
Dockerと NVIDIA-Dockerの確認
Dockerと NVIDIA-Dockerの正常動作有無を確認するには、次のコマンドを入力します。
docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
パブリック IPアドレスが割り当てられている必要があります。
# docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
Unable to find image 'nvidia/cuda:11.6.2-base-ubuntu20.04' locally
11.6.2-base-ubuntu20.04: Pulling from nvidia/cuda
eaead16dc43b: Pull complete
cb69caf25724: Pull complete
3a665e403616: Pull complete
bcf9a52c75ac: Pull complete
8941157b58ad: Pull complete
Digest: sha256:a3665dcde87552d805bab89371ce6477aef472758e5b46a16189884bd1ab601c
Status: Downloaded newer image for nvidia/cuda:11.6.2-base-ubuntu20.04
Mon Nov 14 02:55:18 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.82.01 Driver Version: 470.82.01 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| 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 NVIDIA A100-SXM... On | 00000000:07:00.0 Off | 0 |
| N/A 29C P0 61W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100-SXM... On | 00000000:0A:00.0 Off | 0 |
| N/A 27C P0 60W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 2 NVIDIA A100-SXM... On | 00000000:45:00.0 Off | 0 |
| N/A 28C P0 62W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 3 NVIDIA A100-SXM... On | 00000000:4B:00.0 Off | 0 |
| N/A 30C P0 61W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 4 NVIDIA A100-SXM... On | 00000000:83:00.0 Off | 0 |
| N/A 30C P0 64W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 5 NVIDIA A100-SXM... On | 00000000:89:00.0 Off | 0 |
| N/A 27C P0 62W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 6 NVIDIA A100-SXM... On | 00000000:BF:00.0 Off | 0 |
| N/A 27C P0 61W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 7 NVIDIA A100-SXM... On | 00000000:C2:00.0 Off | 0 |
| N/A 30C P0 60W / 400W | 0MiB / 81251MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
必要デーモン(nvidia-fabricmanager、nv_peer_mem)の確認
必要なデーモン(nvidia-fabricmanager、nv_peer_mem)を確認するには、次のコマンドを入力して Active項目が active(running)
に表示されているか確認します。
# systemctl status nvidia-fabricmanager.service
● nvidia-fabricmanager.service - NVIDIA fabric manager service
Loaded: loaded (/usr/lib/systemd/system/nvidia-fabricmanager.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-11-08 18:23:34 KST; 38min ago
Process: 2636 ExecStart=/usr/bin/nv-fabricmanager -c /usr/share/nvidia/nvswitch/fabricmanager.cfg (code=exited, status=0/SUCCESS)
Main PID: 2690 (nv-fabricmanage)
Tasks: 18
Memory: 11.4M
CGroup: /system.slice/nvidia-fabricmanager.service
└─2690 /usr/bin/nv-fabricmanager -c /usr/share/nvidia/nvswitch/fabricmanager.cfg
Nov 08 18:23:24 s1845661cd3b systemd[1]: Starting NVIDIA fabric manager service...
Nov 08 18:23:34 s1845661cd3b nv-fabricmanager[2690]: Successfully configured all the available GPUs and NVSwitches.
Nov 08 18:23:34 s1845661cd3b systemd[1]: Started NVIDIA fabric manager service.
# systemctl status nv_peer_mem.service
● nv_peer_mem.service - LSB: Activates/Deactivates nv_peer_mem module to start at boot time.
Loaded: loaded (/etc/rc.d/init.d/nv_peer_mem; bad; vendor preset: disabled)
Active: active (exited) since Tue 2022-11-08 18:23:19 KST; 39min ago
Docs: man:systemd-sysv-generator(8)
Process: 2048 ExecStart=/etc/rc.d/init.d/nv_peer_mem start (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
Nov 08 18:23:19 s1845661cd3b systemd[1]: Starting LSB: Activates/Deactivates nv_peer_mem module to start at boot time....
Nov 08 18:23:19 s1845661cd3b nv_peer_mem[2048]: starting... OK
Nov 08 18:23:19 s1845661cd3b systemd[1]: Started LSB: Activates/Deactivates nv_peer_mem module to start at boot time..
NVLinkトポロジーの確認
NVLinkトポロジーの正常有無を確認するには、nvidia-smi topo -m
コマンドを入力して GPU間の NVLink接続状態を確認します。
- NVLinkが正常に初期化された場合、GPU間の NVLink情報は
NV12
で表示されます。 - GPU間の接続が
SYS
と表示される場合、nvidia-fabricmanagerサービスが正常にロードされているかご確認ください。
# nvidia-smi topo -m
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 mlx5_0 mlx5_1 CPU Affinity NUMA Affinity
GPU0 X NV12 NV12 NV12 NV12 NV12 NV12 NV12 PXB SYS 0-63 N/A
GPU1 NV12 X NV12 NV12 NV12 NV12 NV12 NV12 PXB SYS 0-63 N/A
GPU2 NV12 NV12 X NV12 NV12 NV12 NV12 NV12 SYS SYS 0-63 N/A
GPU3 NV12 NV12 NV12 X NV12 NV12 NV12 NV12 SYS SYS 0-63 N/A
GPU4 NV12 NV12 NV12 NV12 X NV12 NV12 NV12 SYS SYS 0-63 N/A
GPU5 NV12 NV12 NV12 NV12 NV12 X NV12 NV12 SYS SYS 0-63 N/A
GPU6 NV12 NV12 NV12 NV12 NV12 NV12 X NV12 SYS PXB 0-63 N/A
GPU7 NV12 NV12 NV12 NV12 NV12 NV12 NV12 X SYS PXB 0-63 N/A
mlx5_0 PXB PXB SYS SYS SYS SYS SYS SYS X SYS
mlx5_1 SYS SYS SYS SYS SYS SYS PXB PXB SYS X
Infiniband
Infinibandとは、高性能コンピューティングで使用される標準的なネットワーク通信技術で、高帯域幅と低遅延というメリットがあります。
GPU A100サーバ間の通信に使用されるため、必ず点検が必要です。Infinibandの点検方法は、次の通りです。
1. サーバ間の Infiniband通信のための準備
サーバ間の Infiniband通信のために準備する内容は、次の通りです。
- GPU A100は、2つの200Gb/秒の Infiniband HDR接続により、合計400Gbpsの帯域幅を提供します。
- Infiniband接続を使用するには、通信を希望するすべてのサーバが Cluster Modeに設定されている必要があります。 Fabric Cluster メニューで新規クラスタを作成するか、作成されたクラスタに希望するサーバを含めます。詳しい設定方法は、Fabric Clusterをご参照ください。
2. Infiniband接続状態の確認
Infinibandの接続状態を確認するには、ibstat
コマンドを入力してサーバに接続されている Infinibandポートの状態を確認します。
Physical state
項目はLinkUp
、State
項目はActive
が正常状態です。- サーバの起動直後、しばらくの間
Physical state
項目がPolling
状態として表示されることがありますが、これは接続を確立する過程で正常です。 Rate
は200
と表示される必要があります。
[root@test01 ~]# ibstat
CA 'mlx5_0'
CA type: MT4123
Number of ports: 1
Firmware version: 20.30.1004
Hardware version: 0
Node GUID: 0x1070fd03005feb0c
System image GUID: 0x1070fd03005feb0c
Port 1:
State: Active
Physical state: LinkUp
Rate: 200
Base lid: 65
LMC: 0
SM lid: 14
Capability mask: 0x2651e848
Port GUID: 0x1070fd03005feb0c
Link layer: InfiniBand
CA 'mlx5_1'
CA type: MT4123
Number of ports: 1
Firmware version: 20.30.1004
Hardware version: 0
Node GUID: 0x1070fd03005feb58
System image GUID: 0x1070fd03005feb58
Port 1:
State: Active
Physical state: LinkUp
Rate: 200
Base lid: 64
LMC: 0
SM lid: 14
Capability mask: 0x2651e848
Port GUID: 0x1070fd03005feb58
Link layer: InfiniBand
3. 通信テスト
サーバ間の Infiniband通信は ibping
でテストすることができ、データをやり取りする Clientと Serverロールの両方のサーバを駆動する必要があります。
まず、データを受け取る Serverロールのサーバの LID情報を確認した後、ibping
テストを行います。
3-1. LID情報確認
Serverロールのサーバでibstat
コマンドを入力し、mlx5_0と mlx5_1の LID情報を確認します。
[root@test01 ~]# ibstat mlx5_0 | grep 'Base lid'
Base lid: 210
[root@test01 ~]# ibstat mlx5_1 | grep 'Base lid'
Base lid: 209
3-2. mlx5_0テスト
mlx5_0テストを行う方法は、次の通りです。
- Serverロールのサーバで
ibping -S -C mlx5_0
コマンドを実行します。 - Clientロールのサーバで
ibping -c5 -C mlx5_0 -L
{確認された mlx5_0 LID値}コマンドを実行します。- 正常な場合、次のようにすべての pingパケットに対するレスポンスが正常に受信されます。
root@test02:~# ibping -c5 -C mlx5_0 -L 210 Pong from test01.(none) (Lid 210): time 0.027 ms Pong from test01.(none) (Lid 210): time 0.013 ms Pong from test01.(none) (Lid 210): time 0.012 ms Pong from test01.(none) (Lid 210): time 0.017 ms Pong from test01.(none) (Lid 210): time 0.013 ms --- test01.(none) (Lid 210) ibping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 5000 ms rtt min/avg/max = 0.012/0.016/0.027 ms
3-3. mlx5_1テスト
mlx5_0テストを行う方法は、次の通りです。
- Serverロールのサーバで
ibping -S -C mlx5_1
コマンドを実行します。 - Clientロールのサーバで
ibping -c5 -C mlx5_1 -L
{確認された mlx5_1 LID値}コマンドを実行します。- 正常な場合、次のようにすべての pingパケットに対するレスポンスが正常に受信されます。
root@test02~# ibping -c5 -C mlx5_1 -L 209 Pong from test01.(none) (Lid 209): time 0.024 ms Pong from test01.(none) (Lid 209): time 0.013 ms Pong from test01.(none) (Lid 209): time 0.009 ms Pong from test01.(none) (Lid 209): time 0.009 ms Pong from test01.(none) (Lid 209): time 0.014 ms --- test01.(none) (Lid 209) ibping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 5000 ms rtt min/avg/max = 0.009/0.013/0.024 ms
3-4. IP over Infiniband(IPoIB)の設定
NVIDIAの IPoIB設定ガイドを参照して IPoIBの設定を行います。