Dela via


GPU-delning på din Azure Stack Edge Pro GPU-enhet

GPU (Graphics Processing Unit) är en specialiserad processor som är utformad för att påskynda grafikrendering. GPU:er kan bearbeta många data samtidigt, vilket gör dem användbara för maskininlärning, videoredigering och spelprogram. Utöver CPU för generell beräkning kan dina Azure Stack Edge Pro GPU-enheter innehålla en eller två Nvidia Tesla T4-GPU:er för beräkningsintensiva arbetsbelastningar, till exempel maskinvaruaccelererad slutsatsdragning. Mer information finns i Nvidias Tesla T4 GPU.

Om GPU-delning

Många maskininlärnings- eller andra beräkningsarbetsbelastningar kanske inte behöver en dedikerad GPU. GPU:er kan delas och dela GPU:er mellan arbetsbelastningar i containrar eller virtuella datorer hjälper till att öka GPU-användningen utan att avsevärt påverka prestandafördelarna med GPU.

Använda GPU med virtuella datorer

På din Azure Stack Edge Pro-enhet kan en GPU inte delas när du distribuerar VM-arbetsbelastningar. En GPU kan bara mappas till en virtuell dator. Detta innebär att du bara kan ha en virtuell GPU-dator på en enhet med en GPU och två virtuella datorer på en enhet som är utrustad med två GPU:er. Det finns andra faktorer som också måste beaktas när du använder virtuella GPU-datorer på en enhet som har Kubernetes konfigurerat för containerbaserade arbetsbelastningar. Mer information finns i virtuella GPU-datorer och Kubernetes.

Använda GPU med containrar

Om du distribuerar containerbaserade arbetsbelastningar kan en GPU delas på mer än ett sätt på maskinvaru- och programvarunivån. Med Tesla T4 GPU på din Azure Stack Edge Pro-enhet är vi begränsade till programvarudelning. På enheten används följande två metoder för programdelning av GPU:

  • Den första metoden omfattar användning av miljövariabler för att ange antalet GPU:er som kan delas med tiden. Tänk på följande när du använder den här metoden:

    • Du kan ange en eller båda eller inga GPU:er med den här metoden. Det går inte att ange bråkanvändning.
    • Flera moduler kan mappas till en GPU, men samma modul kan inte mappas till mer än en GPU.
    • Med Nvidia SMI-utdata kan du se den totala GPU-användningen, inklusive minnesanvändningen.

    Mer information finns i Distribuera en IoT Edge-modul som använder GPU på enheten.

  • Den andra metoden kräver att du aktiverar multiprocesstjänsten på dina Nvidia-GPU:er. MPS är en körningstjänst som låter flera processer som använder CUDA köras samtidigt på en enda delad GPU. MPS tillåter överlappning av kernel- och memcopy-åtgärder från olika processer på GPU:n för att uppnå maximal användning. Mer information finns i Multi-Process Service.

    Tänk på följande när du använder den här metoden:

    • Med MPS kan du ange fler flaggor i GPU-distributionen.
    • Du kan ange bråkanvändning via MPS och därmed begränsa användningen av varje program som distribueras på enheten. Du kan ange den GPU-procentandel som ska användas för varje app under env avsnittet deployment.yaml i genom att lägga till följande parameter:
    // Example: application wants to limit gpu percentage to 20%
    
        env:
            - name: CUDA_MPS_ACTIVE_THREAD_PERCENTAGE
                value: "20"
    

GPU-användning

När du delar GPU på containerbaserade arbetsbelastningar som distribuerats på enheten kan du använda Nvidia System Management Interface (nvidia-smi). Nvidia-smi är ett kommandoradsverktyg som hjälper dig att hantera och övervaka Nvidia GPU-enheter. Mer information finns i Nvidia System Management Interface.

Om du vill visa GPU-användning ansluter du först till Enhetens PowerShell-gränssnitt. Get-HcsNvidiaSmi Kör kommandot och visa Nvidia SMI-utdata. Du kan också visa hur GPU-användningen ändras genom att aktivera MPS och sedan distribuera flera arbetsbelastningar på enheten. Mer information finns i Aktivera multiprocesstjänst.

Nästa steg