NVIDIA Data Center GPU Manager(DCGM)の指標を Cloud Monitoring に送信するように GKE を構成すると、GPU の使用率、パフォーマンス、正常性をモニタリングできます。
DCGM 指標を有効にすると、GKE は DCGM-Exporter ツールをインストールし、Google 管理の GPU ドライバをインストールして、ClusterPodMonitoring リソースをデプロイし、Google Cloud Managed Service for Prometheus に指標を送信します。
DCGM 指標のセットをカスタマイズする場合や、マネージド DCGM 指標の要件を満たしていないクラスタがある場合は、セルフマネージド DCGM を構成することもできます。
DCGM とは
NVIDIA Data Center GPU Manager(DCGM)は、NVIDIA GPU の管理とモニタリングを行うための NVIDIA のツールセットです。DCGM を使用すると、GPU の使用率、パフォーマンス、健全性を包括的に把握できます。
- GPU 使用率の指標は、モニタリング対象の GPU の負荷と、タスクの処理に効果的に使用されているかどうかを示します。これには、コア処理、メモリ、I/O、電力使用量の指標が含まれます。
- GPU パフォーマンス指標は、GPU が計算タスクをどれだけ効果的かつ効率的に実行できるかを示します。これには、クロック速度と温度の指標が含まれます。
- NVlink や PCIe などの GPU I/O 指標では、データ転送の帯域幅を測定します。
始める前に
始める前に、次の作業が完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
NVIDIA Data Center GPU Manager(DCGM)の指標の要件
NVIDIA Data Center GPU Manager(DCGM)の指標を収集するには、GKE クラスタが次の要件を満たしている必要があります。
- GKE バージョン 1.30.1-gke.1204000 以降
- システム指標の収集が有効になっている
- Google Cloud Managed Service for Prometheus マネージド コレクションが有効になっている
- GKE が管理する GPU ドライバがノードプールで実行されている。つまり、
--gpu-driver-version
にはdefault
またはlatest
を使用してノードプールを作成する必要があります。 - プロファイリング指標は、NVIDIA H100 80 GB GPU でのみ収集されます。
DCGM 指標の収集を構成する
GKE で既存のクラスタの DCGM 指標を収集するには、Google Cloud コンソール、gcloud CLI、または Terraform を使用します。
コンソール
-
GPU ドライバのインストールでは、デフォルトまたは最新を使用する必要があります。
Google Cloud コンソールで Google Kubernetes Engine のページに移動します。
クラスタの名前をクリックします。
[Cloud Monitoring] の横にある edit をクリックします。
SYSTEM
とDCGM
を選択します。[保存] をクリックします。
gcloud
GPU ノードプールを作成します。
--gpu-driver-version
にはdefault
またはlatest
を使用する必要があります。クラスタを更新します。
gcloud container clusters update CLUSTER_NAME \ --location=COMPUTE_LOCATION \ --enable-managed-prometheus \ --monitoring=SYSTEM,DCGM
次のように置き換えます。
CLUSTER_NAME
: 既存のクラスタの名前。COMPUTE_LOCATION
: クラスタの Compute Engine のロケーション。
Terraform
Terraform を使用して DCGM 指標の収集を構成するには、google_container_cluster
の Terraform レジストリの monitoring_config
ブロックをご覧ください。Terraform と Google Cloud を使用する場合の一般的な情報については、Google Cloud での Terraform をご覧ください。
DCGM 指標を使用する
DCGM 指標は、Google Cloud コンソールのダッシュボード、またはクラスタの概要ページとクラスタの詳細ページで直接表示できます。詳細については、オブザーバビリティ指標を表示するをご覧ください。
指標は、Grafana DCGM 指標ダッシュボードを使用して表示できます。詳細については、Grafana を使用したクエリをご覧ください。エラーが発生した場合は、API の互換性をご覧ください。
料金
DCGM 指標は、Google Cloud Managed Service for Prometheus を使用して、Cloud Monitoring に指標を読み込みます。Cloud Monitoring では、取り込まれたサンプルの数に基づいて、これらの指標の取り込みに対して課金されます。ただし、GKE Enterprise エディションが有効になっているプロジェクトに属する登録済みクラスタでは、これらの指標は無料です。
詳細については、Cloud Monitoring の料金をご覧ください。
割り当て
DCGM 指標は、Cloud Monitoring API の1 分あたりの時系列取り込みリクエストの割り当てを消費します。指標パッケージを有効にする前に、その割り当ての直近のピーク使用量を確認してください。同じプロジェクトに多くのクラスタがある場合や、すでに割り当ての上限に近づいている場合は、いずれかのオブザーバビリティ パッケージを有効にする前に割り当ての上限の引き上げをリクエストできます。
DCGM 指標
この表の Cloud Monitoring の指標名には、prometheus.googleapis.com/
という接頭辞を付ける必要があります。表内の項目では、この接頭辞を省略しています。
GKE で収集されたすべての DCGM 指標には、モニタリング対象リソースの prometheus_target
ラベルだけでなく、次のラベルが付加されます。
GPU ラベル:
UUID
: GPU デバイスの UUIDdevice
: GPU デバイス名-
gpu
: ノードの GPU デバイスの整数としてのインデックス番号。たとえば、8 個の GPU が接続されている場合、この値は0
~7
の範囲になります。 modelName
: GPU デバイスモデルの名前(NVIDIA L4
など)。
Kubernetes ラベル:
container
: GPU デバイスを使用する Kubernetes コンテナの名前。-
namespace
: GPU デバイスを使用する Pod とコンテナの Kubernetes Namespace。 pod
: GPU デバイスを使用する Kubernetes Pod。
PromQL の指標名 Cloud Monitoring の指標名 |
|
---|---|
種類、タイプ、単位
モニタリング対象リソース 必要な GKE バージョン |
説明 |
DCGM_FI_DEV_FB_FREE DCGM_FI_DEV_FB_FREE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
空きフレーム バッファ(MB)。 |
DCGM_FI_DEV_FB_TOTAL DCGM_FI_DEV_FB_TOTAL/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
GPU の合計フレーム バッファ(MB)。 |
DCGM_FI_DEV_FB_USED DCGM_FI_DEV_FB_USED/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
使用済みのフレーム バッファ(MB)。 |
DCGM_FI_DEV_GPU_TEMP DCGM_FI_DEV_GPU_TEMP/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
デバイスの現在の温度(摂氏)。 |
DCGM_FI_DEV_GPU_UTIL DCGM_FI_DEV_GPU_UTIL/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
GPU 使用率(%)。 |
DCGM_FI_DEV_MEM_COPY_UTIL DCGM_FI_DEV_MEM_COPY_UTIL/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
メモリ使用率(%) |
DCGM_FI_DEV_MEMORY_TEMP DCGM_FI_DEV_MEMORY_TEMP/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
デバイスのメモリの温度(°C)。 |
DCGM_FI_DEV_POWER_USAGE DCGM_FI_DEV_POWER_USAGE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
デバイスの消費電力(ワット単位)。 |
DCGM_FI_DEV_SM_CLOCK DCGM_FI_DEV_SM_CLOCK/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
SM クロック周波数(MHz)。 |
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter |
|
CUMULATIVE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
ドライバが最後に再読み込されて GPU の合計エネルギー消費量(mJ)。 |
DCGM_FI_PROF_DRAM_ACTIVE DCGM_FI_PROF_DRAM_ACTIVE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
デバイスのメモリ インターフェースがデータを送受信しているアクティブなサイクルの割合。 |
DCGM_FI_PROF_GR_ENGINE_ACTIVE DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
グラフィック エンジンがアクティブな時間の割合。 |
DCGM_FI_PROF_NVLINK_RX_BYTES DCGM_FI_PROF_NVLINK_RX_BYTES/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
アクティブな NvLink rx(読み取り)データのレート(ヘッダーとペイロードの両方を含むバイト単位)。 |
DCGM_FI_PROF_NVLINK_TX_BYTES DCGM_FI_PROF_NVLINK_TX_BYTES/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
アクティブな NvLink 送信(送信)データのレート(ヘッダーとペイロードの両方を含むバイト単位)。 |
DCGM_FI_PROF_PCIE_RX_BYTES DCGM_FI_PROF_PCIE_RX_BYTES/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
アクティブな PCIe rx(読み取り)データのレート(ヘッダーとペイロードの両方を含むバイト単位)。 |
DCGM_FI_PROF_PCIE_TX_BYTES DCGM_FI_PROF_PCIE_TX_BYTES/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
アクティブな PCIe tx(送信)データのレート(ヘッダーとペイロードの両方を含むバイト単位)。 |
DCGM_FI_PROF_PIPE_FP16_ACTIVE DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
fp16 パイプがアクティブなサイクルの比率。 |
DCGM_FI_PROF_PIPE_FP32_ACTIVE DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
fp32 パイプがアクティブなサイクルの比率。 |
DCGM_FI_PROF_PIPE_FP64_ACTIVE DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
fp64 パイプがアクティブなサイクルの比率。 |
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
任意のテンソルパイプがアクティブなサイクルの比率。 |
DCGM_FI_PROF_SM_ACTIVE DCGM_FI_PROF_SM_ACTIVE/gauge |
|
GAUGE 、DOUBLE 、1
prometheus_target
1.30.1-gke.1204000 |
SM に 1 つ以上のワープが割り当てられているサイクルの割合。 |
次のステップ
- オブザーバビリティ指標を表示する方法を確認する。