NVIDIA Data Center GPU Manager(DCGM)

NVIDIA Data Center GPU Manager のインテグレーションでは、DCGM から高度な主要 GPU 指標が収集されます。Ops エージェントは、dcgm レシーバーのバージョンを選択することで、2 つの異なる指標セットのいずれかを収集するように構成できます。

  • dcgm レシーバーのバージョン 2 で、特定の VM インスタンスに接続されている GPU のパフォーマンスと状態をモニタリングするための、キュレートされた一連の指標が使用できます。
  • dcgm レシーバーのバージョン 1 は、デフォルトの GPU 指標と組み合わせて使用することを目的とした一連のプロファイリング指標を提供します。これらの指標の目的と解釈については、DCGM 機能の概要にあるプロファイリング指標をご覧ください。

NVIDIA Data Center GPU Manager の詳細については、DCGM のドキュメントをご覧ください。このインテグレーションには、DCGM バージョン 3.1 ~ 3.3.9 との互換性があります。

これらの指標は Linux システムでのみ使用できます。プロファイリング指標は、NVIDIA GPU モデル P100 および P4 から収集されません。

前提条件

NVIDIA DCGM 指標を収集するには、次の操作を行う必要があります。

DCGM をインストールして確認する

DCGM バージョン 3.1 ~ 3.3.9 をインストールして、特権サービスとして実行する必要があります。DCGM をインストールするには、DCGM ドキュメントのインストールをご覧ください。

DCGM が正しく実行されていることを確認するには、次の操作を行います。

  1. 次のコマンドを実行して、DCGM サービスのステータスを確認します。

    sudo service nvidia-dcgm status
    

    サービスが実行されている場合、nvidia-dcgm サービスは active (running) として表示されます。出力は次のようになります。

    ● nvidia-dcgm.service - NVIDIA DCGM service
    Loaded: loaded (/usr/lib/systemd/system/nvidia-dcgm.service; disabled; vendor preset: enabled)
    Active: active (running) since Sat 2023-01-07 15:24:29 UTC; 3s ago
    Main PID: 24388 (nv-hostengine)
    Tasks: 7 (limit: 14745)
    CGroup: /system.slice/nvidia-dcgm.service
           └─24388 /usr/bin/nv-hostengine -n --service-account nvidia-dcgm
    
  2. 次のコマンドを実行して、GPU デバイスが検出されることを確認します。

    dcgmi discovery --list
    

    デバイスが検出された場合、出力は次のようになります。

    1 GPU found.
    +--------+----------------------------------------------------------------------+
    | GPU ID | Device Information                                                   |
    +--------+----------------------------------------------------------------------+
    | 0      | Name: NVIDIA A100-SXM4-40GB                                          |
    |        | PCI Bus ID: 00000000:00:04.0                                         |
    |        | Device UUID: GPU-a2d9f5c7-87d3-7d57-3277-e091ad1ba957                |
    +--------+----------------------------------------------------------------------+
    

DCGM 用に Ops エージェントを構成する

Ops エージェントの構成のガイドに従って、DCGM サービスからテレメトリーを収集するために必要な要素を追加し、エージェントを再起動します。

構成の例

次のコマンドは、NVIDIA DCGM のレシーバー バージョン 2 指標を収集して取り込み、Ops エージェントを再起動するための構成を作成します。

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.
set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    dcgm:
      type: dcgm
      receiver_version: 2
  service:
    pipelines:
      dcgm:
        receivers:
          - dcgm
EOF

sudo service google-cloud-ops-agent restart
sleep 20

DCGM プロファイリング指標のみを収集する場合は、receiver_version フィールドの値を 1 に置き換えます。receiver_version エントリを完全に削除することもできます。デフォルト バージョンは 1 です。 両方のバージョンを同時に使用することはできません。

これらのコマンドを実行したら、エージェントが再起動したことを確認できます。次のコマンドを実行して、サブエージェント コンポーネントの「Metrics Agent」と「Logging Agent」が「active (running)」と表示されていることを確認します。

