Monitoraggio delle prestazioni della GPU sulle VM Windows

Per ottimizzare l'utilizzo delle risorse, puoi monitorare le percentuali di utilizzo delle GPU delle istanze di macchine virtuali (VM).

Quando conosci le tariffe di utilizzo delle GPU, puoi eseguire attività come la configurazione di gruppi di istanze gestite che possono essere utilizzati per scalare automaticamente le risorse.

Per esaminare le metriche GPU utilizzando Cloud Monitoring, completa questi passaggi:

  1. Su ogni VM, configura lo script di report delle metriche GPU. Questo script installa l'agente report sulle metriche GPU. Questo agente viene eseguito a intervalli sulla VM per raccogliere i dati della GPU e li invia a Cloud Monitoring.
  2. Esegui lo script su ogni VM.
  3. Su ogni VM, imposta l'agente di reporting delle metriche GPU in modo che si avvii automaticamente all'avvio.
  4. Visualizza i log in Google Cloud Monitoring.

Configurare lo script di report sulle metriche GPU

Requisiti

Su ciascuna delle tue VM, verifica che soddisfi i seguenti requisiti:

  • A ogni VM devono essere collegate GPU.
  • In ogni VM deve essere installato un driver GPU.

Scaricare lo script

Apri un terminale PowerShell come amministratore e utilizza il comando Invoke-WebRequest per scaricare lo script.

Invoke-WebRequest è disponibile su PowerShell 3.0 o versioni successive. Google Cloud consiglia di utilizzare ctrl+v per incollare i blocchi di codice copiati.

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

Esegui lo script

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

Configura l'agente in modo che venga avviato automaticamente all'avvio

Per assicurarti che l'agente report per le metriche delle GPU sia configurato per l'esecuzione all'avvio di sistema, utilizza il comando seguente per aggiungere l'agente allo strumento di pianificazione delle attività di Windows.

$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

Esamina le metriche in Cloud Monitoring

  1. Nella console Google Cloud, vai alla pagina Metrics Explorer.

    Vai a Monitoring

  2. Espandi il menu Seleziona una metrica.

  3. Nel menu Risorsa, seleziona Istanza VM.

  4. Nel menu Categoria metrica, seleziona Personalizzata.

  5. Nel menu Metrica, seleziona la metrica da tracciare. Ad esempio custom/instance/gpu/utilization.

  6. Fai clic su Applica.

    L'utilizzo della GPU dovrebbe essere simile al seguente output:

    Avvio di Cloud Monitoring.

Metriche disponibili

Nome metrica Descrizione

istanza/gpu/utilizzo

Percentuale di tempo nell'ultimo periodo di esempio durante il quale uno o più kernel sono stati eseguiti sulla GPU.

istanza/gpu/memory_utilization

Percentuale di tempo nell'ultimo periodo di esempio in cui è stata letta o scritta la memoria globale (dispositivo).

instance/gpu/memory_total

Memoria GPU totale installata.

istanza/gpu/memoria_utilizzata

Memoria totale allocata da contesti attivi.

istanza/gpu/memory_used_percent

Percentuale della memoria totale allocata da contesti attivi. L'intervallo è compreso tra 0 e 100.

istanza/gpu/senza_memoria

Memoria libera totale.

istanza/gpu/temperatura

Temperatura interna della GPU in gradi Celsius (°C).

Che cosa succede dopo?