メインコンテンツへスキップ
このページでは、W&B SDK でトラッキングされるシステムメトリクスについて詳しく説明します。
wandb は 15 秒ごとにシステムメトリクスを自動的にログします。

システムメトリクスを表示する

W&B App または wandb beta leet のターミナル UI を使用して、システムメトリクスを表示および監視できます。
W&B App でシステムメトリクスを表示するには、次の手順に従います。
  1. W&B App で対象のプロジェクトにアクセスします。
  2. Runs 表から run を選択します。
  3. Workspace で、次のグラフが表示される System セクションを探します。
    • GPU 使用率とメモリ
    • CPU 使用率
    • メモリ使用率
    • ディスク I/O
    • ネットワークトラフィック
Workspace にパネルを追加すると、表示するシステムメトリクスをカスタマイズできます。可視化の作成方法やカスタマイズの詳細については、Panels を参照してください。

CPU

プロセス CPU 使用率 (CPU)

プロセスの CPU 使用率の割合を、使用可能な CPU 数で正規化した値です。 W&B はこのメトリクスに cpu タグを付与します。

プロセスの CPU スレッド数

プロセスが使用するスレッド数です。 W&B はこのメトリクスに proc.cpu.threads タグを付与します。

ディスク

デフォルトでは、/ パスの使用状況メトリクスが収集されます。監視対象のパスを設定するには、次の設定を使用します。
run = wandb.init(
    settings=wandb.Settings(
        x_stats_disk_paths=("/System/Volumes/Data", "/home", "/mnt/data"),
    ),
)

ディスク使用率 (%)

指定したパスにおけるシステム全体のディスク使用率を、パーセンテージで表します。 W&B はこのメトリクスに disk.{path}.usagePercent タグを付与します。

ディスク使用量

指定したパスにおけるシステム全体のディスク使用量を、ギガバイト (GB) 単位で表します。 アクセス可能なパスがサンプリングされ、各パスのディスク使用量 (GB) がサンプルに追加されます。 W&B はこのメトリクスに disk.{path}.usageGB タグを付与します。

Disk In

システム全体のディスク読み込み量の合計をメガバイト (MB) 単位で示します。 最初のサンプル取得時に、初期のディスク読み込みバイト数が記録されます。以降のサンプルでは、現在の読み込みバイト数と初期値の差分を計算します。 W&B はこのメトリクスに disk.in タグを割り当てます。

Disk Out

システム全体のディスク書き込み総量をメガバイト (MB) 単位で表します。 Disk In と同様に、最初のサンプル取得時に初期のディスク書き込みバイト数が記録されます。以降のサンプルでは、現在の書き込みバイト数と初期値との差分が計算されます。 W&B はこのメトリクスに disk.out タグを割り当てます。

メモリ

プロセスメモリ RSS

プロセスのメモリ常駐セットサイズ (RSS) をメガバイト (MB) 単位で表します。RSS は、プロセスが占有しているメモリのうち、主記憶装置 (RAM) に保持されている部分です。 W&B はこのメトリクスに proc.memory.rssMB タグを割り当てます。

プロセスのメモリ使用率

プロセスのメモリ使用量が、利用可能な総メモリに対して占める割合を示します。 W&B はこのメトリクスに proc.memory.percent タグを割り当てます。

メモリ使用率

システム全体のメモリ使用量を、利用可能な総メモリに対する割合 (パーセンテージ) で表します。 W&B はこのメトリクスに memory_percent タグを付与します。

利用可能なメモリ

システムで利用可能なメモリの合計をメガバイト (MB) 単位で示します。 W&B はこのメトリクスに proc.memory.availableMB タグを付与します。

ネットワーク

ネットワーク送信

ネットワーク経由で送信された総バイト数を表します。 最初に送信されたバイト数は、メトリクスの初回初期化時に記録されます。以降のサンプルでは、現在の送信バイト数と初期値との差分が計算されます。 W&B はこのメトリクスに network.sent タグを付与します。

