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로 전송된 메모리가 없더라도 일부 사용량이 예상됩니다.
전력 한도 전력 device_limit 와트 기기에서 사용하도록 설정된 최대 전력량입니다. Dataflow는 이를 기본값에서 변경하지 않습니다.
전력 사용량 전력 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 백분율 TensorCore 파이프가 사용된 시간의 비율입니다. 값이 클수록 행렬 연산에 중요한 GPU의 TensorCore 사용량이 많음을 나타냅니다.
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은 TensorCore의 반정밀도 기능을 활용하는 것과 연결되어 있습니다.
PCIe 읽기 pcie device_read MiBps PCIe를 통해 호스트 VM에서 GPU가 읽는 데이터 속도입니다.
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 성능 전력 소모/한도
온도 판독값/한도
모든 GPU 작업
GPU GPM 사용률 SM 활동
SM 사용률
CUDA/Tensor 파이프 활동
GPM 측정항목 사용 설정됨
GPU GPM I/O PCIe 읽기/전송
NVLink 읽기/전송
GPM 측정항목 사용 설정됨
기존 GPU 사용률 기존 측정항목 모든 GPU 작업

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

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