Esplora i dati di output del profilo visualizzati nell'interfaccia utente di Profiler SageMaker - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esplora i dati di output del profilo visualizzati nell'interfaccia utente di Profiler SageMaker

Questa sezione illustra l'interfaccia utente di SageMaker Profiler e fornisce suggerimenti su come utilizzarla e trarne informazioni.

Caricamento del profilo

Quando apri l'interfaccia utente SageMaker di Profiler, viene visualizzata la pagina Carica profilo. Per caricare e generare il pannello di controllo e la sequenza temporale, segui la procedura seguente.

Per caricare il profilo di un processo di addestramento
  1. Dalla sezione Elenco dei processi di addestramento, utilizza la casella di controllo per scegliere il processo di addestramento per il quale desideri caricare il profilo.

  2. Scegli Carica. Il nome del processo dovrebbe apparire nella sezione Profilo caricato nella parte superiore.

  3. Scegli il pulsante di opzione a sinistra del nome del processo per generare il pannello di controllo e la sequenza temporale. Tieni presente che quando scegli il pulsante di opzione, l'interfaccia utente apre automaticamente il pannello di controllo. Tieni inoltre presente che se generi le visualizzazioni mentre lo stato del lavoro e lo stato di caricamento sembrano ancora in corso, l'interfaccia utente di SageMaker Profiler genera grafici del dashboard e una cronologia con i dati del profilo più recenti raccolti dal processo di formazione in corso o dai dati del profilo parzialmente caricati.

Suggerimento

È possibile caricare e visualizzare un profilo alla volta. Per caricare un altro profilo, devi prima scaricare il profilo precedentemente caricato. Per scaricare un profilo, utilizza l'icona del cestino all'estremità destra del profilo nella sezione Profilo caricato.

Una schermata della pagina Load profile nell'interfaccia utente di Profiler SageMaker

Pannello di controllo

