Profila il tuo modello sulle VM Cloud TPU

La profilazione consente di ottimizzare le prestazioni di addestramento del modello sulle Cloud TPU. Per profilare il modello puoi usare TensorBoard e il plug-in Cloud TPU TensorBoard.

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

Prerequisiti per la profilazione di uno script di addestramento

Prima di utilizzare gli strumenti di profilazione TPU, devi:

  1. Avvia una sessione di addestramento di modelli

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

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

      Inserisci le righe evidenziate in resnet50.py. Aggiungi la seguente importazione all'inizio del file:

      import tensorflow.compat.v2 as tf2
      

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

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

      Il server del profiler TensorFlow si avvia sulla VM TPU quando esegui lo script.

    3. Avvia l'addestramento del modello.

      Esegui lo script di addestramento e attendi finché non visualizzi un 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 accedere alla pagina Cloud TPU nella console Google Cloud, selezionare la tua TPU e visualizzare il grafico sull'utilizzo della CPU. Anche se il grafico sull'utilizzo della CPU non mostra l'utilizzo della TPU, è un buon indicatore del fatto che la TPU sta addestrando il tuo modello.

Inizia la profilazione dell'addestramento del modello

Durante l'addestramento del modello, apri una finestra del terminale separata o Cloud Shell. Segui questi passaggi per iniziare la profilazione dell'addestramento del modello.

  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"
    

    Il port forwarding consente al browser locale di comunicare con il server TensorBoard in esecuzione sulla VM TPU.

  2. Installa i requisiti TensorFlow {: id="install-tensorboard"}.

    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 {: id="install-plugin"}.

    Dalla VM TPU, esegui questi 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 può scrivere dati di profilazione. Specifica la directory del 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 visualizza il relativo 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 TensorBoard. L'elenco degli strumenti di profilazione disponibili è visualizzato nel menu a discesa tools nella barra laterale di sinistra.

immagine

Acquisisci un profilo sulle VM TPU

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

immagine

Visualizza i dati del profilo con TensorBoard

Dopo aver acquisito un profilo, TensorBoard visualizza 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, se fai clic sulla scheda Profilo viene visualizzata una serie di strumenti utili per l'analisi del rendimento. Puoi utilizzare uno qualsiasi dei seguenti strumenti per profilare il modello.

Pagina Panoramica del profilo

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

La pagina mostra i dati nei seguenti riquadri:

immagine

  • Riepilogo del rendimento

    • Utilizzo FLOPS: l'utilizzo percentuale delle unità della matrice TPU
  • Le prime dieci operazioni di TensorFlow su TPU mostra le operazioni di TensorFlow che hanno consumato più tempo:

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

  • Esegui ambiente

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

Analizzatore pipeline di input

L'analizzatore della pipeline di input fornisce insight sui risultati delle prestazioni. Lo strumento indica immediatamente se il programma è associato all'input e può guidarti attraverso l'analisi lato host e dispositivo per eseguire il debug di qualsiasi fase della pipeline che crea colli di bottiglia.

Consulta le indicazioni sulle prestazioni della pipeline di input per insight più approfonditi sull'ottimizzazione delle prestazioni 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 una fase è l'input della fase successiva. Questo sistema di lettura è chiamato pipeline di input.

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

  1. Lettura di file
  2. Pre-elaborazione file (facoltativa)
  3. Trasferimento di file dal computer host al dispositivo

Una pipeline di input inefficiente può rallentare gravemente l'applicazione. Un'applicazione è considerata vincolata all'input quando trascorre una notevole quantità di tempo nella sua pipeline di input. Utilizza l'analizzatore della pipeline di input per capire dove la pipeline di input è inefficiente.

Dashboard della pipeline di input

Per aprire l'analizzatore della pipeline di input, seleziona Profile (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 di passo del dispositivo.

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

Analisi lato host

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

  • Inserimento in coda dei dati da trasferire sul dispositivo Tempo dedicato all'inserimento dei dati in una coda di inserimento dei dati prima del trasferimento dei dati al dispositivo.
  • Pre-elaborazione dei dati Tempo impiegato per le operazioni di pre-elaborazione, ad esempio la decompressione delle immagini.
  • Leggere in anticipo i dati dei file Il tempo dedicato alla lettura dei file, inclusi memorizzazione nella cache, precaricamento e interleaving.
  • Lettura dei dati dai file on demand Tempo dedicato alla lettura dei dati dei file senza memorizzazione nella cache, precaricamento e interleaving.
  • Altre operazioni di lettura o elaborazione dei dati Tempo trascorso su altre operazioni relative all'input che non utilizzano tf.data.

