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
avsnittetdeployment.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.