KVM GPU

Prev Next

VPC環境で利用できます。

NAVERクラウドプラットフォームコンソールで KVMベース GPUサーバを作成して管理する方法について説明します。

参考
  • 予期せぬサーバ障害または予定された変更タスクなどの際に、中断せずにサービスを継続する保障ができるよう、サーバは基本的にゾーン間の冗長化構成をお勧めします。Load Balancer の概要を参照して冗長化設定を行います。
  • NAVERクラウドプラットフォームでは、メモリ、CPU、電源供給などの物理サーバの障害に備えるため、High Availability(HA)構造を提供しています。HAは、ハードウェアで発生した障害が Virtual Machine(VM)サーバに拡大されることを防ぐためのポリシーで、ホストサーバに障害が発生した場合、自動的にホストサーバの中にある VMサーバを安定した他のホストサーバに移す Live Migrationをサポートします。ただし、Live Migrationを行えないエラーが発生した場合、VMサーバは再起動します。VMサーバ1台でサービスを運用する場合、VMサーバの再起動により障害が発生し得るため、障害の発生頻度を減らすために上記のように VMサーバを冗長化することをお勧めします。

サーバ情報の確認

GPUサーバ情報を確認する方法は、一般サーバ情報を確認する方法と同じです。詳細は、サーバ情報確認をご参照ください。

注意
  • GPUサーバは、停止中も全体サーバ料金が発生します。

GPUサーバ作成

GPUサーバはコンソール VPC環境の i_menu > Services > Compute > Serverメニューから作成できます。詳しい作成方法は、サーバ作成をご参照ください。

参考
  • GPUサーバは、ドライバと関連ソフトウェアが事前にインストールされた NCP GPUイメージを使用できます。
  • GPUタイプ別に作成可能な Regionは、以下の表をご参照ください。
GPUタイプ Region
NVIDIA A100 KR-1
NVIDIA L4 KR-1, KR-2
NVIDIA L40S KR-2

サーバ管理

GPUサーバ管理と設定変更方法は、一般サーバ管理と設定変更方法と同じです。詳細は、サーバ管理をご参照ください。

参考
  • KVM GPUサーバは、スペックを変更できません。
  • GPUサーバは、一般サーバに移行できません。一般サーバに変更するには、サーバイメージを作成した後、サーバイメージを使用して一般サーバを新たに作成します。
  • 一般サーバで作成されたサーバイメージを使用して GPUサーバを作成できます。

GPUドライバインストール

以下の2つのオプションの中から1つを選択します。

オプション1.ドライバが事前にインストールされた NCP GPUイメージを使用する

NVIDIAドライバと関連ソフトウェアが事前にインストールされた NCP GPUサーバの作成方法は、次の通りです。

参考
  • NVIDIA A100 GPUサーバの作成時、Infinibandを使用するための MLNX_OFEDが既にインストールされています。
  1. NAVERクラウドプラットフォームコンソールの VPC環境で、 i_menu > Services > Compute > Serverメニューを順にクリックします。
  2. サーバイメージが表示されたタブから NCPサーバイメージタブを選択します。
  3. イメージタイプから KVM GPUを選択します。
  4. 使用するサーバイメージ名を選択します。

オプション2.NVIDIAガイドを使用して GPUドライバと CUDAをインストール

注意
  • GPUサーバの作成時、 フードディスク容量は最小100GB以上に設定します。
  • NVIDIA A100 GPUサーバは、 NVIDIA Fabric Managerをインストールする必要があります。
  • NVIDIA A100 GPUサーバで Infinibandを使用するには、NVIDIA MLNX_OFEDをインストールする必要があります。
参考
GPUタイプ 最小推奨ドライバリリース
NVIDIA A100 R530以上
NVIDIA L4 R535以上
NVIDIA L40S R535以上

2.1 GPU Driverインストール

GPUタイプ別の最小推奨ドライババージョンを確認した後、NVIDIA Driverインストールガイドを参照してインストールします。

参考
  • NVIDIA A100 GPUサーバは、NVLinkサポートのため NVIDIA Fabric Mangerを一緒にインストールする必要があります。
    • NVIDIA Fabric Manager文章を参照してインストールします。
    • 必ず GPU Driverバージョンと同じバージョンの NVIDIA Fabric Managerをインストールします。

