Dataflow GPU 측정항목

이 페이지에서는 Dataflow에서 지원되는 GPU 측정항목을 다룹니다. 이러한 측정항목을 사용하여 GPU의 상태와 사용량을 모니터링할 수 있습니다. 대부분의 측정항목은 모든 Dataflow 작업에서 지원되지만 일부 측정항목은 많은 GPU 모델에 대해 추가 구성이 필요합니다.

기본 요건

GPU 측정항목은 GPU를 명시적으로 요청한 Dataflow 작업에서만 수집됩니다. 자세한 내용은 GPU 지원을 참고하세요.

개요

Dataflow는 다양한 GPU 측정항목을 보고하지만 주요 측정항목은 총 메모리와 사용된 메모리(RAM 측정항목과 동일) 및 스트리밍 멀티 프로세서(SM) 활동과 SM 점유율(Dataflow CPU 측정항목과 가장 유사)입니다. 자세한 내용은 일반적인 측정항목GPM 측정항목을 참고하세요.

작업에 있는 모든 GPU 기기의 총 메모리와 사용된 메모리가 기본적으로 보고됩니다. Dataflow 모니터링 인터페이스에서 이러한 값은 '기본 GPU 사용률' 아래에 표시됩니다. 이러한 측정항목은 기본 GPU 측정항목에 속하지만 GPU 기기 메모리에 액세스한 시간의 비율을 보고하는 '메모리 액세스 비율'과는 다릅니다.

SM 활동 및 SM 점유율은 GPM 측정항목입니다. 이러한 측정항목은 P4 및 P100 기기에서는 지원되지 않으며 H100 기기 이상에서는 기본적으로 지원됩니다. T4 및 L4 기기와 같은 다른 모든 기기의 경우 추가 설정이 필요합니다. 사용 설정 단계는 GPM 수집을 참고하세요. 작업에서 수집된 경우 이러한 측정항목은 Dataflow 모니터링 인터페이스의 'GPU GPM 사용률'에 있습니다.

Dataflow GPU 측정항목 기본사항

모든 GPU 측정항목은 Dataflow 작업자가 Cloud Monitoring으로 전송합니다. 기기별 측정항목은 dataflow.googleapis.com/worker/accelerator/gpu에서 확인할 수 있습니다. 이러한 측정항목은 모두 활용률 또는 온도와 같은 일반 카테고리로 그룹화되며 모두 다음 라벨이 있습니다.

  • device_uuid: 작업자 또는 파이프라인과 관계없이 GPU 기기를 고유하게 식별합니다.
  • device_number: 작업자에서 기기에 할당된 번호입니다. 범위는 [0, N)이며, 여기서 N은 작업자의 GPU 기기 수입니다.
  • device_model: GPU 모델입니다(예: 'Tesla T4').

device_uuiddevice_model는 모두 작업자와 독립적이며 동일한 실제 기기에서는 항상 동일합니다. device_number는 해당 작업자에서 식별되는 방식과 연결됩니다.

Dataflow의 일반적인 GPU 측정항목

일반 측정항목은 GPU가 있는 모든 Dataflow 작업에서 보고됩니다. Monitoring에서는 모두 다음 형식을 사용합니다.

dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME

다음 표에는 각 측정항목과 카테고리, 이름, 단위, 용도가 나와 있습니다.