immagine

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

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

immagine

Ogni voce della tabella contiene le seguenti informazioni:

  1. Input Op (Operazione di input) Mostra il nome dell'operazione di TensorFlow dell'operazione di input.
  2. Conteggio mostra il numero totale di istanze dell'operazione eseguite durante il periodo di profilazione.
  3. Tempo totale (in ms) Mostra la somma cumulativa del tempo trascorso in ciascuna istanza dell'operazione.
  4. %tempo totale mostra il tempo totale trascorso su un'operazione come frazione del tempo totale dedicato all'elaborazione dell'input.
  5. Tempo autonomo totale (in ms) Mostra il tempo accumulato in tutte le istanze della funzione. Il tempo autonomo misura il tempo trascorso all'interno del corpo della funzione, escludendo quello trascorso in qualsiasi funzione chiamata. Ad esempio, Iterator::PaddedBatch::Filter::ForeverRepeat::Map viene richiamato da Iterator::PaddedBatch::Filter, di conseguenza il suo tempo autonomo totale viene escluso dal tempo stesso totale di quest'ultimo.
  6. %totale di self-time: mostra il tempo autonomo totale sotto forma di frazione del tempo totale dedicato all'elaborazione dell'input.
  7. Categoria: mostra la categoria di elaborazione dell'operazione di input.

Profilo operativo

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

  • L'efficacia dell'applicazione di Cloud TPU come percentuale di tempo speso sulle operazioni per categoria e di utilizzo di FLOPS TPU.
  • Le operazioni che richiedono più tempo. Queste operazioni sono potenziali bersagli 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 operativo per identificare le operazioni XLA che richiedono più tempo per essere eseguite e il numero di FLOPS TPU utilizzati.

Utilizzo del profilo operativo

Lo strumento Profilo operativo contiene statistiche sul rendimento delle operazioni XLA. Puoi visualizzare i dati del profilo operativo in TensorBoard facendo clic sulla scheda Profile (Profilo) nella parte superiore dello schermo e selezionando op_profile dal menu a discesa Strumenti. Verrà visualizzata una schermata simile alla seguente:

immagine

  1. Sezione Panoramica: mostra l'utilizzo di Cloud TPU e fornisce suggerimenti per l'ottimizzazione.
  2. Pannello di controllo Contiene controlli che consentono di impostare il numero di operazioni visualizzate nella tabella, quali operazioni vengono visualizzate e come sono ordinate.
  3. La tabella op elenca le principali categorie di operazioni TensorFlow associate alle operazioni XLA. Queste operazioni sono ordinate per percentuale di utilizzo di Cloud TPU.
  4. Schede dei dettagli dell'operazione Mostra i dettagli sulle operazioni visualizzate quando posizioni il puntatore del mouse su un'operazione nella tabella. Questi dettagli includono l'utilizzo di FLOPS, l'espressione in cui viene utilizzata l'operazione e il layout delle operazioni (fit).

Tabella operativa XLA

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

immagine

  1. Tempo mostra la percentuale totale di tempo trascorso da tutte le operazioni in quella categoria. Puoi fare clic per espandere la voce e visualizzare il tempo trascorso in base a ogni singola operazione.
  2. Le dieci operazioni principali: il pulsante di attivazione/disattivazione accanto al nome di una categoria mostra/nasconde le prime dieci operazioni all'interno della categoria. Se nell'elenco delle operazioni viene visualizzata una voce relativa a un'operazione di fusione, puoi espanderla per visualizzare le operazioni non fusion a livello di elemento che contiene.
  3. TensorFlow Op Mostra il nome dell'operazione TensorFlow associato all'operazione XLA.
  4. FLOPS Mostra l'utilizzo dei FLOPS, ovvero il numero misurato di FLOPS espresso come percentuale dei FLOPS di picco di Cloud TPU. Maggiore è la percentuale di utilizzo dei FLOPS, più rapida sarà l'esecuzione delle operazioni. Alla cella della tabella è associato un colore: verde per un utilizzo elevato di FLOPS (buono) e rosso per un utilizzo ridotto di FLOPS (non valido).

Schede dei dettagli dell'operatività

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

immagine

  • Nome e Categoria: mostra il nome e la categoria dell'operazione XLA evidenziati.
  • Utilizzo FLOPS Mostra l'utilizzo dei FLOPS come percentuale del totale possibile di FLOPS.
  • Espressione: mostra l'espressione XLA contenente l'operazione.
  • Utilizzo memoria: mostra la percentuale di utilizzo di picco della memoria da parte del tuo programma.
  • Layout (solo operazioni di convoluzione) Mostra la forma e il layout di un tensore, inclusa una descrizione dell'eventuale spaziatura interna eseguita dal compilatore XLA.