Dopo aver completato il caricamento e la selezione del processo di addestramento, l'interfaccia utente apre la pagina Pannello di controllo, dotata, per impostazione predefinita, dei seguenti pannelli.

  • GPUtempo attivo: questo grafico a torta mostra la percentuale di tempo GPU attivo rispetto GPU al tempo di inattività. Puoi verificare se GPUs sei più attivo che inattivo durante l'intero processo di formazione. GPUil tempo attivo si basa sui punti dati del profilo con un tasso di utilizzo superiore allo 0%, mentre il tempo di GPU inattività si riferisce ai punti dati profilati con un utilizzo dello 0%.

  • GPUutilizzo nel tempo: questo grafico temporale mostra il tasso di GPU utilizzo medio nel tempo per nodo, aggregando tutti i nodi in un unico grafico. Puoi verificare se GPUs hanno un carico di lavoro sbilanciato, problemi di sottoutilizzo, colli di bottiglia o problemi di inattività durante determinati intervalli di tempo. Per tenere traccia del tasso di utilizzo a livello individuale e delle relative esecuzioni del kernel, usa il. GPU Interfaccia della sequenza temporale Tieni presente che la raccolta delle GPU attività inizia dal punto in cui hai aggiunto la funzione di avvio del profiler SMProf.start_profiling() nello script di allenamento e si ferma a. SMProf.stop_profiling()

  • CPUtempo attivo: questo grafico a torta mostra la percentuale di tempo CPU attivo rispetto CPU al tempo di inattività. Puoi verificare se CPUs sei più attivo che inattivo durante l'intero processo di formazione. CPUil tempo attivo si basa sui punti dati profilati con un tasso di utilizzo superiore allo 0%, mentre il tempo di CPU inattività si riferisce ai punti dati profilati con un utilizzo dello 0%.

  • CPUutilizzo nel tempo: questo grafico temporale mostra il tasso di CPU utilizzo medio nel tempo per nodo, aggregando tutti i nodi in un unico grafico. È possibile verificare se sono bloccati o CPUs sottoutilizzati durante determinati intervalli di tempo. Per tenere traccia del tasso di utilizzo in CPUs linea con l'utilizzo individuale GPU e le esecuzioni del kernel, usa il. Interfaccia della sequenza temporale Tieni presente che i parametri di utilizzo iniziano dall'inizio dell'inizializzazione del processo.

  • Tempo impiegato da tutti i GPU kernel: questo grafico a torta mostra tutti i GPU kernel utilizzati durante il processo di formazione. Per impostazione predefinita, mostra i primi 15 GPU kernel come singoli settori e tutti gli altri kernel in un settore. Passa il mouse sui settori per visualizzare informazioni più dettagliate. Il valore mostra il tempo totale di funzionamento dei GPU kernel in secondi e la percentuale si basa sull'intero tempo del profilo.

  • Tempo impiegato dai primi 15 GPU kernel: questo grafico a torta mostra tutti i GPU kernel utilizzati durante il processo di formazione. Mostra i primi 15 GPU kernel suddivisi in singoli settori. Passa il mouse sui settori per visualizzare informazioni più dettagliate. Il valore mostra il tempo totale di funzionamento dei GPU kernel in secondi e la percentuale si basa sull'intero tempo del profilo.

  • Conteggi di avvio di tutti i GPU kernel: questo grafico a torta mostra il numero di conteggi per ogni GPU kernel lanciato durante il processo di formazione. Mostra i primi 15 GPU kernel come singoli settori e tutti gli altri kernel in un settore. Passa il mouse sui settori per visualizzare informazioni più dettagliate. Il valore mostra il conteggio totale dei GPU kernel lanciati e la percentuale si basa sul conteggio totale di tutti i kernel.

  • Numero di lanci dei primi 15 GPU kernel: questo grafico a torta mostra il numero di conteggi di ogni GPU kernel lanciato durante il processo di formazione. Mostra i primi 15 GPU kernel. Passa il mouse sui settori per visualizzare informazioni più dettagliate. Il valore mostra il conteggio totale dei GPU kernel lanciati e la percentuale si basa sul conteggio totale di tutti i kernel.

  • Distribuzione temporale delle fasi: questo istogramma mostra la distribuzione delle durate delle fasi su. GPUs Questo grafico viene generato solo dopo aver aggiunto l’annotatore delle fasi allo script di addestramento.

  • Distribuzione della precisione del kernel: questo grafico a torta mostra la percentuale di tempo impiegato per eseguire i kernel in diversi tipi di dati comeFP32,, FP16 e. INT32 INT8

  • GPUdistribuzione delle attività: questo grafico a torta mostra la percentuale di tempo dedicato ad GPU attività, come l'esecuzione dei kernel, la memoria (memcpyandmemset) e la sincronizzazione (). sync

  • GPUdistribuzione delle operazioni di memoria: questo grafico a torta mostra la percentuale di tempo dedicato alle operazioni di GPU memoria. Visualizza le attività memcopy e aiuta a capire se il processo di addestramento dedica troppo tempo a determinate operazioni di memoria.

  • Crea un nuovo istogramma: crea un nuovo diagramma di un parametro personalizzato che hai annotato manualmente durante Passaggio 1: adattare lo script di formazione utilizzando i moduli SageMaker Profiler Python. Quando aggiungi un'annotazione personalizzata a un nuovo istogramma, seleziona o digita il nome dell'annotazione che hai aggiunto nello script di addestramento. Ad esempio, nello script di addestramento dimostrativo della fase 1, step, Forward, Backward, Optimize e Loss sono le annotazioni personalizzate. Durante la creazione di un nuovo istogramma, i nomi delle annotazioni dovrebbero apparire nel menu a discesa per la selezione delle metriche. Se scegli Backward, l'interfaccia utente aggiunge al pannello di controllo l'istogramma del tempo impiegato per i passaggi all'indietro durante il periodo di tempo profilato. Questo tipo di istogramma è utile per verificare se vi sono valori anomali che richiedono tempi anormalmente più lunghi e determinano problemi con i colli di bottiglia.

