Share via


Condivisione GPU nel dispositivo Azure Stack Edge Pro GPU

L'unità di elaborazione grafica (GPU) è un processore specializzato progettato per accelerare il rendering della grafica. Le GPU possono elaborare contemporaneamente molti dati, rendendoli utili per l'apprendimento automatico, la modifica video e le applicazioni di gioco. Oltre alla CPU per il calcolo generico, i dispositivi AZURE Stack Edge Pro GPU possono contenere una o due GPU Nvidia Tesla T4 per carichi di lavoro a elevato utilizzo di calcolo, ad esempio l'inferenza accelerata hardware. Per altre informazioni, vedere Gpu Tesla T4 di Nvidia.

Informazioni sulla condivisione GPU

Molti carichi di lavoro di calcolo o di Machine Learning potrebbero non avere bisogno di una GPU dedicata. Le GPU possono essere condivise e condivise tra carichi di lavoro in contenitori o vm consente di aumentare l'utilizzo della GPU senza influire significativamente sui vantaggi delle prestazioni della GPU.

Uso della GPU con macchine virtuali

Nel dispositivo Azure Stack Edge Pro non è possibile condividere una GPU durante la distribuzione dei carichi di lavoro delle macchine virtuali. È possibile eseguire il mapping di una GPU a una sola macchina virtuale. Ciò implica che è possibile avere una sola macchina virtuale GPU in un dispositivo con una GPU e due macchine virtuali in un dispositivo dotato di due GPU. Esistono anche altri fattori da considerare quando si usano macchine virtuali GPU in un dispositivo con Kubernetes configurato per i carichi di lavoro in contenitori. Per altre informazioni, vedere VM GPU e Kubernetes.

Uso della GPU con contenitori

Se si distribuiscono carichi di lavoro in contenitori, una GPU può essere condivisa in più modi a livello hardware e software. Con la GPU Tesla T4 nel dispositivo Azure Stack Edge Pro, la condivisione del software è limitata. Nel dispositivo vengono usati i due approcci seguenti per la condivisione software della GPU:

  • Il primo approccio prevede l'uso di variabili di ambiente per specificare il numero di GPU che possono essere condivise in tempo. Quando si usa questo approccio, considerare le avvertenze seguenti:

    • È possibile specificare una o entrambe le GPU o nessuna con questo metodo. Non è possibile specificare l'utilizzo frazionaria.
    • È possibile eseguire il mapping di più moduli a una GPU, ma non è possibile eseguire il mapping dello stesso modulo a più GPU.
    • Con l'output nvidia SMI è possibile visualizzare l'utilizzo complessivo della GPU, incluso l'utilizzo della memoria.

    Per altre informazioni, vedere Come distribuire un modulo IoT Edge che usa GPU nel dispositivo.

  • Il secondo approccio richiede di abilitare il servizio multiprocesso nelle GPU Nvidia. MPS è un servizio di runtime che consente a più processi che usano CUDA di eseguire simultaneamente su una singola GPU condivisa. MPS consente la sovrapposizione di operazioni kernel e memcopy da processi diversi nella GPU per ottenere il massimo utilizzo. Per altre informazioni, vedere Servizio multiprocessore.

    Quando si usa questo approccio, considerare le avvertenze seguenti:

    • MPS consente di specificare più flag nella distribuzione GPU.
    • È possibile specificare l'utilizzo frazionaria tramite MPS limitando così l'utilizzo di ogni applicazione distribuita nel dispositivo. È possibile specificare la percentuale di GPU da usare per ogni app nella env sezione di deployment.yaml aggiungendo il parametro seguente:
    // Example: application wants to limit gpu percentage to 20%
    
        env:
            - name: CUDA_MPS_ACTIVE_THREAD_PERCENTAGE
                value: "20"
    

Utilizzo della GPU

Quando si condivide LA GPU nei carichi di lavoro in contenitori distribuiti nel dispositivo, è possibile usare nvidia System Management Interface (nvidia-smi). Nvidia-smi è un'utilità della riga di comando che consente di gestire e monitorare i dispositivi GPU Nvidia. Per altre informazioni, vedere Nvidia System Management Interface.For more information, see Nvidia System Management Interface.

Per visualizzare l'utilizzo della GPU, connettersi prima all'interfaccia di PowerShell del dispositivo. Eseguire il Get-HcsNvidiaSmi comando e visualizzare l'output nvidia SMI. È anche possibile visualizzare il modo in cui l'utilizzo della GPU cambia abilitando MPS e quindi distribuendo più carichi di lavoro nel dispositivo. Per altre informazioni, vedere Abilitare il servizio multiprocessore.

Passaggi successivi