Supporto Dataflow per GPU

Questa pagina fornisce informazioni di base sul funzionamento delle GPU con Dataflow.

Prima di iniziare il job di sviluppo con le GPU, esamina il flusso di lavoro degli sviluppatori e i suggerimenti per la creazione di pipeline utilizzando le GPU descritte in Sviluppo con le GPU.

Per informazioni ed esempi su come abilitare le GPU nei job Dataflow, consulta Utilizzo delle GPU ed Elaborazione delle immagini satellitari Landsat con GPU. Per altri esempi, consulta:

L'utilizzo delle GPU nei job Dataflow consente di accelerare alcune attività di elaborazione dei dati. Le GPU possono eseguire determinati calcoli più velocemente delle CPU. Questi calcoli sono in genere algebra numerica o lineare, spesso utilizzati nei casi d'uso di elaborazione di immagini e machine learning. L'entità dell'aumento delle prestazioni varia a seconda del caso d'uso, del tipo di calcolo e della quantità di dati elaborati.

Prerequisiti per l'utilizzo di GPU in Dataflow

Dataflow esegue il codice utente nelle VM worker all'interno di un container Docker. Queste VM worker eseguono un sistema operativo ottimizzato per i container. Affinché i job Dataflow utilizzino le GPU, devono essere eseguite le seguenti installazioni:

Prezzi

I job che utilizzano le GPU comportano addebiti come specificato nella pagina dei prezzi di Dataflow.

Considerazioni

Specifiche dei tipi di macchina

Per informazioni dettagliate sul supporto tipo di macchina per ogni modello di GPU, consulta la pagina relativa alle piattaforme GPU. Le GPU supportate con i tipi di macchine N1 supportano anche i tipi di macchine N1 personalizzate.

Il tipo e il numero di GPU definiscono le restrizioni del limite superiore sulla quantità di vCPU e memoria disponibili che i worker possono avere. Fai riferimento alla sezione Disponibilità per trovare le limitazioni corrispondenti.

Se specifichi un numero maggiore di CPU o memoria, potrebbe essere necessario specificare un numero più elevato di GPU.

Per maggiori dettagli, consulta la pagina sulle GPU su Compute Engine.

GPU e parallelismo dei worker

Per le pipeline Python che utilizzano l'architettura Dataflow Runner v2, Dataflow avvia un processo dell'SDK Apache Beam per core VM. Ogni processo dell'SDK viene eseguito nel proprio container Docker e a sua volta genera molti thread, ognuno dei quali elabora i dati in entrata.

Le GPU utilizzano più architetture di processo e le GPU nei worker di Dataflow sono visibili a tutti i processi e i thread. Pertanto, per evitare l'abbonamento in eccesso alla memoria GPU, potresti dover gestire l'accesso alla GPU. Se utilizzi TensorFlow, uno dei seguenti suggerimenti può aiutarti a evitare un abbonamento in eccesso alla memoria della GPU:

  • Configurare i worker Dataflow per avviare un solo processo Python containerizzato, indipendentemente dal numero di vCPU worker. Per effettuare questa configurazione, quando avvii il job, utilizza le seguenti opzioni della pipeline:

    • --experiments=no_use_multiple_sdk_containers
    • --number_of_worker_harness_threads

    Per maggiori informazioni sul numero di thread da utilizzare, consulta Ridurre il numero di thread

  • Utilizza un tipo di macchina con una sola vCPU.

Quando più processi TensorFlow utilizzano la stessa GPU, potrebbe essere necessario configurare ogni processo per occupare solo una parte della memoria della GPU. Questa configurazione consente di evitare che tutti i processi insieme vengano sovrascritti dall'utente la memoria GPU. Perché effettuare questa configurazione non è semplice, limita il numero di processi di TensorFlow.

Disponibilità

Per informazioni sui tipi di GPU disponibili e sulla configurazione delle VM worker, consulta Località di Dataflow.

Passaggi successivi