wandb는 15초마다 시스템 메트릭을 자동으로 로깅합니다.시스템 메트릭 보기
W&B App 또는wandb leet 터미널 UI를 사용하여 시스템 메트릭을 확인하고 모니터링할 수 있습니다.
- App
- LEET
W&B App에서 시스템 메트릭을 확인하려면 다음을 수행하세요.
- W&B App에서 프로젝트로 이동하세요.
- Runs 테이블에서 run을 선택하세요.
- 워크스페이스에서 System 섹션을 찾으세요. 이 섹션에는 다음 항목의 차트가 표시됩니다.
- GPU 사용량 및 메모리
- CPU 사용량
- 메모리 사용량
- 디스크 I/O
- 네트워크 트래픽
CPU
Process CPU Percent (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 태그를 부여합니다.
Disk Out
시스템 디스크 쓰기 총량을 메가바이트(MB) 단위로 나타냅니다. Disk In과 마찬가지로, 첫 번째 샘플을 수집할 때 초기 디스크 쓰기 바이트 수를 기록합니다. 이후 샘플에서는 현재 쓰기 바이트 수와 초기값의 차이를 계산합니다. W&B는 이 메트릭에disk.out 태그를 부여합니다.
메모리
프로세스 메모리 RSS
프로세스의 메모리 RSS(Resident Set Size)를 메가바이트(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 태그를 부여합니다.
Network Received
네트워크를 통해 수신된 총 바이트 수를 나타냅니다. 네트워크 전송과 마찬가지로, 메트릭이 처음 초기화될 때의 수신 바이트 수가 초기값으로 기록됩니다. 이후 샘플에서는 현재 수신 바이트 수와 초기값의 차이를 계산합니다. W&B는 이 메트릭에network.recv 태그를 부여합니다.
NVIDIA GPU
아래에 설명된 메트릭 외에도, 프로세스 또는 그 하위 프로세스가 특정 GPU를 사용하면 W&B는 해당 메트릭을gpu.process.{gpu_index}.{metric_name} 형식으로 캡처합니다.
GPU 메모리 사용량
각 GPU의 메모리 사용량을 백분율로 나타냅니다. W&B는 이 메트릭에gpu.{gpu_index}.memory 태그를 부여합니다.
GPU Memory Allocated
각 GPU에서 사용 가능한 전체 메모리 중 할당된 GPU 메모리의 비율(%)을 나타냅니다. W&B는 이 메트릭에gpu.{gpu_index}.memoryAllocated 태그를 부여합니다.
GPU Memory Allocated Bytes
각 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) 단위로 나타냅니다. W&B는 이 메트릭에gpu.{gpu_index}.powerWatts 태그를 부여합니다.
GPU Power Usage Percent
각 GPU의 전력 사용량을 해당 GPU의 전력 용량 대비 백분율로 나타냅니다. W&B는 이 메트릭에gpu.{gpu_index}.powerPercent 태그를 부여합니다.
GPU SM 클럭 속도
GPU의 SM(Streaming Multiprocessor) 클럭 속도를 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 (최신) 및 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 장치의 전력 사용량(와트 단위)입니다. W&B는 이 메트릭에gpu.{gpu_index}.powerWatts 태그를 부여합니다.
AMD GPU Power Usage Percent
각 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 Memory Allocated
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} 태그를 부여합니다.
메트릭은 Graphcore의 gcipuinfo 바이너리와 상호 작용하는 독점 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)): 초당 기가 전송(GT/s) 단위의 데이터 전송 속도입니다.
Google Cloud TPU
TPU(Tensor Processing Unit)는 머신러닝 워크로드를 가속화하기 위해 Google이 맞춤형으로 개발한 ASIC(Application Specific Integrated Circuit)입니다.정확히 어떤 메트릭이 보고되는지는 TPU 칩 세대(예: v4, v5e, v5p, v6e, 7x)와 런타임 환경에 따라 다릅니다.
TPU Compute 메트릭
-
tpu.{tpu_index}.tensorcoreUtilization: 장치별 TensorCore 사용량 비율입니다. TensorCore 연산 유닛이 충분히 활용되고 있는지를 가장 직접적으로 보여 주는 지표입니다. -
tpu.{tpu_index}.dutyCycle: 샘플링 기간 중 가속기 TensorCore가 실제로 연산을 처리한 시간의 비율입니다. 이 메트릭은 칩 단위로 보고되며, 다중 장치 칩에서는 해당 칩의 모든 장치에 동일한 값이 기록됩니다. 값이 높을수록 TensorCore를 더 효율적으로 사용하고 있음을 의미합니다.
TPU 메모리 메트릭
-
tpu.{tpu_index}.hbmCapacityTotal: 장치당 HBM(High Bandwidth Memory) 총 용량(바이트)입니다. -
tpu.{tpu_index}.hbmCapacityUsage: 장치당 현재 HBM 사용량(바이트)입니다.
TPU 인터커넥트 상태
tpu.{tpu_index}.iciLinkHealth: 장치별 ICI(Inter-Chip Interconnect) 링크 상태입니다. 이 메트릭은 libtpu SDK 경로를 통해서만 사용 가능합니다.
TPU 전송 지연 시간
마이크로초 단위의 지연 시간 분포입니다. 보고되는 통계에는 평균, p50, p90, p95, p999가 포함될 수 있습니다. 이 메트릭은 멀티 슬라이스 TPU 파드 구성에서 특히 유용합니다.-
tpu.bufferTransferLatency.{label}.{stat}Us: 슬라이스 간 DCN(Data Center Network) 버퍼 전송 지연 시간입니다. -
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 왕복 시간(RTT)입니다. -
tpu.grpcTcpDeliveryRate.{stat}Mbps: gRPC 연결의 TCP 전송 속도(단위: Mbps)입니다.
TPU HLO 실행 메트릭
-
tpu.hloExecTiming.{label}.{stat}Us: HLO(High Level Operations) 실행 시간 분포(마이크로초 단위)입니다. 이 메트릭은 오퍼레이션별 실행 시간을 나타냅니다. -
tpu.hloQueueSize.{label}: HLO 실행 큐의 현재 크기입니다. 이 메트릭은 큐에서 실행을 기다리는 오퍼레이션의 수를 나타냅니다.
AWS Trainium
AWS Trainium은 AWS가 제공하는 머신러닝 워크로드 가속 전용 하드웨어 플랫폼입니다. AWS Trainium 메트릭은 AWS의neuron-monitor 도구를 사용하여 캡처합니다.
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): DMA(Direct Memory Access) 버퍼에 사용되는 메모리입니다. - 텐서 (
trn.host_total_memory_usage.tensors): 텐서에 사용되는 메모리입니다.
Trainium Neuron Core 메모리 사용량 세부 내역
각 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)