Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: AKS az Azure Local-on
Megjegyzés
A Windows Serveren futó AKS gpu-kkal kapcsolatos információkért lásd: GPU-k használata a Windows Serveren futó AKS-ben.
A grafikus feldolgozási egységek (GPU-k) olyan nagy számítási feladatokhoz hasznosak, mint a gépi tanulás, a mély tanulás stb. Ez a cikk azt ismerteti, hogyan használhatók GPU-k a nagy számítási igényű számítási feladatokhoz az Azure Arc által engedélyezett AKS-ben.
Támogatott GPU-modellek
Az Azure Helyi Azure Kubernetes Service (AKS) a következő GPU-modelleket támogatja. A GPU-k csak Linux operációsrendszer-csomópontkészleteken támogatottak. A GPU-k windowsos operációsrendszer-csomópontkészleteken nem támogatottak.
| Gyártó | GPU-modell | Támogatott verzió |
|---|---|---|
| NVIDIA | A2 | 2311.2 |
| NVIDIA | A16 | 2402.0 |
| NVIDIA | T4 | 2408.0 |
| NVIDIA | L4 | 2512.0 |
| NVIDIA | L40 | 2512.0 |
| NVIDIA | L40S | 2512.0 |
| NVIDIA | RTX Pro 6000 | 2603.0 |
Támogatott GPU virtuálisgép-méretek
Az Azure Local AKS az alábbi virtuálisgép-méreteket támogatja minden GPU-modellhez.
Az NVIDIA T4-et az NK T4 termékváltozatok támogatják
| Virtuális gép mérete | GPU-k | GPU-memória: GiB | vCPU | Memória: GiB |
|---|---|---|---|---|
| Standard_NK6 | 1 | 8 | 6 | 12 |
| Standard_NK12 | 2 | 16 | 12 | 24 |
Az NVIDIA A2-t az NC2 A2 termékváltozatok támogatják
| Virtuális gép mérete | GPU-k | GPU-memória: GiB | vCPU | Memória: GiB |
|---|---|---|---|---|
| Standard_NC4_A2 | 1 | 16 | 4 | 8 |
| Standard_NC8_A2 | 1 | 16 | 8 | 16 |
| Standard_NC16_A2 | 2 | 32 | 16 | 64 |
| Standard_NC32_A2 | 2 | 32 | 32 | 128 |
Az NVIDIA A16-ot az NC2 A16 termékváltozatok támogatják
| Virtuális gép mérete | GPU-k | GPU-memória: GiB | vCPU | Memória: GiB |
|---|---|---|---|---|
| Standard_NC4_A16 | 1 | 16 | 4 | 8 |
| Standard_NC8_A16 | 1 | 16 | 8 | 16 |
| Standard_NC16_A16 | 2 | 32 | 16 | 64 |
| Standard_NC32_A16 | 2 | 32 | 32 | 128 |
Az NVIDIA L4-et az NC2 L4 termékváltozatok támogatják (előzetes verzió)
| Virtuális gép mérete | GPU-k | GPU-memória: GiB | vCPU | Memória: GiB |
|---|---|---|---|---|
| Standard_NC16_L4_1 | 1 | 24 | 16 | 64 |
| Standard_NC16_L4_2 | 2 | 48 | 16 | 64 |
| Standard_NC32_L4_1 | 1 | 24 | 32 | 128 |
| Standard_NC32_L4_2 | 2 | 48 | 32 | 128 |
Az NVIDIA L40-et az NC2 L40 termékváltozatok támogatják (előzetes verzió)
| Virtuális gép mérete | GPU-k | GPU-memória: GiB | vCPU | Memória: GiB |
|---|---|---|---|---|
| Standard_NC16_L40_1 | 1 | 48 | 16 | 64 |
| Standard_NC16_L40_2 | 2 | 96 | 16 | 64 |
| Standard_NC32_L40_1 | 1 | 48 | 32 | 128 |
| Standard_NC32_L40_2 | 2 | 96 | 32 | 128 |
Az NVIDIA L40S-t az NC2 L40S termékváltozatok támogatják (előzetes verzió)
| Virtuális gép mérete | GPU-k | GPU-memória: GiB | vCPU | Memória: GiB |
|---|---|---|---|---|
| Standard_NC16_L40S_1 | 1 | 48 | 16 | 64 |
| Standard_NC16_L40S_2 | 2 | 96 | 16 | 64 |
| Standard_NC32_L40S_1 | 1 | 48 | 32 | 128 |
| Standard_NC32_L40S_2 | 2 | 96 | 32 | 128 |
Az NVIDIA RTX Pro 6000-et az NC2 RTX Pro 6000 termékváltozatok támogatják (előzetes verzió)
| Virtuális gép mérete | GPU-k | GPU-memória: GiB | vCPU | Memória: GiB |
|---|---|---|---|---|
| Standard_NC16_RTX6000Pro_1 | 1 | 48 | 16 | 64 |
| Standard_NC16_RTX6000Pro_2 | 2 | 96 | 16 | 64 |
| Standard_NC32_RTX6000Pro_1 | 1 | 48 | 32 | 128 |
| Standard_NC32_RTX6000Pro_2 | 2 | 96 | 32 | 128 |
Mielőtt elkezdené
Ha GPU-kat szeretne használni az AKS Arcban, a fürt üzembe helyezése előtt telepítse a szükséges GPU-illesztőprogramokat. Kövesse az ebben a szakaszban leírt lépéseket.
1. lépés: az operációs rendszer telepítése
Telepítse az Azure Local operációs rendszert helyileg az Azure Local fürtjének minden egyes szerverére.
2. lépés: Az NVIDIA-gazdagép illesztőprogramjának eltávolítása
Minden hosztgépen lépjen a Vezérlőpult > Alkalmazások hozzáadása vagy eltávolítása oldalára, távolítsa el az NVIDIA hosztillesztőprogramot, majd indítsa újra a gépet. A gép újraindítása után győződjön meg arról, hogy az illesztőprogram sikeresen el lett távolítva. Nyisson meg egy emelt szintű PowerShell-terminált, és futtassa a következő parancsot:
Get-PnpDevice | select status, class, friendlyname, instanceid | where {$_.friendlyname -eq "3D Video Controller"}
A GPU-eszközök hibaállapotban jelennek meg az alábbi példakimenetben látható módon:
Error 3D Video Controller PCI\VEN_10DE&DEV_1EB8&SUBSYS_12A210DE&REV_A1\4&32EEF88F&0&0000
Error 3D Video Controller PCI\VEN_10DE&DEV_1EB8&SUBSYS_12A210DE&REV_A1\4&3569C1D3&0&0000
3. lépés: A gazdagép illesztőprogramjának csatlakozásának megszüntetése a gazdagépről
A gazdaillesztő eltávolításakor a fizikai GPU hibaállapotba kerül. El kell távolítania az összes GPU-eszközt a hosztról.
Minden GPU-eszközhöz (3D videovezérlő) futtassa a következő parancsokat a PowerShellben. Másolja ki a példányazonosítót; például PCI\VEN_10DE&DEV_1EB8&SUBSYS_12A210DE&REV_A1\4&32EEF88F&0&0000 az előző parancskimenetből:
$id1 = "<Copy and paste GPU instance id into this string>"
$lp1 = (Get-PnpDeviceProperty -KeyName DEVPKEY_Device_LocationPaths -InstanceId $id1).Data[0]
Disable-PnpDevice -InstanceId $id1 -Confirm:$false
Dismount-VMHostAssignableDevice -LocationPath $lp1 -Force
Annak ellenőrzéséhez, hogy a GPU-k megfelelően vannak-e lecsatlakoztatva a gazdagépről, futtassa a következő parancsot. A GPU-knak a Unknown következő állapotban kell megjelennie:
Get-PnpDevice | select status, class, friendlyname, instanceid | where {$_.friendlyname -eq "3D Video Controller"}
Unknown 3D Video Controller PCI\VEN_10DE&DEV_1EB8&SUBSYS_12A210DE&REV_A1\4&32EEF88F&0&0000
Unknown 3D Video Controller PCI\VEN_10DE&DEV_1EB8&SUBSYS_12A210DE&REV_A1\4&3569C1D3&0&0000
4. lépés: Az NVIDIA-kockázatcsökkentő illesztőprogram letöltése és telepítése
A szoftver tartalmazhat olyan összetevőket, amelyeket az NVIDIA Corporation vagy annak licencadói fejlesztettek ki és birtokoltak. Ezeknek az összetevőknek a használatát az NVIDIA végfelhasználói licencszerződése szabályozza.
Tekintse meg az NVIDIA adatközpontjának dokumentációját az NVIDIA-csökkentő illesztőprogram letöltéséhez. A meghajtó letöltése után bontsa ki az archívumot, és telepítse a védelmi meghajtót minden gazdagépre. Ezt a PowerShell-szkriptet követve letöltheti és kinyerheti a hibaelhárítási illesztőprogramot:
Invoke-WebRequest -Uri "https://docs.nvidia.com/datacenter/tesla/gpu-passthrough/nvidia_azure_stack_inf_v2022.10.13_public.zip" -OutFile "nvidia_azure_stack_inf_v2022.10.13_public.zip"
mkdir nvidia-mitigation-driver
Expand-Archive .\nvidia_azure_stack_inf_v2022.10.13_public.zip .\nvidia-mitigation-driver\
A kockázatcsökkentő illesztőprogram telepítéséhez lépjen a kinyert fájlokat tartalmazó mappába, és válassza ki a GPU-illesztőfájlt az Azure Helyi gazdagépeken telepített tényleges GPU-típus alapján. Ha például a típus A2 GPU, kattintson a jobb gombbal a nvidia_azure_stack_A2_base.inf fájlra, és válassza a Telepítés lehetőséget.
A kockázatcsökkentő illesztőprogramot a következő parancsok parancssorból való futtatásával is telepítheti:
pnputil /add-driver nvidia_azure_stack_A2_base.inf /install
pnputil /scan-devices
A mérséklési illesztőprogram telepítése után a GPU-k az OK állapotban jelennek meg az Nvidia A2_base – Leválasztva alatt:
Get-PnpDevice | select status, class, friendlyname, instanceid | where {$_.friendlyname -match "Nvidia"}"
OK Nvidia A2_base - Dismounted PCI\VEN_10DE&DEV_1EB8&SUBSYS_12A210DE&REV_A1\4&32EEF88F&0&0000
OK Nvidia A2_base - Dismounted PCI\VEN_10DE&DEV_1EB8&SUBSYS_12A210DE&REV_A1\4&3569C1D3&0&0000
5. lépés: ismételje meg az 1–4. lépést
Ismételje meg az 1–4. lépést az Azure Local-fürt minden kiszolgálójához.
6. lépés: Folytassa az Azure Local fürt telepítését
Folytassa az Azure Local fürt telepítését az Azure Local telepítés lépéseinek követésével.
Az elérhető GPU-kompatibilis virtuálisgép-termékváltozatok listájának lekérése
Amikor az Azure Local fürt üzembe helyezése befejeződött, futtassa a következő CLI parancsot az üzembe helyezés során elérhető VM SKU-k megjelenítéséhez. Ha megfelelően telepíti a GPU-illesztőprogramokat, a parancs felsorolja a megfelelő GPU virtuálisgép-termékváltozatokat:
az aksarc vmsize list --custom-location <custom location ID> -g <resource group name>
Új számítási feladatfürt létrehozása GPU-kompatibilis csomópontkészlettel
Jelenleg csak GPU-kompatibilis csomópontkészleteket használhat Linux-csomópontkészletekhez. Új Kubernetes-klaszter létrehozásához:
az aksarc create -n <aks cluster name> -g <resource group name> --custom-location <custom location ID> --vnet-ids <vnet ID>
Az alábbi példa egy két GPU-kompatibilis (NVIDIA A2) csomópontkészletet ad hozzá egy Standard_NC4_A2 virtuálisgép-termékváltozattal:
az aksarc nodepool add --cluster-name <aks cluster name> -n <node pool name> -g <resource group name> --node-count 2 --node-vm-size Standard_NC4_A2 --os-type Linux
Győződjön meg arról, hogy a GPU-kat ütemezheti
A GPU-csomópontkészlet létrehozása után ellenőrizze, hogy ütemezhet-e GPU-kat a Kubernetesben. Először listázhatja a fürt csomópontjait a kubectl get nodes paranccsal:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
moc-l9qz36vtxzj Ready control-plane,master 6m14s v1.22.6
moc-lhbkqoncefu Ready <none> 3m19s v1.22.6
moc-li87udi8l9s Ready <none> 3m5s v1.22.6
Most használja a kubectl leíró csomópont parancsot annak ellenőrzéséhez, hogy ütemezheti-e a GPU-kat. A Kapacitás szakaszban a GPU nvidia.com/gpu: 1 jelenik meg.
kubectl describe <node> | findstr "gpu"
A kimenet megjeleníti a gpu-kat a feldolgozó csomópontról, és az alábbi példához hasonlóan néz ki:
Capacity:
cpu: 4
ephemeral-storage: 103110508Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 7865020Ki
nvidia.com/gpu: 1
pods: 110
GPU-kompatibilis számítási feladat futtatása
Az előző lépések elvégzése után hozzon létre egy új YAML-fájlt a teszteléshez, például gpupod.yaml. Másolja és illessze be a következő YAML-et a gpupod.yaml nevű új fájlba, majd mentse:
apiVersion: v1
kind: Pod
metadata:
name: cuda-vector-add
spec:
restartPolicy: OnFailure
containers:
- name: cuda-vector-add
image: "k8s.gcr.io/cuda-vector-add:v0.1"
resources:
limits:
nvidia.com/gpu: 1
Futtassa a következő parancsot a mintaalkalmazás üzembe helyezéséhez:
kubectl apply -f gpupod.yaml
Ellenőrizze, hogy a pod elindult-e, fut-e, és hogy a GPU hozzá van rendelve:
kubectl describe pod cuda-vector-add | findstr 'gpu'
Az előző parancsnak egy hozzárendelt GPU-t kell megjelenítenie:
nvidia.com/gpu: 1
nvidia.com/gpu: 1
Ellenőrizze a pod naplófájlját, hogy a teszt sikeres volt-e:
kubectl logs cuda-vector-add
Az alábbi példakimenet az előző parancsból származik:
[Vector addition of 50000 elements]
Copy input data from the host memory to the CUDA device
CUDA kernel launch with 196 blocks of 256 threads
Copy output data from the CUDA device to the host memory
Test PASSED
Done
Ha verzióeltérési hibát kap az illesztőprogramok behívásakor, például "A CUDA-illesztőprogram verziója nem elegendő a CUDA futtatókörnyezet verziójához", tekintse át az NVIDIA illesztőprogram-mátrix kompatibilitási diagramját.
GYIK
Mi történik a GPU-kompatibilis csomópontkészlet frissítése során?
A GPU-kompatibilis csomópontkészletek frissítése ugyanazt a működés közbeni frissítési mintát követi, amelyet a normál csomópontkészletekhez használnak. Ahhoz, hogy a frissítés sikeres legyen, a Kubernetesnek új virtuális gépeket kell létrehoznia a fizikai gazdaszámítógépen, amelyek egy vagy több fizikai GPU-val rendelkeznek az eszköz hozzárendeléséhez. Ez a rendelkezésre állás biztosítja, hogy az alkalmazások továbbra is futni tudjanak, amikor a Kubernetes podokat ütemez ezen a frissített csomóponton.
Frissítés előtt:
- Tervezze meg a leállási időt a frissítés során.
- Fizikai gazdagépenként legyen egy extra GPU, ha a Standard_NK6-t futtat, vagy két extra GPU, ha a Standard_NK12-t futtat. Ha teljes kapacitással fut, és nincs extra GPU-ja, a frissítés előtt skálázza le a csomópontkészletet egyetlen csomópontra, majd a frissítés sikeres végrehajtása után skálázza fel a skálázást.
Mi történik, ha nem rendelkezem extra fizikai GPU-kkal a fizikai gépemen a frissítés során?
Ha a gördülő frissítés megkönnyítése érdekében további GPU-erőforrások nélkül indítja el a frissítést egy fürtön, a frissítési folyamat addig lefagy, amíg el nem érhető egy GPU. Ha teljes kapacitással fut, és nincs extra GPU-ja, a frissítés előtt skálázza le a csomópontkészletet egyetlen csomópontra, majd a frissítés sikeres végrehajtása után skálázza fel a skálázást.