메인 콘텐츠로 건너뛰기
이 페이지에서는 W&B SDK가 추적하는 시스템 메트릭에 대한 자세한 정보를 제공합니다.
wandb는 시스템 메트릭을 15초마다 자동으로 로깅합니다.

시스템 메트릭 보기

W&B App 또는 wandb beta leet 터미널 UI를 사용해서 시스템 메트릭을 확인하고 모니터링할 수 있습니다.
W&B App에서 시스템 메트릭을 보려면:
  1. W&B App에서 자신의 프로젝트로 이동합니다.
  2. Runs 테이블에서 실행 하나를 선택합니다.
  3. 워크스페이스에서 다음 차트를 표시하는 System 섹션을 찾습니다:
    • GPU 사용률 및 메모리
    • CPU 사용량
    • 메모리 사용량
    • 디스크 I/O
    • 네트워크 트래픽
워크스페이스에 패널을 추가해서 표시할 시스템 메트릭을 사용자 지정할 수 있습니다. 시각화를 생성하고 사용자 지정하는 방법은 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 태그를 할당합니다.

Disk Usage

지정된 경로에 대한 전체 시스템 디스크 사용량을 기가바이트(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 태그를 할당합니다.

네트워크

Network Sent

네트워크로 전송된 총 바이트 수를 나타냅니다. 메트릭이 처음 초기화될 때 당시 전송된 바이트 수가 기록됩니다. 이후 샘플에서는 현재 전송된 바이트 수에서 초기 값을 뺀 차이를 계산합니다. W&B는 이 메트릭에 network.sent 태그를 할당합니다.

Network Received

네트워크를 통해 수신된 총 바이트 수를 나타냅니다. Network Sent와 마찬가지로, 메트릭이 처음 초기화될 때 초기 수신 바이트 수가 기록됩니다. 이후 샘플에서는 현재 수신 바이트 수와 초기 값의 차이를 계산합니다. W&B는 이 메트릭에 network.recv 태그를 할당합니다.

NVIDIA GPU

아래에 설명하는 메트릭 외에도, 프로세스 및/또는 그 하위 프로세스가 특정 GPU를 사용하는 경우 W&B는 관련 메트릭을 gpu.process.{gpu_index}.{metric_name} 형식으로 수집합니다.

GPU 메모리 사용률

각 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 Utilization

각 GPU의 사용률을 백분율(%)로 표시합니다. W&B는 이 메트릭에 gpu.{gpu_index}.gpu 태그를 지정합니다.

GPU 온도

각 GPU의 섭씨(℃) 기준 온도입니다. W&B는 이 메트릭에 gpu.{gpu_index}.temp 태그를 할당합니다.

GPU 전력 사용량(Watts)

각 GPU의 전력 사용량(와트, Watts)을 나타냅니다. W&B는 이 메트릭에 gpu.{gpu_index}.powerWatts 태그를 할당합니다.

GPU 전력 사용률(%)

각 GPU에 대해 해당 GPU의 전력 용량 대비 사용 중인 전력 비율(%)을 나타냅니다. W&B는 이 메트릭에 gpu.{gpu_index}.powerPercent 태그를 할당합니다.

GPU SM Clock Speed

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 비정정 메모리 오류

W&B가 수정하지 못한 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 Utilization

각 AMD GPU 장치의 GPU 사용률(%)을 나타냅니다. W&B는 이 메트릭에 gpu.{gpu_index}.gpu 태그를 할당합니다.

AMD GPU Memory Allocated

각 AMD GPU 장치별로 전체 사용 가능한 메모리 대비 할당된 GPU 메모리의 비율(%)을 나타냅니다. W&B는 이 메트릭에 gpu.{gpu_index}.memoryAllocated 태그를 할당합니다.

AMD GPU 온도

각 AMD GPU 장치의 GPU 온도를 섭씨(°C)로 나타낸 값입니다. W&B는 이 메트릭에 gpu.{gpu_index}.temp라는 태그를 부여합니다.

AMD GPU 전력 사용량(와트)

각 AMD GPU 장치의 전력 사용량(와트)입니다. W&B는 이 메트릭에 gpu.{gpu_index}.powerWatts 태그를 할당합니다.

AMD GPU 전력 사용률(%)

각 AMD GPU 장치의 전력 용량 대비 GPU 전력 사용량을 백분율로 표시합니다. W&B는 이 메트릭에 gpu.{gpu_index}.powerPercent를 할당합니다.

Apple 실리콘 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 장치의 전력 용량 대비 전력 사용량을 백분율로 나타낸 값입니다. 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의 gcipuinfo 바이너리와 상호작용합니다. sample 메서드는 프로세스 ID(pid)와 연결된 각 IPU 디바이스에 대해 이러한 메트릭들을 가져옵니다. 시간이 지남에 따라 값이 변하는 메트릭이거나 디바이스의 메트릭을 처음 수집하는 경우에만 로그로 기록해, 중복 데이터를 방지합니다. 각 메트릭에 대해 parse_metric 메서드를 사용하여 원시 문자열 표현에서 메트릭 값을 추출합니다. 이후 aggregate 메서드를 사용해 여러 샘플에 걸쳐 메트릭을 집계합니다. 다음은 사용 가능한 메트릭과 그 단위를 나열한 것입니다:
  • 평균 보드 온도(average board temp (C)): IPU 보드의 섭씨 온도.
  • 평균 다이 온도(average die temp (C)): IPU 다이의 섭씨 온도.
  • 클럭 속도(clock (MHz)): IPU의 클럭 속도(MHz 단위).
  • IPU 전력(ipu power (W)): IPU의 전력 소비(와트 단위).
  • IPU 사용률(ipu utilisation (%)): IPU 사용률(퍼센트).
  • IPU 세션 사용률(ipu utilisation (session) (%)): 현재 세션에 한정된 IPU 사용률(퍼센트).
  • 데이터 링크 속도(speed (GT/s)): 초당 기가 전송(Giga-transfers per second) 단위의 데이터 전송 속도.

Google Cloud TPU

Tensor Processing Unit (TPU)는 머신 러닝 워크로드를 가속하기 위해 Google이 맞춤 개발한 ASIC(Application-Specific Integrated Circuit)입니다.

TPU 메모리 사용량

현재 TPU 코어당 High Bandwidth Memory(HBM) 사용량(바이트 단위)입니다. 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 NeuronCore 활용률

각 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 호스트 메모리 사용량 세부 내역:

호스트 메모리 사용량은 다음과 같이 구성됩니다:
  • Application Memory (trn.host_total_memory_usage.application_memory): 애플리케이션이 사용하는 메모리입니다.
  • Constants (trn.host_total_memory_usage.constants): 상수 데이터를 위해 사용되는 메모리입니다.
  • DMA Buffers (trn.host_total_memory_usage.dma_buffers): 직접 메모리 액세스(Direct Memory Access, DMA) 버퍼에 사용되는 메모리입니다.
  • Tensors (trn.host_total_memory_usage.tensors): 텐서에 사용되는 메모리입니다.

Trainium NeuronCore 메모리 사용량 세부 항목

각 NeuronCore에 대한 자세한 메모리 사용량 정보:
  • Constants (trn.{core_index}.neuroncore_memory_usage.constants)
  • Model Code (trn.{core_index}.neuroncore_memory_usage.model_code)
  • Model Shared Scratchpad (trn.{core_index}.neuroncore_memory_usage.model_shared_scratchpad)
  • Runtime Memory (trn.{core_index}.neuroncore_memory_usage.runtime_memory)
  • Tensors (trn.{core_index}.neuroncore_memory_usage.tensors)

OpenMetrics

OpenMetrics / Prometheus와 호환되는 데이터를 노출하는 외부 엔드포인트에서 메트릭을 수집하고 기록할 수 있습니다. 수집 대상 엔드포인트에 적용할 수 있는 사용자 정의 정규식 기반 메트릭 필터도 지원합니다. 이 기능을 GPU 클러스터 성능 모니터링에 활용하는 구체적인 예시는 Monitoring GPU cluster performance in W&B를 참고하십시오. 이 예시는 NVIDIA DCGM-Exporter를 사용해 GPU 클러스터 성능을 모니터링하는 방법을 다룹니다.