Profila il modello sulle VM Cloud TPU

La profilazione ti consente di ottimizzare le prestazioni di addestramento del modello sulle Cloud TPU. Utilizza TensorBoard e il plug-in TensorBoard Cloud TPU per profilare il tuo modello.

Per ulteriori informazioni sull'utilizzo di TensorBoard con uno dei framework supportati, consulta i seguenti documenti:

Prerequisiti per il profiling di uno script di addestramento

Prima di utilizzare gli strumenti di profilazione TPU, devi:

  1. Avvia una sessione di addestramento del modello

    1. Configura una TPU v4-8 per addestrare un modello. La procedura di profilazione descritta in questo documento utilizza un modello ResNet, ma puoi utilizzare un altro modello a condizione che venga addestrato su una TPU v4.
    2. Nella VM TPU, aggiungi una riga per avviare il server del profiler allo script di addestramento.

      Per l'addestramento di ResNET, lo script di addestramento si trova all'indirizzo: /usr/share/tpu/tensorflow/resnet50_keras/resnet50.py.

      Inserisci le righe evidenziate in resnet50.py. All'inizio del file, aggiungi la seguente importazione:

      import tensorflow.compat.v2 as tf2
      

      Poco prima che gli script inizino il ciclo di addestramento, aggiungi la linea evidenziata:

      if name == 'main':
       tf.logging.set_verbosity(tf.logging.INFO)
       tf2.profiler.experimental.server.start(6000)
       app.run(main)
      

      Il server di profilazione di TensorFlow si avvia sulla VM TPU quando esegui lo script.

    3. Avvia l'addestramento del modello.

      Esegui lo script di addestramento e attendi di visualizzare l'output che indica che il modello è in fase di addestramento attivo. L'output dipende dal codice e dal modello. Cerca un output simile a Epoch 1/100. In alternativa, puoi andare alla pagina Cloud TPU nella console Google Cloud, selezionare la TPU e visualizzare il grafico dell'utilizzo della CPU. Anche se il grafico dell'utilizzo della CPU non mostra l'utilizzo della TPU, è un buon indicatore del fatto che la TPU sta addestrando il tuo modello.

Inizia a profilare l'addestramento del modello

Quando il modello è in fase di addestramento, apri una finestra del terminale o Cloud Shell separata. Per iniziare a eseguire il profiling dell'addestramento del modello, segui questi passaggi.

  1. Nella nuova finestra o shell, connettiti alla VM TPU con il port forwarding.

    gcloud compute tpus tpu-vm ssh your-vm --zone=us-central2-b --ssh-flag="-4 -L 9001:localhost:9001"

    L'inoltro di porte consente al browser locale di comunicare con il server TensorBoard in esecuzione sulla VM TPU.

  2. Installa i requisiti di TensorFlow.

    Nella VM TPU è installato TensorBoard per impostazione predefinita. Puoi anche installare TensorFlow manualmente. In ogni caso, potrebbero essere necessarie alcune dipendenze aggiuntive. Installa queste dipendenze sulla VM TPU eseguendo:

    pip3 install -r /usr/share/tpu/models/official/requirements.txt
  3. Installa il plug-in TensorBoard per Cloud TPU.

    Dalla VM TPU, esegui i seguenti comandi:

     pip3 install --upgrade "cloud-tpu-profiler>=2.3.0"
     pip3 install tensorflow
     pip3 install tensorboard_plugin_profile
  4. Avvia il server TensorBoard

    Esegui TensorBoard e crea una directory di log (logdir) sulla VM TPU in cui TensorBoard possa scrivere i dati di profilazione. Specifica la directory dei log utilizzando il flag --logdir. Ad esempio:

    mkdir log-directory
    TPU_LOAD_LIBRARY=0 tensorboard --logdir log-directory --port 9001

TensorBoard avvia un server web e ne mostra l'URL:

Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all
TensorBoard 2.3.0 at http://localhost:9001 (Press CTRL+C to quit)

Apri un browser web e vai all'URL visualizzato nell'output di TensorBoard. Seleziona Profilo dal menu a discesa in alto a destra nella pagina di TensorBoard. L'elenco degli strumenti di profilazione disponibili viene visualizzato nel menu a discesa Strumenti nella barra laterale sinistra.

immagine

Acquisisci un profilo sulle VM TPU

  1. Seleziona il pulsante ACQUISISCI PROFILO.
  2. Seleziona il pulsante di opzione Indirizzo IP.
  3. Digita HOSTNAME:6000 nel campo Profile Service URL.
  4. Seleziona il pulsante ACQUISISCI.