측정항목 카테고리 이름 단위 설명
커널 실행 비율 사용률 device_kernel_runtime 백분율 GPU에서 하나 이상의 커널이 실행된 시간의 비율입니다. 이는 GPU가 사용되고 있다는 것만 보여주며 처리 리소스가 효율적으로 사용되고 있는지는 보여주지 않습니다.
메모리 액세스 비율 사용률 device_memory_access 백분율 기기 메모리를 읽거나 쓴 시간의 비율입니다. 이는 메모리가 액세스되었음을 보여줄 뿐 사용 중인 메모리의 비율을 보여주지는 않습니다.
메모리 한도 메모리 device_limit MiB GPU에서 사용할 수 있는 메모리 양입니다.
메모리 사용량 메모리 device_usage MiB GPU에서 사용 중인 메모리 양입니다. 여기에는 Dataflow 작업에서 사용한 메모리와 펌웨어용으로 예약된 메모리가 모두 포함되므로 아직 GPU로 전송된 메모리가 없더라도 일부 사용량이 예상됩니다.
수정 가능한 휘발성 ECC 오류 memory/ecc/volatile device_correctable_total 개수 마지막 드라이버 다시 로드 이후의 수정 가능한 (단일 비트) ECC 오류 수입니다. Dataflow의 경우 드라이버 다시 로드는 작업자 시작 시에만 발생하므로 이는 작업자 수명 동안의 오류와 동일합니다.
수정 불가능한 휘발성 ECC 오류 memory/ecc/volatile device_uncorrectable_total 개수 마지막 드라이버 다시 로드 이후 수정 불가능한 (더블 비트) ECC 오류 수입니다. Dataflow의 경우 드라이버 다시 로드는 작업자 시작 시에만 발생하므로 이는 작업자 수명 동안의 오류와 동일합니다.
전력 제한 power device_limit 와트 기기에서 사용하도록 설정된 최대 전력량입니다. Dataflow는 기본값을 변경하지 않습니다.
전력 사용량 power device_usage 와트 기기에서 사용 중인 전력량입니다.
현재 온도 온도 device_current 섭씨 GPU의 현재 온도입니다.
최고 작동 온도 온도 device_max_op 섭씨 GPU가 유지해야 하는 온도입니다. 현재 온도가 이 온도를 초과하면 GPU 드라이버가 이 온도 이하로 GPU를 냉각하려고 시도합니다. Dataflow는 이를 제어하지 않습니다.
속도 저하 온도 온도 device_slowdown 섭씨 GPU가 제한을 시작하는 온도입니다. 현재 온도가 이 값을 초과하면 온도가 내려갈 때까지 성능이 저하될 수 있습니다. Dataflow는 이를 제어하지 않습니다.
종료 온도 온도 device_shutdown 섭씨 GPU가 꺼지는 온도입니다. 현재 온도가 이 온도를 초과하면 기기를 사용할 수 없게 됩니다. Dataflow는 이 온도를 제어하지 않으며 온도가 너무 높아 종료된 GPU를 복구하려고 적극적으로 시도하지도 않습니다.
현재 SM 클럭 시계 device_sm_current MHz SM 클럭의 현재 속도입니다. 온도가 속도 저하 기준점을 초과하면 냉각 관련 제한의 일환으로 이 값이 낮아질 수 있습니다.
최대 SM 클럭 시계 device_sm_max MHz SM 클럭의 최대 속도입니다.
현재 메모리 클럭 시계 device_memory_current MHz 현재 메모리 클럭 속도입니다. 온도가 속도 저하 기준점을 초과하면 냉각 관련 제한의 일환으로 이 값이 낮아질 수 있습니다.
최대 메모리 클럭 시계 device_memory_max MHz 메모리 클럭의 최대 속도입니다.

Dataflow의 GPM 측정항목

Dataflow는 GPM 측정항목을 일부 지원합니다. 지원 수준은 GPU 모델과 가속기 구성에 따라 다릅니다. 기본적으로 GPU가 있는 대부분의 Dataflow 작업에는 몇 가지 추가 구성이 필요합니다.

GPM 측정항목은 일반 측정항목과 동일한 기본사항을 따릅니다.

지원되는 측정항목

일반 측정항목과 마찬가지로 GPM 측정항목 경로의 형식은 다음과 같습니다.

dataflow.googleapis.com/worker/accelerator/gpu/CATEGORY/NAME

이러한 측정항목 중 일부는 일반적인 측정항목과 동일한 카테고리에 속합니다.

측정항목 카테고리 이름 단위 설명
SM 활동 사용률 device_sm_activity 백분율 워프가 SM에서 활성 상태였던 시간의 비율로, 기기의 모든 SM에서 평균을 낸 값입니다. 이는 커널 실행 비율과 유사하지만 GPU의 리소스가 효율적으로 사용되고 있는지 더 잘 보여주는 상세한 정보를 제공합니다. NVIDIA에서는 80% 이상을 효과적인 사용으로 정의하고 50% 이하를 비효과적인 사용으로 정의합니다.
SM 점유율 사용률 device_sm_occupancy 백분율 최댓값 대비 기기의 활성 워프 비율입니다. 메모리 제한 작업은 컴퓨팅 제한 작업보다 점유율이 높아야 하며 메모리 액세스 비율 측정항목을 통해 이를 파악할 수 있습니다. 자세한 내용은 달성된 점유율에 관한 NVIDIA 문서를 참고하세요.
텐서 파이프 활동 사용률 device_tensor_pipe_activity 백분율 Tensor Core 파이프가 사용된 시간의 비율입니다. 값이 클수록 행렬 연산에 중요한 GPU의 텐서 코어를 더 많이 사용함을 나타냅니다.
FP64 파이프 활동 사용률 device_fp64_pipe_activity 백분율 FP64 코어 파이프가 사용된 시간의 비율입니다. 값이 클수록 64비트 부동 소수점 값의 스칼라 연산을 처리하는 GPU의 FP64 코어를 더 많이 사용하고 있음을 나타냅니다.
FP32 파이프 활동 사용률 device_fp32_pipe_activity 백분율 FP32 코어 파이프가 사용된 시간의 비율입니다. 값이 클수록 32비트 부동 소수점 값의 스칼라 작업을 처리하는 GPU의 FP32 코어를 더 많이 사용하고 있음을 나타냅니다.
FP16 파이프 활동 사용률 device_fp16_pipe_activity 백분율 FP16 파이프가 사용된 시간의 비율입니다. 각각 64비트 및 32비트 CUDA 코어와 연결된 FP64 및 FP32와 달리 FP16은 텐서 코어의 절반 정밀도 기능을 활용하는 것과 연결됩니다.
PCIe 읽기 pcie device_read MiBps GPU가 PCIe를 통해 호스트 VM에서 읽은 데이터의 속도입니다.
PCIe 전송 pcie device_transfer MiBps PCIe를 통해 GPU에서 호스트 VM으로의 데이터 전송 속도입니다.
NVLink 읽기 nvlink device_read MiBps NVLink를 통해 GPU가 읽은 데이터의 속도입니다. NVLink는 GPU 간 통신만 지원하므로 각 작업자에 GPU가 하나만 있는 경우에는 관련이 없습니다.
NVLink 전송 nvlink device_transfer MiBps NVLink를 통한 GPU의 데이터 전송률입니다. NVLink는 GPU 간 통신만 지원하므로 각 작업자에 GPU가 하나만 있는 경우에는 관련이 없습니다.

