Memory Profile Tool

Puoi utilizzare il profilo della memoria per visualizzare l'utilizzo della memoria nel tempo dei tuoi acceleratori.

Piattaforme supportate

TPU: supportata

GPU: supportata

Utilizzo dello strumento di profilo della memoria

Il profilo della memoria è costituito dai seguenti componenti:

  • Il selettore ID memoria nella parte superiore della pagina ti consente di concentrarti sulla memoria ad alta larghezza di banda (HBM) collegata a uno dei diversi acceleratori che possono essere collegati all'host di cui viene eseguito il profilo o addirittura alla memoria dell'host in alcuni casi.
  • Il "Grafico della sequenza temporale della memoria" e il "Riepilogo del profilo della memoria" acquisiscono informazioni di alto livello su allocazioni, deallocazioni e utilizzo della memoria durante la sessione di profilatura, incluse le suddivisioni tra stack e heap e qualsiasi impatto della frammentazione.
  • La tabella di distribuzione della memoria fornisce informazioni sulle operazioni a livello di framework che contribuiscono maggiormente all'utilizzo della memoria. Esistono anche dettagli aggiuntivi per operazione, come la forma, il tipo di dati e così via, se queste informazioni vengono messe a disposizione del compilatore da XProf. La tabella mostra questi dettagli nel punto di picco di utilizzo all'interno della finestra di profilazione, per facilitare il debug delle situazioni di esaurimento della memoria.
  • Le allocazioni e le deallocazioni vengono gestite (e aggiunte al profilo) dall'allocatore di runtime di XLA, che possiede l'intero spazio di memoria HBM.
  • Tieni presente che il profilo della memoria è in genere più interessante e utile per il profiling della GPU rispetto ai carichi di lavoro TPU. Il modello di esecuzione TPU prevede in genere un'allocazione anticipata di grandi dimensioni da parte del compilatore XLA, anziché durante l'addestramento o l'inferenza del modello. Di conseguenza, spesso il grafico di allocazione sembra una linea orizzontale piatta. È probabile che tutte le allocazioni si siano verificate all'inizio del profilo (se il profiler era attivo in quel punto dell'esecuzione), rendendole difficili da vedere.
  • La metrica di frammentazione nel riepilogo del profilo della memoria e il grafico della sequenza temporale della memoria (in percentuale) consentono di identificare i problemi di frammentazione della memoria. Un valore di frammentazione elevato indica che, anche se la memoria libera totale potrebbe essere sufficiente, non è contigua e quindi una richiesta di allocazione di grandi dimensioni potrebbe non riuscire.

Ecco alcune differenze principali tra questo strumento e lo strumento Visualizzatore della memoria:

  • Memory Viewer è puramente statico e si concentra sull'ordine del programma. Memory Profile fornisce una visualizzazione dinamica nel tempo durante l'intervallo di profilazione.
  • Memory Viewer visualizza le allocazioni di memoria in base al modulo XLA. Per i carichi di lavoro costituiti da più moduli XLA, il profilo della memoria fornisce una visione globale della memoria.