2.2 CUDA Toolkitインストール

CUDAをインストールする方法は次の通りです。

  1. NVIDIA CUDA Toolkitウェブサイトにアクセスします。
  2. インストールしたいバージョンの CUDA Runtimeインストールファイルを選択してダウンロードします。
    • Installer Typeは runfile (local)を選択します。
  3. 次のコマンドを入力して CUDA Toolkitをインストールします。
    # chmod +x [ダウンロードしたインストールファイル名]
    # ./[ダウンロードしたインストールファイル名] --toolkit --toolkitpath=/usr/local/cuda-[バージョン] --samples --samplespath=/usr/local/cuda --silent
    

GPUドライバと必須ソフトウェア点検

サーバの GPUドライバと必要なソフトウェアを点検します。

ドライババージョンの確認

GPUドライバのバージョンを確認するには、 nvidia-smi コマンドを入力します。

  • インストールしたドライババージョン、GPUモデルと数を確認できます。
    • 以下は NVIDIA A100 GPUサーバの例です。
# nvidia-smi 
Mon Jun  9 17:23:12 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.124.06             Driver Version: 570.124.06     CUDA Version: 12.8     |
|-----------------------------------------+------------------------+----------------------+
| 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-SXM4-80GB          On  |   00000000:A1:00.0 Off |                  Off |
| N/A   38C    P0             66W /  400W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA A100-SXM4-80GB          On  |   00000000:A2:00.0 Off |                  Off |
| N/A   38C    P0             63W /  400W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   2  NVIDIA A100-SXM4-80GB          On  |   00000000:B1:00.0 Off |                  Off |
| N/A   35C    P0             62W /  400W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   3  NVIDIA A100-SXM4-80GB          On  |   00000000:B2:00.0 Off |                  Off |
| N/A   39C    P0             63W /  400W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   4  NVIDIA A100-SXM4-80GB          On  |   00000000:C1:00.0 Off |                  Off |
| N/A   36C    P0             64W /  400W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   5  NVIDIA A100-SXM4-80GB          On  |   00000000:C2:00.0 Off |                  Off |
| N/A   38C    P0             63W /  400W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   6  NVIDIA A100-SXM4-80GB          On  |   00000000:D1:00.0 Off |                  Off |
| N/A   36C    P0             59W /  400W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
|   7  NVIDIA A100-SXM4-80GB          On  |   00000000:D2:00.0 Off |                  Off |
| N/A   36C    P0             60W /  400W |       1MiB /  81920MiB |      0%      Default |
|                                         |                        |             Disabled |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

CUDA Toolkitバージョン確認

CUDA Toolkitバージョンを確認するには nvcc --version コマンドを入力します。

# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0

MIG無効化

MIGが有効になっている場合は、nvidia-smi -mig 0 コマンドを入力します。

参考
  • MIGの有効有無は、 nvidia-smi -L または nvidia-smi -q | grep MIG コマンドで確認できます。
  • MIGの無効化は nvidia-smi -mig disable コマンドでも可能です。
  • 設定変更後は、GPUリセットまたはシステムの再起動が必要です。
  • MIGが有効になっている場合、GPU Metricの一部が表示されないことがあります。

NVLinkステータス確認

参考
  • 以下の内容は NVIDIA A100 GPUサーバのみ該当します。

nvidia-smi topo -m コマンドを入力して GPU間の NVLinkステータスを確認します。

  • 正常な場合 NVIDIA A100 GPU間の NVLinkステータスは NV12と表示されます。
  • GPU間の NVLinkステータスが SYSと表示される場合、NVIDIA Fabric Managerがインストールされて正常に動作中であることを確認します。
    • NVIDIA Fabric Managerステータスは systemctl status nvidia-fabricmanagerコマンドで確認できます。
# nvidia-smi topo -m
	    GPU0	GPU1	GPU2	GPU3	GPU4	GPU5	GPU6	GPU7	NIC0	NIC1	CPU Affinity	NUMA Affinity	GPU NUMA ID