Interpretazione dei risultati

Per le operazioni di convoluzione, un basso utilizzo di FLOPS TPU potrebbe essere dovuto a uno dei seguenti motivi o a entrambi:

  • spaziatura interna (le unità della matrice sono utilizzate parzialmente)
  • l'operazione di convoluzione è vincolata alla memoria

Questa sezione fornisce un'interpretazione di alcune metriche delle prestazioni di un modello con un basso utilizzo di FLOP. In questo esempio, fusione di output e convoluzione hanno dominato il tempo di esecuzione. Molte operazioni vettoriali o scalari avevano un basso utilizzo 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 un utilizzo della memoria e dei FLOPS inferiore rispetto a %convolution.340 nell'esempio precedente.

immagine

In questo esempio, la dimensione del batch viene riempita a 128, mentre quella delle caratteristiche viene riempita a 8. In questo caso, solo il 5% delle unità matriciali viene usato in modo efficace. L'utilizzo viene calcolato come segue: (((batch_time * num_of_features) / padding_size ) / num_of_cores). Confronta i FLOPS in questo esempio con il valore %convolution.340 dell'esempio precedente, che non utilizza spaziatura interna.

Visualizzatore Trace

Il visualizzatore Trace è uno strumento di analisi delle prestazioni di Cloud TPU disponibile nella pagina Profilo. Lo strumento utilizza il visualizzatore di profilazione degli eventi di traccia di Chrome in modo che funzioni solo nel browser Chrome.

Il visualizzatore tracce mostra una sequenza temporale che mostra:

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

Il visualizzatore Trace ti consente di identificare i problemi di prestazioni del modello e poi di risolverli. Ad esempio, a livello generale, puoi identificare se l'addestramento dei modelli o l'infeed richiede la maggior parte del tempo. Visualizzando in dettaglio, puoi identificare quali operazioni di TensorFlow richiedono più tempo per l'esecuzione.

Il visualizzatore Trace è limitato a un milione di eventi per ogni Cloud TPU. Se devi valutare più eventi, utilizza il visualizzatore della traccia di flussi di dati.

Interfaccia del visualizzatore Trace

Per aprire il visualizzatore delle tracce, vai a TensorBoard, fai clic sulla scheda Profile (Profilo) nella parte superiore dello schermo e scegli trace_viewer dal menu a discesa Tools (Strumenti). Lo spettatore viene visualizzato con l'esecuzione più recente:

immagine

Questa schermata contiene i seguenti elementi principali (contrassegnati da numeri nello screenshot precedente):

  1. Elenco a discesa Esecuzioni Contiene tutte le esecuzioni per le quali hai acquisito informazioni sulla traccia. La visualizzazione predefinita è l'esecuzione più recente, ma puoi aprire il menu a discesa per selezionarne un'altra.
  2. Menu a discesa Strumenti: consente di selezionare diversi strumenti di profilazione.
  3. Menu a discesa Host seleziona un host che contiene un set di Cloud TPU.
  4. Riquadro della sequenza temporale mostra le operazioni eseguite nel tempo da Cloud TPU e dalla macchina host.
  5. Riquadro Dettagli: mostra ulteriori informazioni per le operazioni selezionate nel riquadro Timeline.

Ecco un'occhiata più da vicino al riquadro della sequenza temporale:

immagine

Il riquadro Cronologia contiene i seguenti elementi:

  1. Barra superiore Contiene vari controlli ausiliari.
  2. Asse temporale: mostra l'ora relativa all'inizio della traccia.
  3. Etichette di sezioni e tracce. Ogni sezione contiene più tracce e ha un triangolo sulla sinistra su cui puoi fare clic per espandere e comprimere la sezione. C'è una sezione per ogni elemento di elaborazione del sistema.
  4. Selettore dello strumento Contiene vari strumenti per interagire con il visualizzatore 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 della scheda verticale Questa barra non ha uno scopo utile per Cloud TPU. La barra fa parte dello strumento di visualizzazione delle tracce per uso generico fornito da Chrome, utilizzato per varie attività di analisi delle prestazioni.

Sezioni e tracce

Il visualizzatore Trace contiene le seguenti sezioni:

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

Selettore dello strumento Timeline

Puoi interagire con la visualizzazione della sequenza temporale utilizzando il selettore dello strumento Sequenza temporale in TensorBoard. Puoi fare clic su uno strumento della sequenza temporale oppure utilizzare le seguenti scorciatoie da tastiera per attivare ed evidenziare uno strumento. Per spostare il selettore dello strumento della sequenza temporale, fai clic nell'area tratteggiata in alto e trascina il selettore dove vuoi.