immagine

Visualizzare i dati del profilo con TensorBoard

Dopo aver acquisito un profilo, TensorBoard mostra la pagina overview_page. L'elenco degli strumenti di profilazione che puoi utilizzare viene visualizzato nel riquadro a sinistra.

immagine

Profilo

La scheda Profilo viene visualizzata dopo aver acquisito alcuni dati del modello. Potrebbe essere necessario fare clic sul pulsante di aggiornamento nella pagina di TensorBoard. Una volta che i dati sono disponibili, fai clic sulla scheda Profilo per visualizzare una selezione di strumenti utili per l'analisi del rendimento. Puoi utilizzare uno dei seguenti strumenti per creare il profilo del tuo modello.

Pagina Panoramica del profilo

La pagina Panoramica (overview_page), disponibile nella pagina Profilo, fornisce una panoramica di primo livello sul rendimento del modello durante un'esecuzione di acquisizione. La pagina mostra una panoramica aggregata di tutte le TPU e un'analisi complessiva della pipeline di input. Nel menu a discesa Host è disponibile un'opzione per selezionare singole TPU.

La pagina mostra i dati nei seguenti riquadri:

immagine

  • Riepilogo del rendimento

    • Utilizzo FLOPS: la percentuale di utilizzo delle unità di matrice TPU
  • Le dieci operazioni TensorFlow principali su TPU Mostra le operazioni TensorFlow che hanno richiesto più tempo:

    Ogni riga mostra il tempo di esecuzione di un'operazione (come percentuale del tempo impiegato da tutte le operazioni), il tempo cumulativo, la categoria, il nome e la frequenza FLOPS raggiunta.

  • Ambiente di esecuzione

    • Il numero di host utilizzati
    • Il tipo di TPU utilizzato
    • Il numero di core TPU

Analizza la pipeline di input

Lo strumento di analisi della pipeline di input fornisce approfondimenti sui risultati del rendimento. Lo strumento ti dice immediatamente se il tuo programma è vincolato all'input e può guidarti nell'analisi del dispositivo e del lato host per eseguire il debug di qualsiasi fase della pipeline che sta creando colli di bottiglia.

Consulta le indicazioni sul rendimento della pipeline di input per informazioni più approfondite sull'ottimizzazione del rendimento della pipeline.

Pipeline di input

Quando un programma TensorFlow legge i dati da un file, il processo di lettura è suddiviso in più fasi di elaborazione dei dati collegate in serie. L'output di un livello è l'input per quello successivo. Questo sistema di lettura è chiamato pipeline di input.

Una pipeline tipica per la lettura dei record dai file prevede le seguenti fasi:

  1. Lettura dei file
  2. Pre-elaborazione dei file (facoltativa)
  3. Trasferimento di file dalla macchina host al dispositivo

Una pipeline di input inefficiente può rallentare notevolmente l'applicazione. Un'applicazione è considerata limitata dall'input quando trascorre una parte significativa di tempo nella pipeline di input. Utilizza lo strumento di analisi della pipeline di input per capire dove la pipeline di input non è efficiente.

Dashboard della pipeline di input

Per aprire lo strumento di analisi della pipeline di input, seleziona Profilo, quindi input_pipeline_analyzer dal menu a discesa Strumenti.

La dashboard mostra i dettagli dell'analisi lato dispositivo e lato host.

Analisi lato dispositivo: mostra i dettagli sui tempi dei passaggi del dispositivo.

  • Statistiche relative al tempo del passaggio del dispositivo
  • % del tempo del passaggio del dispositivo in attesa di dati di input

Analisi lato host

Questa sezione mostra i dettagli dell'analisi lato host suddivisi in diverse categorie:

  • Coda dei dati da trasferire al dispositivo Tempo impiegato per inserire i dati in una coda infeed prima di trasferirli al dispositivo.
  • Pretrattamento dei dati Tempo impiegato per le operazioni di pre-elaborazione, come la decompressione delle immagini.
  • Lettura anticipata dei dati dai file Tempo impiegato per leggere i file, tra cui memorizzazione nella cache, prelettura e interlacciamento.
  • Lettura dei dati dai file on demand Tempo impiegato per leggere i dati dai file senza memorizzazione nella cache, precaricamento e interlacciamento.
  • Altre operazioni di lettura o elaborazione dei dati Tempo impiegato per altre operazioni relative all'input non utilizzando tf.data.

immagine