ネットワーク受信量

ネットワーク経由で受信した合計バイト数を示します。 ネットワーク送信量 と同様に、受信バイト数の初期値はメトリクスが最初に初期化された時点で記録されます。以降のサンプルでは、現在の受信バイト数と初期値との差分が計算されます。 W&B はこのメトリクスに network.recv タグを割り当てます。

NVIDIA GPU

以下で説明するメトリクスに加えて、プロセスおよび/またはその子プロセス以下が特定の GPU を使用している場合、W&B は対応するメトリクスを gpu.process.{gpu_index}.{metric_name} として収集します

GPUメモリ使用率

各GPUのメモリ使用率をパーセントで示します。 W&B はこのメトリクスに gpu.{gpu_index}.memory タグを割り当てます。

GPU メモリ割り当て率

各 GPU について、使用可能な総メモリに対して割り当て済みの GPU メモリの割合を示します。 W&B はこのメトリクスに gpu.{gpu_index}.memoryAllocated タグを割り当てます。

GPU メモリ割り当て量 (バイト)

各 GPU について、割り当てられた GPU メモリ量をバイト単位で指定します。 W&B はこのメトリクスに gpu.{gpu_index}.memoryAllocatedBytes タグを付与します。

GPU 使用率

各 GPU の使用率をパーセントで示します。 このメトリクスには、W&B によって gpu.{gpu_index}.gpu タグが割り当てられます。

GPU 温度

各GPUの温度 (摂氏) です。 W&Bでは、このメトリクスに gpu.{gpu_index}.temp タグが割り当てられます。

GPU 電力使用量 (ワット)

各GPUの電力使用量をワット単位で示します。 W&B はこのメトリクスに gpu.{gpu_index}.powerWatts タグを付与します。

GPU 電力使用率

各 GPU について、GPU の消費電力がその電力容量に対して占める割合をパーセンテージで示します。 W&B はこのメトリクスに gpu.{gpu_index}.powerPercent タグを割り当てます。

GPU SM クロック速度

GPU 上の Streaming Multiprocessor (SM) のクロック速度を MHz 単位で表します。このメトリクスは、計算処理を担う GPU コア内の処理速度の目安となります。 W&B はこのメトリクスに gpu.{gpu_index}.smClock タグを割り当てます。

GPUメモリクロック速度

GPUメモリのクロック速度を MHz 単位で表します。これは、GPUメモリと処理コア間のデータ転送速度に影響します。 W&B はこのメトリクスに gpu.{gpu_index}.memoryClock タグを割り当てます。

GPU グラフィックスクロック速度

GPU でグラフィックスを描画する際のベースクロック速度を表し、MHz 単位で示されます。このメトリクスは、可視化やレンダリングのタスク中のパフォーマンスを反映することがよくあります。 W&B はこのメトリクスに gpu.{gpu_index}.graphicsClock タグを割り当てます。

GPU 訂正済みメモリエラー

GPU 上で発生したメモリエラーのうち、W&B がエラーチェック機構によって自動的に訂正した件数をトラッキングします。これは、回復可能なハードウェアの問題を示します。 W&B はこのメトリクスに gpu.{gpu_index}.correctedMemoryErrors タグを割り当てます。

GPU の訂正不能メモリエラー

GPU 上で発生した訂正不能なメモリエラー数をトラッキングします。これは回復不能なエラーを示し、処理の信頼性に影響する可能性があります。 W&B はこのメトリクスに gpu.{gpu_index}.unCorrectedMemoryErrors タグを割り当てます。

GPU エンコーダー使用率

GPU のビデオエンコーダーの使用率 (%) を表します。エンコード処理 (たとえば動画レンダリング) の実行中に、どの程度負荷がかかっているかを示します。 W&B はこのメトリクスに gpu.{gpu_index}.encoderUtilization タグを割り当てます。

AMD GPU