Le schermate seguenti mostrano il rapporto tra tempo CPU attivo GPU e medio GPU e tasso di CPU utilizzo rispetto al tempo per nodo di elaborazione.

Una schermata della pagina Dashboard nell'interfaccia utente di Profiler SageMaker

La schermata seguente mostra un esempio di grafici a torta per confrontare quante volte vengono avviati i GPU kernel e misurare il tempo impiegato per eseguirli. Nei pannelli Tempo impiegato da tutti i GPU kernel e Numero di avvio di tutti i GPU kernel, potete anche specificare un numero intero nel campo di input per k per regolare il numero di legende da mostrare nei grafici. Ad esempio, se specifichi 10, i grafici mostrano rispettivamente i primi 10 kernel più eseguiti e lanciati.

Una schermata della pagina Dashboard nell'interfaccia utente di Profiler SageMaker

La schermata seguente mostra un esempio di istogramma della durata delle fasi e dei grafici a torta per la distribuzione della precisione del kernel, la distribuzione delle GPU attività e la distribuzione delle operazioni di memoria. GPU

Una schermata della pagina Dashboard nell'interfaccia utente di Profiler SageMaker

Interfaccia della sequenza temporale

Per ottenere una visione dettagliata delle risorse di calcolo a livello di operazioni e kernel pianificati CPUs ed eseguiti su diGPUs, utilizzate l'interfaccia Timeline.

È possibile ingrandire e rimpicciolire e spostarsi a sinistra o a destra nell'interfaccia della sequenza temporale utilizzando il mouse, i tasti [w, a, s, d] o i quattro tasti freccia sulla tastiera.

Suggerimento

Per ulteriori suggerimenti sui tasti di scelta rapida per interagire con l'interfaccia della Sequenza temporale, scegli Tasti di scelta rapida nel riquadro a sinistra.

Le tracce della sequenza temporale sono organizzate in una struttura ad albero, che fornisce informazioni dal livello di host a quello del dispositivo. Ad esempio, se esegui N istanze con otto GPUs istanze ciascuna, la struttura della sequenza temporale di ciascuna istanza sarebbe la seguente.

  • algo-inode: questi sono i SageMaker tag a cui assegnare i lavori alle istanze assegnate. La cifra inode viene assegnata in modo casuale. Ad esempio, se utilizzi 4 istanze, questa sezione si espande da algo-1 ad algo-4.

    • CPU— In questa sezione è possibile controllare il tasso di utilizzo medio CPU e i contatori delle prestazioni.

    • GPUs— In questa sezione puoi controllare il tasso di GPU utilizzo medio, il tasso di GPU utilizzo individuale e i kernel.

      • SUMUtilizzo: i tassi di GPU utilizzo medi per istanza.

      • HOST-0 PID -123 — Un nome univoco assegnato a ciascuna traccia del processo. L'acronimo PID è l'ID del processo e il numero aggiunto è il numero ID del processo registrato durante l'acquisizione dei dati dal processo. Questa sezione mostra le seguenti informazioni relative al processo.

        • GPU-i num_gpu - Il tasso di utilizzo dell'i -th nel tempo. num_gpu GPU

        • GPU-i num_gpu device — Il kernel viene eseguito sul dispositivo i -th. num_gpu GPU

          • stream i cuda_stream — CUDA stream che mostrano l'esecuzione del kernel sul dispositivo. GPU Per ulteriori informazioni sugli CUDA stream, consulta le diapositive in CUDAC/C++ Streams and PDF Concurrency fornite da. NVIDIA

        • GPU-i num_gpu host — Il kernel viene avviato sull'host i -th. num_gpu GPU