Per visualizzare le statistiche relative alle singole operazioni di inserimento e alle relative categorie distintamente per tempo di esecuzione, espandi la sezione Show Input Op statistics.

Viene visualizzata una tabella di dati di origine come la seguente:

immagine

Ogni voce della tabella contiene le seguenti informazioni:

  1. Operazione di input Mostra il nome dell'operazione di input di TensorFlow.
  2. Conteggio Mostra il numero totale di istanze dell'operazione eseguita durante il periodo di profilazione.
  3. Tempo totale (in ms) Mostra la somma cumulativa del tempo trascorso in ciascuna delle istanze dell'operazione.
  4. %tempo totale Mostra il tempo totale impiegato per un'operazione come frazione del tempo totale impiegato per l'elaborazione dell'input.
  5. Tempo di esecuzione totale (in ms) Mostra il tempo accumulato su tutte le istanze della funzione. Il tempo autonomo misura il tempo trascorso nel corpo della funzione, escluso il tempo trascorso nelle funzioni chiamate. Ad esempio, Iterator::PaddedBatch::Filter::ForeverRepeat::Mapviene chiamato da Iterator::PaddedBatch::Filter, pertanto il suo tempo di esecuzione totale è escluso dal tempo di esecuzione totale di quest'ultimo.
  6. %Tempo autonomo totale Mostra il tempo autonomo totale come frazione del tempo totale impiegato per l'elaborazione dell'input.
  7. Categoria Mostra la categoria di elaborazione dell'operazione di inserimento.

Profilo dell'operatore

Il profilo delle operazioni è uno strumento Cloud TPU che mostra le statistiche sul rendimento delle operazioni XLA eseguite durante un periodo di profilazione. Il profilo dell'operazione mostra:

  • Il rendimento dell'utilizzo di Cloud TPU da parte dell'applicazione come percentuale di tempo impiegato per le operazioni per categoria e di utilizzo dei FLOPS TPU.
  • Le operazioni che richiedono più tempo. Queste operazioni sono potenziali obiettivi per l'ottimizzazione.
  • Dettagli delle singole operazioni, tra cui forma, spaziatura interna ed espressioni che utilizzano l'operazione.

Puoi utilizzare il profilo operativo per trovare i target per l'ottimizzazione. Ad esempio, puoi utilizzare il profilo dell'operazione per identificare le operazioni XLA che richiedono più tempo per essere eseguite e quanti FLOPS TPU consumano.

Utilizzo del profilo dell'operatore

Lo strumento Profilo op contiene statistiche sul rendimento delle operazioni XLA. Puoi visualizzare i dati del profilo dell'operatore in TensorBoard facendo clic sulla scheda Profilo nella parte superiore dello schermo e selezionando op_profile dal menu a discesa Strumenti. Viene visualizzato un messaggio simile al seguente:

immagine

  1. Sezione Panoramica Mostra l'utilizzo di Cloud TPU e fornisce suggerimenti per l'ottimizzazione.
  2. Pannello di controllo Contiene i controlli che ti consentono di impostare il numero di operazioni visualizzate nella tabella, le operazioni da visualizzare e la modalità di ordinamento.
  3. Tabella Op Elenca le categorie di operazioni TensorFlow principali associate alle operazioni XLA. Queste operazioni sono ordinate in base alla percentuale di utilizzo di Cloud TPU.
  4. Schede dei dettagli delle operazioni Mostra i dettagli delle operazioni visualizzate quando passi il mouse sopra un'operazione nella tabella. Questi dettagli includono l'utilizzo di FLOPS, l'espressione in cui viene utilizzata l'operazione e il layout dell'operazione (adattamento).

Tabella Op XLA

La tabella delle operazioni elenca le categorie di operazioni XLA in ordine dalla percentuale di utilizzo di Cloud TPU più alta a quella più bassa. La tabella mostra la percentuale di tempo impiegato, il nome della categoria di operazioni, il nome dell'operazione TensorFlow associata e la percentuale di utilizzo dei FLOPS per la categoria. Per visualizzare (o nascondere) le dieci operazioni XLA più dispendiose in termini di tempo per una categoria, fai clic sul triangolo accanto al nome della categoria nella tabella.