GPU0	 X 	    NV12	NV12	NV12	NV12	NV12	NV12	NV12	NODE	PHB	    0-27	0		N/A
GPU1	NV12	 X 	    NV12	NV12	NV12	NV12	NV12	NV12	NODE	PHB	    0-27	0		N/A
GPU2	NV12	NV12	 X 	    NV12	NV12	NV12	NV12	NV12	PHB	    NODE	0-27	0		N/A
GPU3	NV12	NV12	NV12	 X 	    NV12	NV12	NV12	NV12	PHB	    NODE	0-27	0		N/A
GPU4	NV12	NV12	NV12	NV12	 X 	    NV12	NV12	NV12	SYS	    SYS	    28-55	1		N/A
GPU5	NV12	NV12	NV12	NV12	NV12	 X 	    NV12	NV12	SYS	    SYS	    28-55	1		N/A
GPU6	NV12	NV12	NV12	NV12	NV12	NV12	 X 	    NV12	SYS	    SYS	    28-55	1		N/A
GPU7	NV12	NV12	NV12	NV12	NV12	NV12	NV12	 X 	    SYS	    SYS	    28-55	1		N/A
NIC0	NODE	NODE	PHB 	PHB 	SYS 	SYS 	SYS 	SYS 	 X   	NODE				
NIC1	PHB	    PHB	    NODE	NODE	SYS 	SYS 	SYS 	SYS 	NODE	 X 				


Infiniband

Infinibandを使用するための準備と点検フローについて説明します。

注意
  • Infinibandは NVIDIA A100 GPUサーバで使用できます。
  • Fabric Clusterサービスが必要です。Fabric Clusterドキュメントをご参照ください。
参考
  • NVIDIA A100 GPUサーバは、2つの200Gb/s Infiniband HDRインターフェースとして合計400Gbps帯域を提供します。

1.Infiniband の仕様

サーバ間の Infiniband通信のために準備する内容は、次の通りです。

  • Infinibandドライバ(MLNX_OFED)をインストールします。
    • OSバージョンに合った MLNX_OFEDをインストールします。
  • Infinibandを使用する前にすべての通信対象サーバが Cluster Modeに設定されている必要があります。
    • Fabric Clusterメニューでクラスタを作成し、作成された Fabric Clusterに通信対象サーバを Cluster Modeとして追加します。
    • 詳細な設定方法は Fabric Clusterドキュメントをご参照ください。

2.Infiniband接続ステータスの確認

Infinibandの接続ステータスを確認するには、 ibstat コマンドを入力してサーバに接続されている Infinibandポートのステータスを確認します。

  • Physical state 項目は LinkUpState 項目は Activeが正常ステータスです。
  • サーバの起動直後、しばらくの間 Physical state 項目が Polling ステータスとして表示されることがありますが、これは接続を確立する過程で正常です。
  • NVIDIA A100タイプ GPUサーバの場合、Rate200と表示される必要があります。
[root@test01 ~]# ibstat
CA 'mlx5_0'
	CA type: MT4123
	Number of ports: 1
	Firmware version: 20.41.1000
	Hardware version: 0
	Node GUID: 0x88e9a4ffff667b00
	System image GUID: 0x88e9a4ffff667b00
	Port 1:
		State: Active
		Physical state: LinkUp
		Rate: 200
		Base lid: 12
		LMC: 0
		SM lid: 14
		Capability mask: 0xa651e848
		Port GUID: 0x88e9a4ffff667b00
		Link layer: InfiniBand
CA 'mlx5_1'
	CA type: MT4123
	Number of ports: 1
	Firmware version: 20.41.1000
	Hardware version: 0
	Node GUID: 0x88e9a4ffff606426
	System image GUID: 0x88e9a4ffff606426
	Port 1:
		State: Down
		Physical state: Polling
		Rate: 10
		Base lid: 15
		LMC: 0
		SM lid: 16
		Capability mask: 0xa651e848
		Port GUID: 0x88e9a4ffff606426
		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テストを行う方法は、次の通りです。

  1. Serverロールのサーバで ibping -S -C mlx5_0 コマンドを実行します。
  2. 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テストを行う方法は、次の通りです。

  1. Serverロールのサーバで ibping -S -C mlx5_1 コマンドを実行します。
  2. 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の設定を行います。