sudo systemctl status google-cloud-ops-agent"*"

「libdcgm.so が見つかりません。localhost:5555 の DCGM デーモンに接続できません。DCGM デーモンは実行されていますか?」などのエラー メッセージが表示された場合は、DGCM サービスのバージョン 4.0 がインストールされている可能性があります。DCGM 共有ライブラリの名前が libdgcdm.so.4 に変更されました。これは、Ops エージェントの DCGM レシーバでは認識されません。DCGM バージョン 3.1 ~ 3.3.9 を使用する必要があります。

デフォルトの Compute Engine サービス アカウントではなくカスタム サービス アカウントを使用している場合、または非常に古い Compute Engine VM がある場合は、Ops エージェントの認可が必要になることがあります。

指標の収集を構成する

DCGM から指標を取り込むには、NDIVIA DCGM が生成する指標のレシーバーを作成してから、新しいレシーバー用のパイプラインを作成する必要があります。

このレシーバーでは、複数のエンドポイントのモニタリングなど、構成で複数のインスタンスを使用することはできません。このようなインスタンスはすべて同じ時系列に書き込まれるため、Cloud Monitoring ではインスタンスを区別できません。

dcgm 指標のレシーバーを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
collection_interval 60s 時間(例: 30s5m)。
endpoint localhost:5555 DCGM サービスのアドレス(host:port 形式)。
receiver_version 1 1 または 2 のいずれか。バージョン 2 では、さらに多くの指標を使用できます。
type 値は、dcgm にする必要があります。

モニタリング対象

次の表に、Ops エージェントが NVIDIA DGCM インスタンスから収集する指標の一覧を示します。すべての GPU モデルですべての指標を利用できるわけではありません。プロファイリング指標は、NVIDIA GPU モデル P100 および P4 から収集されません。

バージョン 1 の指標

次の指標は、dcgm レシーバーのバージョン 1 を使用して収集されます。

指標タイプ
種類、タイプ
モニタリング対象リソース
ラベル
workload.googleapis.com/dcgm.gpu.profiling.dram_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.pcie_traffic_rate 
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.pipe_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe  
uuid
workload.googleapis.com/dcgm.gpu.profiling.sm_occupancy 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.sm_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid

 GPU モデル P100 および P4 では使用できません。

 L4 の場合、pipefp64 はサポートされません。

バージョン 2 の指標

次の指標は、dcgm レシーバーのバージョン 2 を使用して収集されます。

指標タイプ
種類、タイプ
モニタリング対象リソース
ラベル
workload.googleapis.com/gpu.dcgm.clock.frequency
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.clock.throttle_duration.time
CUMULATIVEDOUBLE
gce_instance
gpu_number
model
uuid
violation  
workload.googleapis.com/gpu.dcgm.codec.decoder.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.codec.encoder.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.ecc_errors
CUMULATIVEINT64
gce_instance
error_type
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.energy_consumption
CUMULATIVEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.memory.bandwidth_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.memory.bytes_used
GAUGEINT64
gce_instance
gpu_number
model
state
uuid
workload.googleapis.com/gpu.dcgm.nvlink.io 
CUMULATIVEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.pcie.io 
CUMULATIVEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.pipe.utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe  §
uuid
workload.googleapis.com/gpu.dcgm.sm.utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.temperature
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid

 P100 と P4 の場合、violationpowerthermalsync_boost のみがサポートされます。

 GPU モデル P100 および P4 では使用できません。

§ L4 の場合、pipefp64 はサポートされません。

GPU 指標

また、Ops エージェントの組み込み構成では、NVIDIA Management Library(NVML)によって報告される agent.googleapis.com/gpu 指標も収集されます。 これらの指標を収集するために Ops エージェントで追加の構成は必要ありませんが、GPU が接続された VM を作成し、GPU ドライバをインストールする必要があります。詳細については、gpu 指標についてをご覧ください。 dcgm レシーバー バージョン 1 の指標は、これらのデフォルトの指標を補完するように設計されていますが、dcgm レシーバー バージョン 2 の指標はスタンドアロンです。