immagine

  1. Tempo Mostra la percentuale totale di tempo impiegato da tutte le operazioni nella categoria in questione. Puoi fare clic per espandere la voce e visualizzare la suddivisione del tempo impiegato da ogni singola operazione.
  2. Primi dieci op. Il pulsante di attivazione/disattivazione accanto al nome di una categoria che mostra o nasconde le dieci operazioni più dispendiose in termini di tempo all'interno della categoria. Se nell'elenco delle operazioni è visualizzata una voce di operazione di fusione, puoi espanderla per visualizzare le operazioni elementari non di fusione che contiene.
  3. Operazione TensorFlow Mostra il nome dell'operazione TensorFlow associata all'operazione XLA.
  4. FLOPS Mostra l'utilizzo in FLOPS, ovvero il numero misurato di FLOPS espresso in percentuale dei FLOPS di picco di Cloud TPU. Maggiore è la percentuale di utilizzo dei FLOPS, più velocemente vengono eseguite le operazioni. La cella della tabella è codificata a colori: verde per un utilizzo elevato di FLOPS (buono) e rosso per un utilizzo ridotto di FLOPS (cattivo).

Schede dei dettagli dell'operazione

Quando selezioni una voce della tabella, viene visualizzata una scheda con i dettagli dell'operazione XLA o della categoria dell'operazione. Una scheda tipica ha questo aspetto:

immagine

  • Nome e Categoria mostrano il nome e la categoria dell'operazione XLA evidenziati.
  • Utilizzo FLOPS Mostra l'utilizzo FLOPS come percentuale del totale FLOPS possibile.
  • Espressione Mostra l'espressione XLA contenente l'operazione.
  • Utilizzo della memoria Mostra la percentuale di utilizzo massimo della memoria da parte del programma.
  • Layout (solo operazioni di convoluzione) Mostra la forma e il layout di un tensore, inclusa una descrizione di eventuali spaziature eseguite dal compilatore XLA.

Interpretazione dei risultati

Per le operazioni di convezione, l'utilizzo ridotto dei FLOPS TPU potrebbe essere dovuto a uno o entrambi i seguenti motivi:

  • padding (le unità della matrice vengono utilizzate parzialmente)
  • l'operazione di convergenza è vincolata dalla memoria

Questa sezione fornisce un'interpretazione di alcune metriche sul rendimento di un modello con un utilizzo ridotto di FLOP. In questo esempio, la fusione dell'output e la convoluzione hanno avuto un impatto significativo sul tempo di esecuzione. Sono state eseguite molte operazioni vettoriali o scalari con un utilizzo ridotto di FLOP.

Una strategia di ottimizzazione per questo tipo di profilo è trasformare le operazioni vettoriali o scalari in operazioni di convoluzione.

Nell'esempio seguente, %convolution.399 mostra FLOPS e utilizzo della memoria inferiori rispetto a %convolution.340 nell'esempio precedente.

immagine

In questo esempio, la dimensione del batch viene aumentata a 128 e la dimensione degli elementi a 8. In questo caso, solo il 5% delle unità della matrice viene utilizzato in modo efficace. L'utilizzo viene calcolato mediante (((batch_time * num_of_features) / padding_size ) / num_of_cores). Confronta i FLOPS in questo esempio con %convolution.340 nell'esempio precedente che non utilizza il padding.

Visualizzatore tracce

Trace Viewer è uno strumento di analisi delle prestazioni di Cloud TPU disponibile nella pagina Profilo. Lo strumento utilizza il Visualizzatore di profili degli eventi traccia di Chrome, pertanto funziona solo nel browser Chrome.

Lo strumento di visualizzazione dei traccianti mostra una sequenza temporale che indica:

  • Durata delle operazioni eseguite dal tuo modello TensorFlow.
  • La parte del sistema (TPU o macchina host) che ha eseguito un'operazione. In genere, la macchina host esegue operazioni infeed, che pre-elabora i dati di addestramento e li trasferisce alla TPU, mentre la TPU esegue l'addestramento effettivo del modello.

Trace dei tracciati ti consente di identificare i problemi di rendimento del modello, quindi di adottare le misure necessarie per risolverli. Ad esempio, a un livello generale, puoi identificare se l'infeed o l'addestramento del modello richiede la maggior parte del tempo. Se esamini più da vicino, puoi identificare le operazioni di TensorFlow che richiedono più tempo per essere eseguite.

Il visualizzatore di Trace è limitato a 1 milione di eventi per ogni Cloud TPU. Se devi valutare più eventi, utilizza il visualizzatore delle tracce in streaming.

Interfaccia del visualizzatore di Trace

Per aprire il visualizzatore di traccia, vai a TensorBoard, fai clic sulla scheda Profilo nella parte superiore dello schermo e scegli trace_viewer dal menu a discesa Strumenti. Viene visualizzato il visualizzatore con l'esecuzione più recente:

immagine

Questa schermata contiene i seguenti elementi principali (contrassegnati con numeri nella schermata precedente):

  1. Menu a discesa Esecuzioni Contiene tutte le esecuzioni per le quali hai acquisito informazioni sulle tracce. La visualizzazione predefinita è l'esecuzione più recente, ma puoi aprire il menu a discesa per selezionare un'altra esecuzione.
  2. Menu a discesa Strumenti Consente di selezionare diversi strumenti di profilazione.
  3. Menu a discesa Host Consente di selezionare un host contenente un insieme di Cloud TPU.
  4. Riquadro Spostamenti Mostra le operazioni eseguite da Cloud TPU e dalla macchina ospitante nel tempo.
  5. Riquadro dei dettagli Mostra informazioni aggiuntive sulle operazioni selezionate nel riquadro Timeline.

Ecco un'immagine più dettagliata del riquadro della sequenza temporale:

immagine

Il riquadro Spostamenti contiene i seguenti elementi:

  1. Barra in alto Contiene vari controlli ausiliari.
  2. Asse del tempo Mostra il tempo relativo all'inizio della traccia.
  3. Etichette di sezioni e tracce Ogni sezione contiene più tracce e ha un triangolo a sinistra su cui puoi fare clic per espandere e comprimere la sezione. Esiste una sezione per ogni elemento di elaborazione del sistema.
  4. Selettore di strumenti Contiene vari strumenti per interagire con il visualizzatore di traccia.
  5. Eventi Mostra il momento in cui è stata eseguita un'operazione o la durata dei meta-eventi, ad esempio i passaggi di addestramento.
  6. Barra delle schede verticale Questa barra non ha uno scopo utile per Cloud TPU. La barra fa parte dello strumento di visualizzazione delle tracce per uso generale fornito da Chrome, che viene utilizzato per varie attività di analisi del rendimento.

Sezioni e canali

Lo strumento di visualizzazione Trace contiene le seguenti sezioni:

  • Una sezione per ogni nodo TPU, etichettata con il numero del chip TPU e il core TPU all'interno del chip (ad esempio, "Chip 2: core TPU 1"). Ogni sezione del nodo TPU contiene i seguenti canali:
    • Passaggio Mostra la durata dei passaggi di addestramento eseguiti sulla TPU.
    • Operazioni TensorFlow Mostra le operazioni TensorFlow eseguite sulla TPU.
    • XLA Ops mostra le operazioni XLA eseguite sulla TPU. Ogni operazione viene tradotta in una o più operazioni XLA. Il compilatore XLA traduce le operazioni XLA in codice che viene eseguito sulla TPU.
  • Una sezione per i thread in esecuzione sulla CPU host,indicata come "Thread host". La sezione contiene un canale per ogni thread della CPU. Nota: puoi ignorare le informazioni visualizzate accanto alle etichette delle sezioni.

Selettore di strumenti Timeline

Puoi interagire con la visualizzazione della cronologia utilizzando il selettore dello strumento della cronologia in TensorBoard. Fai clic su uno strumento della cronologia per attivarlo e metterlo in evidenza. Per spostare il selettore degli strumenti della sequenza temporale, fai clic nell'area tratteggiata in alto e trascinalo dove preferisci.

Utilizza gli strumenti della sequenza temporale come segue:

Strumento di selezione
fai clic su un evento per selezionarlo o trascina per selezionare più eventi. Nel riquadro dei dettagli vengono visualizzate informazioni aggiuntive sull'evento o sugli eventi selezionati (nome, ora di inizio e durata).

Strumento di panoramica
Trascina per eseguire la panoramica della visualizzazione della cronologia orizzontalmente e verticalmente.

Strumento Zoom
Trascina verso l'alto per aumentare lo zoom o verso il basso per diminuirlo sull'asse orizzontale (tempo). La posizione orizzontale del cursore del mouse determina il centro intorno al quale avviene lo zoom.

Nota: se lo strumento di zoom rimane attivo dopo aver rilasciato il pulsante del mouse, fai clic sulla visualizzazione della sequenza temporale per disattivarlo.

Strumento di temporizzazione
Trascina in orizzontale per contrassegnare un intervallo di tempo. La durata dell'intervallo viene visualizzata sull'asse del tempo. Per regolare l'intervallo, trascina le estremità. Per cancellare l'intervallo, fai clic in un punto qualsiasi all'interno della visualizzazione della sequenza temporale.