GPM 측정항목 수집

Hopper 아키텍처 이상 (예: H100, H100 Mega)을 사용하는 GPU가 있는 Dataflow 작업은 기본적으로 GPM 측정항목을 수집하므로 추가 구성이 필요하지 않습니다. 하지만 Pascal 아키텍처 이하(예: P4 및 P100)를 사용하는 작업은 이러한 측정항목을 지원하지 않습니다.

다른 모든 모델의 경우 이러한 측정항목을 수집하려면 작업자 액셀러레이터 구성에 install-gke-dcgm-exporter를 추가해야 합니다. 예를 들면 다음과 같습니다.

--experiment="worker_accelerator=type:TYPE;count:COUNT;install-nvidia-driver;install-gke-dcgm-exporter"

이 플래그는 NVIDIA DCGM-exporter와 동일한 GKE 관리형을 설치합니다. 다음 유형은 이 옵션을 지원합니다.

  • nvidia-l4
  • nvidia-tesla-a100
  • nvidia-a100-80gb
  • nvidia-tesla-t4
  • nvidia-tesla-v100

다른 유형이 제공되면 Dataflow 서비스는 작업 생성 시 오류를 반환합니다. 이 검사를 통해 측정항목 수집에 도움이 되지 않는 작업에서 컨테이너를 실행하지 않을 수 있습니다.

기존 측정항목

Monitoring에는 dataflow.googleapis.com/job/gpu_utilizationdataflow.googleapis.com/job/gpu_memory_utilization라는 두 가지 측정항목이 표시될 수 있습니다. 이러한 측정항목은 각각 커널 실행 비율메모리 액세스 비율과 유사하지만 작업자는 작업자의 GPU 전체에서 평균을 내어 보고합니다. 특히 작업자가 두 개 이상의 GPU를 갖도록 구성된 경우 기기별 동등한 값을 사용하는 것이 좋습니다.

Dataflow UI

Dataflow 작업에 작업자에 연결된 GPU가 있는 경우 측정항목이 작업 페이지의 '작업 측정항목' 탭에 'Dataflow ML' 카테고리 아래에 표시됩니다. 이 카테고리는 GPU가 없는 작업에는 표시되지 않으며, 먼저 측정항목이 작업과 관련이 있는지 확인하므로 로드하는 데 몇 초가 걸립니다.

'Dataflow ML' 아래에는 다음 하위 카테고리가 표시됩니다.

하위 카테고리 측정항목 조건
기본 GPU 사용률 커널 실행 비율
메모리 액세스 비율
총 메모리/사용된 메모리
모든 GPU 작업
GPU 성능 전력 소모/한도
온도 측정/한도
현재/최대 SM 클럭
현재/최대 메모리 클럭
수정 가능한/수정 불가능한 휘발성 ECC 오류
모든 GPU 작업
GPU GPM 사용률 SM 활동
SM 점유율
CUDA/텐서 파이프 활동
GPM 측정항목 사용 설정됨
GPU GPM I/O PCIe 읽기/전송
NVLink 읽기/전송
GPM 측정항목 사용 설정됨
기존 GPU 사용률 기존 측정항목 모든 GPU 작업

비 레거시 측정항목을 볼 때 차트를 특정 작업자 이름과 GPU 기기 번호로 필터링할 수 있습니다. Compute Engine에서 볼 경우 작업자 이름은 VM과 동일한 이름입니다. GPU 기기 번호는 측정항목 라벨의 번호와 동일합니다. 이 필터링을 사용하여 특정 GPU 기기의 측정항목을 확인할 수 있습니다. 예를 들어 전력 사용량이 한도에 얼마나 가까운지 확인할 수 있습니다.

기기별 GPU 측정항목 필터링 예