構成を確認する

このセクションでは、NVIDIA DCGM レシーバーが正しく構成されていることを確認する方法について説明します。Ops エージェントがテレメトリーの収集を開始するまでに 1~2 分かかる場合があります。

NVIDIA DCGM 指標が Cloud Monitoring に送信されていることを確認するには、次のようにします。

  1. Google Cloud コンソールで、 [指標エクスプローラ] ページに移動します。

    Metrics Explorer に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. クエリビルダー ペインのツールバーで、[MQL] または [PromQL] という名前のボタンを選択します。
  3. [MQL] 切り替えで [MQL] が選択されていることを確認します。言語切り替えボタンは、クエリの書式設定を行うのと同じツールバーにあります。
    • v1 指標の場合、エディタで次のクエリを入力し、[クエリを実行] をクリックします。
      fetch gce_instance
      | metric 'workload.googleapis.com/dcgm.gpu.profiling.sm_utilization'
      | every 1m
      
    • v2 指標の場合、エディタで次のクエリを入力して、[実行] をクリックします。
      fetch gce_instance
      | metric 'workload.googleapis.com/gpu.dcgm.sm.utilization'
      | every 1m
      

ダッシュボードを表示

NVIDIA DCGM 指標を表示するには、グラフまたはダッシュボードが構成されている必要があります。NVIDIA DCGM インテグレーションには、1 つ以上のダッシュボードが含まれています。インテグレーションを構成して Ops エージェントが指標データの収集を開始すると、ダッシュボードは自動的にインストールされます。

インテグレーションをインストールすることなく、ダッシュボードの静的プレビューを表示することもできます。

インストールされているダッシュボードを表示する手順は次のとおりです。

  1. Google Cloud コンソールで、 [ダッシュボード] ページに移動します。

    [ダッシュボード] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. [ダッシュボード リスト] タブを選択し、[統合] カテゴリを選択します。
  3. 表示するダッシュボードの名前をクリックします。

インテグレーションを構成してもダッシュボードがインストールされていない場合は、Ops エージェントが実行されていることを確認します。ダッシュボードにグラフの指標データがない場合、ダッシュボードのインストールは失敗します。Ops エージェントが指標の収集を開始した後に、ダッシュボードがインストールされます。

ダッシュボードの静的プレビューを表示する手順は次のとおりです。

  1. Google Cloud コンソールで、 [Integrations] ページに移動します。

    [インテグレーション] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. [デプロイメント プラットフォーム] フィルタの [Compute Engine] をクリックします。
  3. NVIDIA DCGM のエントリを見つけて、[詳細を表示] をクリックします。
  4. [ダッシュボード] タブを選択すると、静的プレビューが表示されます。ダッシュボードがインストールされている場合は、[ダッシュボードを表示] をクリックして移動できます。

Cloud Monitoring のダッシュボードについて詳しくは、ダッシュボードとグラフをご覧ください。

[インテグレーション] ページの使用方法については、インテグレーションを管理するをご覧ください。

DCGM の制限事項とプロファイリングの一時停止

DCGM の同時使用は、Nsight Systems や Nsight Compute などの他の一部の NVIDIA デベロッパー ツールの使用と競合する可能性があります。 この制限事項は NVIDIA A100 以前の GPU に適用されます。詳細については、DCGM 機能の概要のサンプリング レートのプロファイリングをご覧ください。

大幅な中断なしで Nsight Systems などのツールを使用する必要がある場合は、次のコマンドを使用して指標の収集を一時的に停止または再開できます。

dcgmi profile --pause
dcgmi profile --resume

プロファイリングが一時停止されていると、Ops エージェントが収集する DCGM 指標が VM から出力されません。

次のステップ

Ansible を使用して Ops エージェントをインストールし、サードパーティ アプリケーションを構成してサンプル ダッシュボードをインストールする方法については、Ops エージェントをインストールして、サードパーティ アプリケーションのトラブルシューティングを行うの動画をご覧ください。