Se selezioni un altro strumento, l'intervallo rimane contrassegnato.

Visualizzatore della memoria

Il visualizzatore della memoria ti consente di visualizzare l'utilizzo di picco della memoria e le tendenze di utilizzo della memoria per il tuo programma.

L'interfaccia utente del visualizzatore della memoria è la seguente:

immagine

  1. Menu a discesa Host: seleziona un host TPU e i moduli di ottimizzazione di alto livello XLA (HLO) da visualizzare.
  2. Panoramica della memoria Mostra l'allocazione e le dimensioni di picco della memoria senza spaziatura interna.
  3. Grafico Spazio di lavoro Mostra il picco di utilizzo della memoria e un grafico delle tendenze di utilizzo della memoria per il programma. Posiziona il puntatore del mouse su un buffer in uno dei grafici dei buffer per visualizzare ulteriori informazioni nella scheda di allocazione dei buffer.
  4. Grafici dei buffer Due grafici che mostrano l'allocazione del buffer al picco di utilizzo della memoria. Posiziona il cursore del mouse su un buffer in uno dei grafici dei buffer per visualizzare ulteriori informazioni nella scheda dei dettagli del buffer.
  5. Scheda Dettagli allocazione buffer Mostra i dettagli dell'allocazione di un buffer.

Riquadro Panoramica della memoria

Il riquadro Panoramica della memoria (in alto) mostra il nome del modulo e l'allocazione massima della memoria impostata quando la dimensione dell'allocazione del buffer totale raggiunge il massimo. Per il confronto viene mostrata anche la dimensione dell'allocazione di picco non riempita.

immagine

Grafico dello spazio di lavoro

Questo grafico mostra il picco di utilizzo della memoria e un grafico delle tendenze di utilizzo della memoria per il programma. La linea verticale indica il picco di utilizzo della memoria per il programma. Questi diagrammi mostrano se il tuo programma può essere inserito nello spazio di memoria globale disponibile.

immagine

Ogni punto nel grafico rappresenta un "punto del programma" nel programma HLO XLA. La linea mostra come l'utilizzo della memoria del programma cambia nel tempo.

Interazione con gli elementi del grafico con buffer

Quando passi il mouse sopra un buffer nei grafici dei buffer, nel grafico dello spazio di lavoro viene visualizzata una linea orizzontale che mostra la durata del buffer.

immagine

Lo spessore della linea orizzontale indica l'ordine di grandezza relativo della dimensione del buffer rispetto all'allocazione massima della memoria. La lunghezza della linea indica la durata del buffer.

Grafici di buffer

Due grafici mostrano la suddivisione dell'utilizzo della memoria durante il picco di utilizzo.

immagine

  • Per ordine del programma Mostra i buffer da sinistra a destra nell'ordine in cui erano attivi durante l'esecuzione del programma.

  • Per dimensione Mostra i buffer attivi durante l'esecuzione del programma in ordine decrescente di dimensione.

Scheda dei dettagli dell'allocazione del buffer

Quando passi il mouse sopra un buffer visualizzato in uno dei grafici dei buffer, viene visualizzata una scheda dei dettagli sull'allocazione del buffer. Una scheda dei dettagli tipica ha il seguente aspetto:

immagine

  1. Nome: il nome dell'operazione XLA.
  2. Categoria: la categoria dell'operazione.
  3. Dimensioni: le dimensioni dell'allocazione del buffer (inclusa la spaziatura interna).
  4. Dimensioni senza spaziatura: le dimensioni dell'allocazione del buffer senza spaziatura.
  5. Espansione: l'entità relativa delle dimensioni del buffer con spaziatura rispetto alle dimensioni senza spaziatura.
  6. Memoria aggiuntiva: indica la quantità di memoria aggiuntiva utilizzata per il riempimento.
  7. Forma: descrive il rango, le dimensioni e il tipo di dati dell'array N-dimensionale.
  8. Nome operazione TensorFlow: mostra il nome dell'operazione di TensorFlow associata all'allocazione del buffer.
  9. Tipo di allocazione: indica la categoria di allocazione del buffer: Parametro, Output, Locale per thread e Temporaneo (ad esempio, allocazione del buffer all'interno di una fusione).

Errori di memoria insufficiente

Se esegui un modello e ricevi un errore "Out of memory" (Memoria insufficiente), segui le linee guida riportate in questo documento per acquisire un profilo. Attendi che lo script addestri il modello prima di avviare il profiler. L'output del profiling può aiutarti a capire cosa ha causato l'errore.