W&B は、AMD が提供する rocm-smi ツールの出力 (rocm-smi -a --json) からメトリクスを抽出します。 ROCm の 6.x (最新版) および 5.x の形式がサポートされています。ROCm の形式の詳細については、AMD ROCm ドキュメント を参照してください。新しい形式には、より詳細な情報が含まれています。

AMD GPU 使用率

各 AMD GPU デバイスの GPU 使用率をパーセントで示します。 W&B はこのメトリクスに gpu.{gpu_index}.gpu タグを割り当てます。

AMD GPU メモリ割り当て率

各 AMD GPU デバイスで、使用可能な総メモリに対して割り当てられている GPU メモリの割合を示します。 W&B はこのメトリクスに gpu.{gpu_index}.memoryAllocated タグを割り当てます。

AMD GPU 温度

各 AMD GPU デバイスの GPU 温度 (摂氏) 。 W&B はこのメトリクスに gpu.{gpu_index}.temp タグを付与します。

AMD GPU 電力使用量 (ワット)

各 AMD GPU デバイスの GPU 電力使用量 (ワット単位) です。 W&B はこのメトリクスに gpu.{gpu_index}.powerWatts タグを付与します。

AMD GPU 電力使用率

各 AMD GPU デバイスについて、電力容量に対する GPU の消費電力の割合を示します。 W&B は、このメトリクスに gpu.{gpu_index}.powerPercent という名前を割り当てます。

Apple ARM MacのGPU

Apple GPU 使用率

ARM Mac に搭載された Apple GPU デバイスの GPU 使用率をパーセント (%) で示します。 W&B では、このメトリクスに gpu.0.gpu タグが割り当てられます。

Apple GPU メモリ割り当て率

ARM Mac 上の Apple GPU デバイスで、利用可能な総メモリに占める割り当て済み GPU メモリの割合です。 W&B では、このメトリクスに gpu.0.memoryAllocated タグを割り当てます。

Apple GPU 温度

ARM Mac上のApple GPUデバイスのGPU 温度 (摂氏) です。 W&B はこのメトリクスに gpu.0.temp タグを割り当てます。

Apple GPU 電力使用量 (ワット)

ARM Mac 上の Apple GPU デバイスにおける GPU の消費電力 (ワット) です。 W&B はこのメトリクスに gpu.0.powerWatts タグを付与します。

Apple GPU 電力使用率

ARM Mac 上の Apple GPU デバイスにおける、GPU の電力容量に対する消費電力の割合です。 W&B はこのメトリクスに gpu.0.powerPercent タグを付与します。

Graphcore IPU

Graphcore IPU (Intelligence Processing Unit) は、機械知能向けの処理に特化して設計された、独自のハードウェアアクセラレータです。

IPU デバイスのメトリクス

これらのメトリクスは、特定の IPU デバイスに関するさまざまな統計情報を表します。各メトリクスには、それを識別するためのデバイス ID (device_id) とメトリクスキー (metric_key) があります。W&B はこのメトリクスに ipu.{device_id}.{metric_key} タグを割り当てます。 メトリクスは独自の gcipuinfo ライブラリを使用して抽出されます。このライブラリは Graphcore’s gcipuinfo バイナリとやり取りします。sample method は、プロセス ID (pid) に関連付けられた各 IPU デバイスのこれらのメトリクスを取得します。冗長なデータの logging を避けるため、時間の経過とともに変化するメトリクス、またはデバイスのメトリクスを初めて取得したときのみログされます。 各メトリクスでは、parse_metric method を使用して、生の文字列表現からメトリクスの値を抽出します。次に、これらのメトリクスは aggregate method を使用して複数のサンプルにわたって集計されます。 以下に、利用可能なメトリクスとその単位を示します。
  • Average Board Temperature (average board temp (C)): 摂氏で表した IPU ボードの温度。
  • Average Die Temperature (average die temp (C)): 摂氏で表した IPU ダイの温度。
  • Clock Speed (clock (MHz)): MHz 単位の IPU のクロック速度。
  • IPU Power (ipu power (W)): ワット単位の IPU の消費電力。
  • IPU Utilization (ipu utilisation (%)): IPU 使用率の割合。
  • IPU Session Utilization (ipu utilisation (session) (%)): 現在のセッションに固有の IPU 使用率の割合。
  • Data Link Speed (speed (GT/s)): 1 秒あたりギガトランスファー数で表したデータ転送速度。