Utilizza gli strumenti della sequenza temporale nel seguente modo:

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

Strumento Panoramica
Trascina per eseguire la panoramica della visualizzazione cronologica orizzontalmente e verticalmente.

Strumento Zoom
Trascina verso l'alto per aumentare lo zoom o verso il basso per diminuire lo zoom lungo l'asse temporale orizzontale. La posizione orizzontale del cursore del mouse determina il centro attorno al quale viene eseguito lo zoom.

Nota: se lo strumento di zoom rimane attivo dopo aver rilasciato il pulsante del mouse, fai clic sulla visualizzazione cronologica per disattivare lo strumento.

Strumento di sincronizzazione
Trascina in orizzontale per contrassegnare un intervallo di tempo. La lunghezza dell'intervallo viene visualizzata sull'asse del tempo. Per regolare l'intervallo, trascinane le estremità. Per cancellare l'intervallo, fai clic in un punto qualsiasi all'interno della visualizzazione cronologica.

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

Visualizzatore memoria

Il visualizzatore memoria consente di visualizzare i picchi di utilizzo della memoria e le tendenze di utilizzo della memoria per il programma.

L'interfaccia utente del visualizzatore della memoria ha un aspetto simile a questo:

immagine

  1. Elenco a discesa Host: seleziona un host TPU e moduli HLO (XLA High Level Analyzer) da visualizzare.
  2. Panoramica della memoria: mostra l'allocazione e le dimensioni del picco della memoria senza spaziatura interna.
  3. Grafico dello spazio di lavoro: mostra l'utilizzo dei picchi di 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 del buffer per visualizzare informazioni aggiuntive nella scheda di allocazione del buffer.
  4. Grafici buffer: due grafici che mostrano l'allocazione del buffer nei picchi di utilizzo della memoria. Posiziona il puntatore del mouse su un buffer in uno dei grafici del buffer per visualizzare ulteriori informazioni nella scheda dei dettagli del buffer.
  5. Scheda dei dettagli di allocazione del buffer Mostra i dettagli di allocazione per un buffer.

Riquadro Panoramica della memoria

Il riquadro Panoramica della memoria (superiore) mostra il nome del modulo e il picco di allocazione della memoria impostata quando la dimensione totale di allocazione del buffer raggiunge il valore massimo. Viene mostrata anche la dimensione di allocazione massima senza riempimento per il confronto.

immagine

Grafico dello spazio di lavoro

Questo grafico mostra l'utilizzo massimo della memoria e un grafico delle tendenze di utilizzo della memoria per il tuo programma. La linea verticale indica il picco di utilizzo della memoria per il programma. Questo grafico mostra se il programma è in grado di occupare lo spazio di memoria globale disponibile.

immagine

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

Interazione con gli elementi del grafico a buffer

Quando posizioni il puntatore del mouse su un buffer nei grafici abuffer, 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'entità relativa della dimensione del buffer rispetto all'allocazione del picco della memoria. La lunghezza della riga indica la durata del buffer.

Grafici buffer

Due grafici mostrano la suddivisione dell'utilizzo della memoria nei momenti di picco.

immagine

  • Per ordine del programma Visualizza 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.

Scheda dei dettagli dell'allocazione del buffer

Quando posizioni il puntatore del mouse su un buffer visualizzato in uno dei grafici del buffer, viene visualizzata una scheda dei dettagli di allocazione del buffer. Una tipica scheda dei dettagli è simile alla seguente:

immagine

  1. Nome: il nome dell'operazione XLA.
  2. Categoria: la categoria dell'operazione.
  3. Dimensioni: la dimensione dell'allocazione del buffer (inclusa la spaziatura interna).
  4. Dimensioni senza spaziatura interna: la dimensione dell'allocazione del buffer senza spaziatura interna.
  5. Espansione: l'entità relativa della dimensione del buffer con riempimento rispetto alla dimensione non imbottita.
  6. Memoria extra: indica la quantità di memoria extra utilizzata per la spaziatura interna.
  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 TensorFlow associata all'allocazione del buffer.
  9. Tipo di allocazione: indica la categoria di allocazione del buffer: parametro, output, Thread locale e temporaneo (ad esempio, allocazione del buffer all'interno di una fusione).

Errori di memoria insufficiente

Se esegui un modello e ricevi un errore di "memoria esaurita", segui le linee guida in questo documento per acquisire un profilo. Prima di avviare il profiler, attendi che lo script possa addestrare il modello. L'output di profilazione consente di capire la causa dell'errore.