Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
AMD GPU Virtual Machine (VM) groottes in Azure kunnen flexibiliteit bieden in prestaties en kosten, waardoor hoge rekenvermogen wordt geboden, terwijl u de juiste configuratie kunt kiezen voor uw workload vereisten. AKS ondersteunt linux-knooppuntgroepen met AMD GPU om rekenintensieve Kubernetes-workloads uit te voeren.
Dit artikel helpt u bij het inrichten van knooppunten met schedulable AMD GPU's op nieuwe en bestaande AKS-clusters.
Beperkingen
- AKS biedt momenteel ondersteuning voor de
Standard_ND96isr_MI300X_v5Azure VM-grootte, mogelijk gemaakt door de MI300-serie AMD GPU. - Het bijwerken van een bestaande knooppuntgroep om een AMD GPU VM-grootte toe te voegen, wordt niet ondersteund in AKS.
- Het bijwerken van een niet-AMD GPU-knooppuntgroep met een AMD GPU-VM-grootte wordt niet ondersteund.
-
AzureLinux,WindowsAzureLinuxOSGuardenflatcarworden niet ondersteund met AMD GPU.
Voordat u begint
- In dit artikel wordt ervan uitgegaan dat u een bestaand AKS-cluster hebt. Als u geen cluster hebt, maakt u er een met behulp van de Azure CLI, Azure PowerShell of Azure Portal.
- U moet Azure CLI versie 2.72.2 of hoger hebben geïnstalleerd om het
--gpu-driverveld in te stellen. Voeraz --versionuit om de versie te vinden. Als u Azure CLI wilt installeren of upgraden, raadpleegt u Azure CLI installeren. - Als u de
aks-previewAzure CLI-extensie hebt geïnstalleerd, werkt u de versie bij naar 18.0.0b2 of hoger.
Opmerking
GPU-ingeschakelde virtuele machines bevatten gespecialiseerde hardware die onderhevig is aan hogere prijsstelling en beschikbaarheid per regio. Raadpleeg voor meer informatie het prijsgereedschap en de beschikbaarheid per regio.
Verkrijg de inloggegevens voor uw cluster
Verkrijg de inloggegevens voor je AKS-cluster door de az aks get-credentials-opdracht te gebruiken. De volgende voorbeeldcommandoregel haalt de referenties voor het cluster myAKSCluster in de myResourceGroup resourcegroep op.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Opties voor het gebruik van AMD GPU's
Het gebruik van AMD GPU's omvat de installatie van verschillende AMD GPU-softwareonderdelen, zoals de AMD-apparaatinvoegtoepassing voor Kubernetes, GPU-stuurprogramma's en meer.
Opmerking
Op dit moment beheert AKS de installatie van GPU-stuurprogramma's of de invoegtoepassing AMD GPU-apparaten op knooppuntgroepen met AMD GPU niet en automatiseert deze niet.
De functie AKSInfinibandSupport registreren
Als uw AMD GPU-VM-grootte RDMA is ingeschakeld met de
rnamenconventie (bijvoorbeeldStandard_ND96isr_MI300X_v5), moet u ervoor zorgen dat de machines in de node pool op hetzelfde fysieke Infiniband-netwerk komen. Als u dit wilt bereiken, registreert u deAKSInfinibandSupportfunctievlag met behulp van deaz feature registeropdracht:az feature register --name AKSInfinibandSupport --namespace Microsoft.ContainerServiceControleer de registratiestatus met behulp van de
az feature showopdracht:az feature show \ --namespace "Microsoft.ContainerService" \ --name AKSInfinibandSupportMaak een knooppuntgroep met AMD GPU met behulp van de opdracht en sla de
az aks nodepool addstandaardinstallatie van stuurprogramma's over door het API-veld--gpu-driverin te stellen op de waardenone:az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --node-vm-size Standard_ND96isr_MI300X_v5 \ --gpu-driver noneOpmerking
AKS dwingt momenteel het gebruik van het
gpu-driverveld af om de automatische installatie van stuurprogramma's over te slaan tijdens het maken van een AMD GPU-knooppuntgroep.
De AMD GPU-operator implementeren in AKS
De AMD GPU-operator automatiseert het beheer en de implementatie van alle AMD-softwareonderdelen die nodig zijn om GPU in te richten, inclusief installatie van stuurprogramma's, de AMD-apparaatinvoegtoepassing voor Kubernetes, de AMD-containerruntime en meer. Omdat de AMD GPU-operator deze onderdelen afhandelt, hoeft u de AMD-apparaatinvoegtoepassing niet afzonderlijk te installeren op uw AKS-cluster. Dit betekent ook dat de automatische installatie van het GPU-stuurprogramma moet worden overgeslagen om de AMD GPU-operator op AKS te kunnen gebruiken.
Volg de AMD-documentatie om de GPU-operator te installeren.
Controleer de status van de AMD-GPU's in uw knooppuntgroep met behulp van de
kubectl get nodesopdracht:kubectl get nodes -o custom-columns=NAME:.metadata.name,GPUs:.status.capacity.'amd\.com/gpu'Uw output zou eruit moeten zien zoals de volgende voorbeeldoutput.
NAME STATUS ROLES AGE VERSION aks-gpunp-00000000 Ready agent 2m4s v1.31.7
Controleer of de AMD GPU's schedulable zijn
Nadat u de knooppuntgroep hebt gemaakt, controleert u of GPU's beschikbaar zijn in uw AKS-cluster.
Noteer de nodes in je cluster met behulp van de
kubectl get nodesopdracht.kubectl get nodesBevestig dat de GPU's te plannen zijn met behulp van de
kubectl describe nodeopdracht.kubectl describe node aks-gpunp-00000000Onder de sectie Capaciteit moet de GPU worden weergegeven als
amd.com/gpu: 1. De uitvoer moet er ongeveer uitzien als in de volgende verkorte voorbeelduitvoer:Name: aks-gpunp-00000000 Roles: agent Labels: accelerator=amd [...] Capacity: [...] amd.com/gpu: 1 [...]
Een workload met AMD GPU uitvoeren
Als u de AMD GPU in actie wilt zien, kunt u een GPU-ondersteunde workload plannen met de juiste resourceaanvraag. In dit voorbeeld zullen we een Tensorflow-taak uitvoeren op de MNIST dataset.
Maak een bestand met de naam samples-tf-mnist-demo.yaml en plak het volgende YAML-manifest, waarin een resourcelimiet van
amd.com/gpu: 1is opgenomen:apiVersion: batch/v1 kind: Job metadata: labels: app: samples-tf-mnist-demo name: samples-tf-mnist-demo spec: template: metadata: labels: app: samples-tf-mnist-demo spec: containers: - name: samples-tf-mnist-demo image: mcr.microsoft.com/azuredocs/samples-tf-mnist-demo:gpu args: ["--max_steps", "500"] imagePullPolicy: IfNotPresent resources: limits: amd.com/gpu: 1 restartPolicy: OnFailure tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule"Voer de taak uit met behulp van de
kubectl applyopdracht, die het manifestbestand verwerkt en de gedefinieerde Kubernetes-objecten creëert.kubectl apply -f samples-tf-mnist-demo.yaml
Bekijk de status van de workload met GPU-ondersteuning
Houd de voortgang van de taak bij met behulp van de
kubectl get jobsopdracht met de--watchvlag. Het kan enkele minuten duren om eerst de afbeelding op te halen en de gegevensset te verwerken.kubectl get jobs samples-tf-mnist-demo --watchWanneer de COMPLETIONS-kolom 1/1 aangeeft, is de taak succesvol voltooid, zoals te zien is in het volgende voorbeeldoutput:
NAME COMPLETIONS DURATION AGE samples-tf-mnist-demo 0/1 3m29s 3m29s samples-tf-mnist-demo 1/1 3m10s 3m36sBeëindig het
kubectl --watch-proces met Ctrl-C.Verkrijg de naam van de pod met behulp van de
kubectl get podsopdracht.kubectl get pods --selector app=samples-tf-mnist-demo
De hulpbronnen opschonen
Verwijder de bijbehorende Kubernetes-objecten die je in dit artikel hebt gemaakt met behulp van de kubectl delete job-opdracht.
kubectl delete jobs samples-tf-mnist-demo
Volgende stappen
- Verken de verschillende opslagopties voor uw GPU-toepassing op AKS.
- Meer informatie over Ray-clusters in AKS.
- Gebruik NVIDIA GPU's voor uw rekenintensieve AKS-workloads.