wandb は 15 秒ごとにシステムメトリクスを自動的にログします。システムメトリクスを表示する
W&B アプリまたはwandb leet ターミナル UI を使用して、システムメトリクスを表示および監視できます。
- App
- LEET
W&B アプリでシステムメトリクスを表示するには:
- W&B アプリで対象の project にアクセスします。
- Runs 表から run を選択します。
- Workspace で System セクションを探します。このセクションには次のチャートが表示されます:
- GPU 使用率とメモリ
- CPU 使用量
- メモリ使用量
- ディスク I/O
- ネットワークトラフィック
CPU
プロセスの CPU 使用率 (CPU)
利用可能な CPU の数で正規化した、プロセスの CPU 使用量の割合です。 W&B はこのメトリクスにcpu タグを割り当てます。
プロセスの CPU スレッド数
プロセスが使用するスレッドの数です。 W&B はこのメトリクスにproc.cpu.threads タグを割り当てます。
ディスク
デフォルトでは、使用状況メトリクスは/ パスを対象に収集されます。監視するパスを設定するには、次の設定を使用します。
ディスク使用率
指定したパスにおけるシステムディスクの総使用率をパーセンテージで表します。 W&B は、このメトリクスにdisk.{path}.usagePercent タグを割り当てます。
ディスク利用状況
指定されたパスに対するシステム全体のディスク利用状況をギガバイト (GB) で表します。 アクセス可能なパスがサンプリングされ、各パスのディスク利用状況 (GB) がサンプルに追加されます。 W&B はこのメトリクスにdisk.{path}.usageGB タグを割り当てます。
Disk In
システム全体のディスク読み取り量をメガバイト (MB) 単位で示します。 最初のサンプルを取得した時点で、初期ディスク読み取りバイト数が記録されます。以降のサンプルでは、現在の読み取りバイト数と初期値の差を計算します。 W&B はこのメトリクスにdisk.in タグを割り当てます。
ディスクアウト
システムのディスク書き込みの合計をメガバイト (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 メモリの割合を示します。 W&B はこのメトリクスにgpu.{gpu_index}.memoryAllocated タグを割り当てます。
GPU 割り当て済みメモリ (バイト)
各 GPU に割り当てられた GPU メモリをバイト単位で示します。 W&B はこのメトリクスにgpu.{gpu_index}.memoryAllocatedBytes タグを割り当てます。
GPU 使用率
各 GPU の GPU 使用率をパーセントで示します。 W&B はこのメトリクスにgpu.{gpu_index}.gpu タグを割り当てます。
GPU 温度
各 GPU の温度 (摂氏) です。 W&B はこのメトリクスにgpu.{gpu_index}.temp タグを割り当てます。
GPU 消費電力 (ワット)
各 GPU の GPU 消費電力をワット単位で示します。 W&B は、このメトリクスにgpu.{gpu_index}.powerWatts タグを割り当てます。
消費電力の割合
各 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 の訂正済みメモリエラー
W&B がエラーチェックプロトコルによって自動的に訂正する GPU 上のメモリエラーの数をトラッキングします。これは、回復可能なハードウェアの問題を示します。 W&B はこのメトリクスにgpu.{gpu_index}.correctedMemoryErrors タグを割り当てます。
GPU 未修正メモリエラー
GPU 上のメモリエラーの数をトラッキングし、W&B が未修正のものを示します。これは回復不能なエラーであり、処理の信頼性に影響を与える可能性があります。 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 (latest) および 5.x 形式がサポートされます。ROCm 形式の詳細については、AMD ROCm ドキュメント を参照してください。新しい形式にはより多くの詳細が含まれています。
AMD GPU 使用率
各 AMD GPU デバイスにおける GPU 使用率をパーセントで表します。 W&B はこのメトリクスにgpu.{gpu_index}.gpu タグを割り当てます。
AMD GPU 割り当て済みメモリ
各 AMD 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 使用率
Apple GPU デバイス、特に ARM Mac 上の 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 消費電力 (ワット)
Apple GPU デバイス上の ARM Mac 向けの GPU 消費電力 (Watts 単位) です。 W&B はこのメトリクスにgpu.0.powerWatts タグを割り当てます。
Apple GPU 消費電力の割合
Apple GPU デバイス上の ARM Mac 向けに、GPU の消費電力の割合として表した GPU 消費電力です。 W&B はこのメトリクスにgpu.0.powerPercent タグを割り当てます。
Graphcore IPU
Graphcore IPUs (Intelligence Processing Units) は、機械知能タスク向けに特別に設計された独自のハードウェアアクセラレータです。IPU デバイスのメトリクス
これらのメトリクスは、特定の IPU デバイスのさまざまな統計を表します。各メトリクスには、デバイス ID (device_id) とメトリクス キー (metric_key) があり、これらで識別されます。W&B はこのメトリクスに ipu.{device_id}.{metric_key} タグを割り当てます。
メトリクスは、Graphcore の gcipuinfo バイナリとやり取りする独自の gcipuinfo ライブラリを使用して抽出されます。sample メソッドは、プロセス ID (pid) に関連付けられた各 IPU デバイスのこれらのメトリクスを取得します。時間とともに変化するメトリクス、またはデバイスのメトリクスが初めて取得される場合のみをログすることで、冗長なデータのログを避けます。
各メトリクスについて、parse_metric メソッドを使用して、生の文字列表現からメトリクスの値を抽出します。その後、aggregate メソッドを使用して、複数のサンプルにわたってメトリクスを集計します。
以下に、利用可能なメトリクスとその単位を一覧で示します。
- Average Board Temperature (
average board temp (C)): IPU ボードの温度 (摂氏) 。 - Average Die Temperature (
average die temp (C)): IPU ダイの温度 (摂氏) 。 - クロック速度 (
clock (MHz)): IPU のクロック速度 (MHz) 。 - IPU Power (
ipu power (W)): IPU の消費電力 (ワット) 。 - IPU Utilization (
ipu utilisation (%)): IPU 使用率 (パーセント) 。 - IPU Session Utilization (
ipu utilisation (session) (%)): 現在のセッションに固有の IPU 使用率 (パーセント) 。 - Data Link Speed (
speed (GT/s)): データ転送速度 (ギガトランスファー/秒) 。
Google Cloud TPU
Tensor Processing Units (TPUs) は、Google が独自に開発した ASIC (Application Specific Integrated Circuit) で、機械学習ワークロードの高速化に使用されます。報告されるメトリクスの詳細は、v4、v5e、v5p、v6e、または 7x などの TPU チップ世代やランタイム環境によって異なります。
TPU コンピュート メトリクス
-
tpu.{tpu_index}.tensorcoreUtilization: デバイスごとの TensorCore 使用率のパーセンテージです。これは、TensorCore コンピュートユニットが完全に利用されているかどうかを最も直接的に測定するものです。 -
tpu.{tpu_index}.dutyCycle: サンプル期間中にアクセラレータの TensorCore がアクティブに処理していた時間の割合です。このメトリクスはチップごとに報告され、マルチデバイスチップ上のすべてのデバイスにファンアウトされます。値が高いほど、TensorCore 使用率が優れていることを示します。
TPU メモリ メトリクス
-
tpu.{tpu_index}.hbmCapacityTotal: デバイスごとの合計 High Bandwidth Memory (HBM) キャパシティ (バイト単位) 。 -
tpu.{tpu_index}.hbmCapacityUsage: デバイスごとの現在の HBM 利用量 (バイト単位) 。
TPU Interconnect の健全性
tpu.{tpu_index}.iciLinkHealth: デバイスごとの Inter-Chip Interconnect (ICI) リンクの健全性。このメトリクスは libtpu SDK 経由でのみ取得できます。
TPU 転送レイテンシー
マイクロ秒単位のレイテンシー分布です。報告される統計には、平均、p50、p90、p95、p999 が含まれます。これらのメトリクスは、マルチスライス TPU Pod 構成で最も関連があります。-
tpu.bufferTransferLatency.{label}.{stat}Us: スライス間の DCN (データセンター ネットワーク) バッファ転送レイテンシー。 -
tpu.inboundBufferTransferLatency.{label}.{stat}Us: インバウンド DCN バッファ転送レイテンシー。 -
tpu.hostToDeviceTransferLatency.{label}.{stat}Us: ホストからデバイスへのデータ転送レイテンシー。 -
tpu.deviceToHostTransferLatency.{label}.{stat}Us: デバイスからホストへのデータ転送レイテンシー。
TPU 集団通信
-
tpu.collectiveE2ELatency.{label}.{stat}Us: all-reduce や all-gather などの集団通信操作のエンドツーエンドレイテンシー。 -
tpu.hostComputeLatency.{label}.{stat}Us: MXLA コンピュートレイテンシーを含む、ホスト側のコンピュートレイテンシー。
TPU ネットワーク メトリクス
-
tpu.grpcTcpMinRtt.{stat}Us: gRPC 接続の TCP ラウンドトリップ時間の最小値。 -
tpu.grpcTcpDeliveryRate.{stat}Mbps: gRPC 接続の TCP デリバリー レート (メガビット毎秒)。
TPU HLO 実行メトリクス
-
tpu.hloExecTiming.{label}.{stat}Us: HLO (High Level Operations) の実行タイミング分布をマイクロ秒単位で示します。このメトリクスは、操作ごとの実行時間を報告します。 -
tpu.hloQueueSize.{label}: HLO 実行キューの現在のサイズを示します。このメトリクスは、実行のためにキューに追加された操作の数を示します。
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 Device Total メモリ使用量
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 Neuron Core メモリ使用量の内訳
各 NeuronCore の詳細なメモリ使用量情報:- 定数 (
trn.{core_index}.neuroncore_memory_usage.constants) - モデル Code (
trn.{core_index}.neuroncore_memory_usage.model_code) - モデル Shared Scratchpad (
trn.{core_index}.neuroncore_memory_usage.model_shared_scratchpad) - Runtime メモリ (
trn.{core_index}.neuroncore_memory_usage.runtime_memory) - テンソル (
trn.{core_index}.neuroncore_memory_usage.tensors)