Windows VM에서 GPU 성능 모니터링


리소스 활용도를 높이도록 가상 머신(VM) 인스턴스의 GPU 사용률을 추적할 수 있습니다.

GPU 사용률을 알면 리소스를 자동 확장하는 데 사용할 수 있는 관리형 인스턴스 그룹 설정과 같은 작업을 수행할 수 있습니다.

Cloud Monitoring을 사용하여 GPU 측정항목을 검토하려면 다음 단계를 완료하세요.

  1. 각 VM에서 GPU 측정항목 보고 스크립트 설정을 수행합니다. 이 스크립트는 GPU 측정항목 보고 에이전트를 설치합니다. 이 에이전트는 VM에서 일정한 간격으로 실행되어 GPU 데이터를 수집하고 이 데이터를 Cloud Monitoring에 전송합니다.
  2. 각 VM에서 스크립트를 실행합니다.
  3. 각 VM에서 부팅 시 자동으로 시작되도록 GPU 측정항목 보고 에이전트를 설정합니다.
  4. Google Cloud Cloud Monitoring에서 로그를 봅니다.

GPU 측정항목 보고 스크립트 설정

요구사항

각 VM에서 다음 요구사항이 충족되는지 확인합니다.

스크립트 다운로드

관리자 권한으로 PowerShell 터미널을 열고 Invoke-WebRequest 명령어를 사용하여 스크립트를 다운로드합니다.

Invoke-WebRequest는 PowerShell 3.0 이상에서 사용할 수 있습니다. Google Cloud에서는 ctrl+v를 사용하여 복사된 코드 블록을 붙여넣을 것을 권장합니다.

mkdir c:\google-scripts
cd c:\google-scripts
Invoke-Webrequest -uri https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-monitoring/main/windows/gce-gpu-monitoring-cuda.ps1 -outfile gce-gpu-monitoring-cuda.ps1

스크립트 실행

cd c:\google-scripts
.\gce-gpu-monitoring-cuda.ps1

부팅 시 자동으로 시작되도록 에이전트 구성

시스템 부팅 시 실행되도록 GPU 측정항목 보고 에이전트가 설정되었는지 확인하려면 다음 명령어를 사용하여 에이전트를 Windows Task Scheduler에 추가합니다.

$Trigger= New-ScheduledTaskTrigger -AtStartup
$Trigger.ExecutionTimeLimit = "PT0S"
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\google-scripts\gce-gpu-monitoring-cuda.ps1"
$settingsSet = New-ScheduledTaskSettingsSet
# Set the Execution Time Limit to unlimited on all versions of Windows Server
$settingsSet.ExecutionTimeLimit = 'PT0S'
Register-ScheduledTask -TaskName "MonitoringGPUs" -Trigger $Trigger -User $User -Action $Action -Force -Settings $settingsSet

Cloud Monitoring에서 측정항목 검토

  1. Google Cloud 콘솔에서 측정항목 탐색기 페이지로 이동합니다.

    Monitoring으로 이동

  2. 측정항목 선택 메뉴를 확장합니다.

  3. 리소스 메뉴에서 VM 인스턴스를 선택합니다.

  4. 측정항목 카테고리 메뉴에서 커스텀을 선택합니다.

  5. 측정항목 메뉴에서 차트로 작성할 측정항목을 선택합니다. 예를 들면 custom/instance/gpu/utilization입니다.

  6. 적용을 클릭합니다.

    다음 결과와 유사한 GPU 사용률이 출력됩니다.

    Cloud Monitoring 시작

사용 가능한 측정항목

측정항목 이름 설명

instance/gpu/utilization

GPU에서 하나 이상의 커널이 실행되었던 지난 샘플 기간 동안의 시간 비율입니다.

instance/gpu/memory_utilization

전역(기기) 메모리를 읽거나 쓴 지난 샘플 기간 동안의 시간 비율입니다.

instance/gpu/memory_total

설치된 총 GPU 메모리입니다.

instance/gpu/memory_used

활성 컨텍스트로 할당된 총 메모리입니다.

instance/gpu/memory_used_percent

활성 컨텍스트로 할당된 총 메모리의 백분율입니다. 범위는 0%~100%입니다.

instance/gpu/memory_free

총 여유 메모리입니다.

instance/gpu/temperature

코어 GPU 온도(섭씨(°C)입니다.

다음 단계