Google Cloud TPU

Tensor Processing Unit (TPU) は、Google が独自に開発した ASIC (特定用途向け集積回路) で、機械学習のワークロードを高速化するために使用されます。

TPU メモリ使用量

現在の TPU コアごとの High Bandwidth Memory 使用量 (バイト単位) 。 W&B はこのメトリクスに tpu.{tpu_index}.memoryUsageBytes タグを付与します。

TPU メモリ使用率

TPU コアごとの現在の High Bandwidth Memory の使用率 (パーセント) です。 W&B はこのメトリクスに tpu.{tpu_index}.memoryUsageBytes タグを割り当てます。

TPU デューティサイクル

TPU デバイスごとの TensorCore デューティサイクルの割合です。サンプル期間中にアクセラレータの TensorCore がアクティブに処理していた時間の割合を示します。値が大きいほど、TensorCore の利用率が高いことを意味します。 W&B はこのメトリクスに tpu.{tpu_index}.dutyCycle タグを割り当てます。

AWS Trainium

AWS Trainium は、機械学習ワークロードの高速化に特化した、AWS 提供の専用ハードウェアプラットフォームです。AWS の neuron-monitor ツールを使用して、AWS Trainium のメトリクスを取得します。

Trainium Neuron Core 使用率

各 NeuronCore の使用率が、コア単位で報告されます。 W&B はこのメトリクスに trn.{core_index}.neuroncore_utilization タグを付与します。

Trainium ホストの合計メモリ使用量

ホストの総メモリ使用量をバイト単位で示します。 W&B はこのメトリクスに trn.host_total_memory_usage タグを付与します。

Trainium Neuron デバイスの総メモリ使用量

Neuron デバイスの合計メモリ使用量をバイト単位で示します。 W&B はこのメトリクスに trn.neuron_device_total_memory_usage) タグを割り当てます。

Trainium ホストメモリ使用量の内訳:

以下は、ホスト上のメモリ使用量の内訳です。
  • アプリケーション メモリ (trn.host_total_memory_usage.application_memory): アプリケーションが使用するメモリ。
  • 定数 (trn.host_total_memory_usage.constants): 定数用のメモリ。
  • DMA バッファ (trn.host_total_memory_usage.dma_buffers): Direct Memory Access バッファに使用されるメモリ。
  • テンソル (trn.host_total_memory_usage.tensors): テンソルに使用されるメモリ。

Trainium NeuronCore のメモリ使用量の内訳

各 NeuronCore のメモリ使用量の詳細:
  • 定数 (trn.{core_index}.neuroncore_memory_usage.constants)
  • モデルコード (trn.{core_index}.neuroncore_memory_usage.model_code)
  • モデル共有スクラッチパッド (trn.{core_index}.neuroncore_memory_usage.model_shared_scratchpad)
  • ランタイムメモリ (trn.{core_index}.neuroncore_memory_usage.runtime_memory)
  • テンソル (trn.{core_index}.neuroncore_memory_usage.tensors)

OpenMetrics

OpenMetrics / Prometheus 互換データを公開している外部エンドポイントからメトリクスを取得してログできます。取得するエンドポイントに適用する、正規表現ベースのカスタムメトリクスフィルターにも対応しています。 NVIDIA DCGM-Exporter を使用して GPU クラスタのパフォーマンスを監視するケースでこの機能をどのように使うかについては、詳しい例として W&B で GPU クラスタのパフォーマンスを監視する を参照してください。