Le seguenti schermate mostrano la cronologia del profilo di un processo di formazione eseguito su ml.p4d.24xlarge istanze dotate di 8 A100 Tensor Core ciascuna. NVIDIA GPUs

Di seguito è riportata una visualizzazione ingrandita del profilo, che mostra una dozzina di fasi, tra cui un data loader intermittente tra step_232 e step_233 per il recupero del batch di dati successivo.

Pagina della cronologia nell'interfaccia utente di SageMaker Profiler, che visualizza il profilo di un esempio di lavoro di formazione.

Per ognuno di essiCPU, è possibile tenere traccia dei contatori di CPU utilizzo e prestazioni, ad esempio "clk_unhalted_ref.tsc" e"itlb_misses.miss_causes_a_walk", che sono indicativi delle istruzioni eseguite su. CPU

Per ognunoGPU, puoi visualizzare una cronologia dell'host e una sequenza temporale del dispositivo. Gli avvii del kernel si trovano sulla sequenza temporale dell'host e le esecuzioni del kernel si trovano sulla sequenza temporale del dispositivo. Puoi anche visualizzare le annotazioni (ad esempio avanti, indietro e ottimizza) se hai aggiunto uno script di addestramento nella timeline dell'host. GPU

Nella visualizzazione della timeline, puoi anche tenere traccia delle coppie di kernel. launch-and-run Questo ti aiuta a capire come un avvio del kernel pianificato su un host (CPU) viene eseguito sul dispositivo corrispondente. GPU

Suggerimento

Premi il tasto f per ingrandire il kernel selezionato.

Lo screenshot seguente è una vista ingrandita in step_233 e in step_234 dallo screenshot precedente. L'intervallo temporale selezionato nella schermata seguente è l'AllReduceoperazione, una fase essenziale di comunicazione e sincronizzazione nell'addestramento distribuito, eseguita sul dispositivo -0. GPU Nella schermata, notate che l'avvio del kernel nell'host -0 si connette al kernel run nel GPU GPU -0 device stream 1, indicato con la freccia di colore ciano.

Una schermata della pagina Timeline nell'interfaccia utente di Profiler SageMaker

Inoltre, quando selezioni una sequenza temporale, nel riquadro inferiore dell'interfaccia utente vengono visualizzate due schede informative, come mostrato nello screenshot precedente. La scheda Selezione corrente mostra i dettagli del kernel selezionato e l’avvio del kernel connesso dall'host. La direzione della connessione va sempre da host (CPU) a device (GPU) poiché ogni GPU kernel viene sempre chiamato da un. CPU La scheda Connessioni mostra la coppia di avvio ed esecuzione del kernel scelta. È possibile selezionarne una per spostarla al centro della vista Sequenza temporale.

Il seguente screenshot ingrandisce ulteriormente l’operazione AllReduce della coppia di avvio ed esecuzione.

Una schermata della pagina Timeline nell'interfaccia utente di Profiler SageMaker

Informazioni

In Informazioni, puoi accedere alle informazioni sul processo di formazione caricato, come il tipo di istanza, Amazon Resource Names (ARNs) delle risorse di calcolo fornite per il lavoro, i nomi dei nodi e gli iperparametri.

Impostazioni

Per impostazione predefinita, l'istanza dell'applicazione SageMaker Profiler UI è configurata per chiudersi dopo 2 ore di inattività. In Impostazioni, usa le seguenti impostazioni per regolare il timer di spegnimento automatico.

  • Abilita l’arresto automatico dell'app: sceglilo e impostalo su Abilitato per consentire all'applicazione di chiudersi automaticamente dopo il numero di ore di tempo di inattività specificato. Per disattivare la funzionalità di arresto automatico, scegli Disabilitato.

  • Soglia di arresto automatico in ore: se scegli Abilitato per Abilita arresto automatico dell'app, puoi impostare il tempo di soglia in ore per l’arresto automatico dell'applicazione. Per impostazione predefinita, il valore è 2.