Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure'daki AMD GPU Sanal Makinesi (VM) boyutları performans ve maliyet esnekliği sağlayarak yüksek işlem kapasitesi sunarken iş yükü gereksinimleriniz için doğru yapılandırmayı seçmenizi sağlar. AKS, işlem yoğunluklu Kubernetes iş yüklerini çalıştırmak için AMD GPU özellikli Linux düğüm havuzlarını destekler.
Bu makale, yeni ve mevcut AKS kümelerinde zamanlanabilir AMD GPU'ları ile düğümler sağlamanıza yardımcı olur.
Sınırlamalar
- AKS şu anda
Standard_ND96isr_MI300X_v5tarafından desteklenen Azure VM boyutunu desteklemektedir. - Mevcut bir düğüm havuzunu AMD GPU VM tipi eklemek için güncellemek AKS'de desteklenmez.
- AMD GPU desteklemeyen bir düğüm havuzunun AMD GPU VM boyutuyla güncellenmesi desteklenmez.
-
AzureLinux,WindowsAzureLinuxOSGuardveflatcarAMD GPU ile desteklenmez.
Başlamadan önce
- Bu makale, mevcut bir AKS kümeniz olduğunu varsayar. Kümeniz yoksa Azure CLI, Azure PowerShell veya Azure portalını kullanarak bir küme oluşturun.
- Alanı ayarlamak için Azure CLI sürüm 2.72.2 veya üstünün yüklü olması gereklidir. Sürümü bulmak için
az --versionkomutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme. -
aks-previewAzure CLI uzantısı yüklüyse lütfen sürümü 18.0.0b2 veya sonraki bir sürüme güncelleştirin.
Uyarı
GPU özellikli VM'ler, daha yüksek fiyatlandırma ve bölge kullanılabilirliğine tabi özel donanımlar içerir. Daha fazla bilgi için fiyatlandırma aracı ve bölge kullanılabilirliği konularına bakın.
Kümeniz için kimlik bilgilerini alın
AKS kümeniz için kimlik bilgilerini az aks get-credentials komutunu kullanarak alın. Aşağıdaki örnek komut, kaynak grubundaki myAKSCluster kümenin myResourceGroup kimlik bilgilerini alır:
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
AMD GPU'larını kullanma seçenekleri
AMD GPU'larının kullanılması , Kubernetes için AMD cihaz eklentisi, GPU sürücüleri ve daha fazlası gibi çeşitli AMD GPU yazılım bileşenlerinin yüklenmesini içerir.
Uyarı
ŞU anda AKS, AMD GPU özellikli düğüm havuzlarına GPU sürücülerinin veya AMD GPU cihaz eklentisinin yüklenmesini yönetmez veya otomatikleştirmez.
AKSInfinibandSupport özelliğini kaydetme
AMD GPU VM boyutunuz
radlandırma kuralına göre (ör.Standard_ND96isr_MI300X_v5) RDMA özellikliyse, düğüm havuzundaki makinelerin aynı fiziksel Infiniband ağına yerleştirildiğinden emin olmanız gerekir. Bunu başarmak için,AKSInfinibandSupportkomutunu kullanarakaz feature registerözellik bayrağını kaydedin.az feature register --name AKSInfinibandSupport --namespace Microsoft.ContainerServicekomutunu kullanarak
az feature showkayıt durumunu doğrulayın:az feature show \ --namespace "Microsoft.ContainerService" \ --name AKSInfinibandSupportkomutunu kullanarak
az aks nodepool addAMD GPU özellikli bir düğüm havuzu oluşturun ve API alanını--gpu-driverdeğerinenoneayarlayarak varsayılan sürücü yüklemesini atlayın:az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --node-vm-size Standard_ND96isr_MI300X_v5 \ --gpu-driver noneUyarı
AKS şu anda, AMD GPU düğümü havuzu oluşturma sırasında otomatik sürücü yüklemesini atlamak için
gpu-driveralanının kullanılmasını zorunlu kılar.
AKS'de AMD GPU Operatörünü dağıtmak
AMD GPU Operatörü, sürücü yüklemesi, Kubernetes için AMD cihaz eklentisi, AMD kapsayıcı çalışma zamanı ve daha fazlası dahil olmak üzere GPU sağlamak için gereken tüm AMD yazılım bileşenlerinin yönetimini ve dağıtımını otomatikleştirir. AMD GPU Operatörü bu bileşenleri işlediğinden, AMD cihaz eklentisini AKS kümenize ayrı olarak yüklemeniz gerekmez. Bu, AKS üzerinde AMD GPU İşleci'ni kullanmak için otomatik GPU sürücüsü yüklemesinin atlanması gerektiği anlamına da gelir.
GPU operatörünü yüklemek için AMD belgelerini izleyin.
Komutunu kullanarak düğüm havuzunuzdaKI AMD GPU'larının
kubectl get nodesdurumunu denetleyin:kubectl get nodes -o custom-columns=NAME:.metadata.name,GPUs:.status.capacity.'amd\.com/gpu'Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
NAME STATUS ROLES AGE VERSION aks-gpunp-00000000 Ready agent 2m4s v1.31.7
AMD GPU'larının zamanlanabilir olduğunu onaylayın
Düğüm havuzunuzu oluşturduktan sonra, GPU'ların AKS kümenizde görev zamanlamasına uygun olduğunu doğrulayın.
Kümenizdeki düğümleri
kubectl get nodeskomutunu kullanarak listeleyin.kubectl get nodesGPU'ların programlanabilir olduğunu
kubectl describe nodekomutunu kullanarak doğrulayın.kubectl describe node aks-gpunp-00000000Kapasite bölümünün altında GPU olarak
amd.com/gpu: 1listelenmelidir. Çıkışınız aşağıdaki daraltılmış örnek çıkışa benzer olmalıdır:Name: aks-gpunp-00000000 Roles: agent Labels: accelerator=amd [...] Capacity: [...] amd.com/gpu: 1 [...]
AMD GPU özellikli iş yükü çalıştırma
AMD GPU'sunu iş başında görmek için uygun kaynak isteğiyle GPU özellikli bir iş yükü zamanlayabilirsiniz. Bu örnekte, MNIST veri seti üzerinde bir Tensorflow işi çalıştıracağız.
Bir dosya oluşturun ve şu YAML bildirimini yapıştırın: samples-tf-mnist-demo.yaml. Bu bildirim,
amd.com/gpu: 1kaynak sınırı içermektedir.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"kubectl applykomutunu kullanarak işi çalıştırın; bu komut manifest dosyasını ayrıştırır ve tanımlanan Kubernetes nesnelerini oluşturur.kubectl apply -f samples-tf-mnist-demo.yaml
GPU etkin iş yükünün durumunu görüntüle
İşin ilerleyişini,
kubectl get jobskomutunu--watchbayrağı ile kullanarak izleyin. Önce görüntüyü çekmek ve veri kümesini işlemek birkaç dakika sürebilir.kubectl get jobs samples-tf-mnist-demo --watchTAMAMLANMALAR sütununda 1/1 gösterildiğinde, aşağıdaki örnek çıktıda gösterildiği gibi iş başarıyla tamamlanmıştır:
NAME COMPLETIONS DURATION AGE samples-tf-mnist-demo 0/1 3m29s 3m29s samples-tf-mnist-demo 1/1 3m10s 3m36skubectl --watchişlemini sonlandırmak için Ctrl-C tuşlarına basın.Pod'un adını
kubectl get podskomutunu kullanarak alın.kubectl get pods --selector app=samples-tf-mnist-demo
Kaynakları temizle
Bu makalede oluşturduğunuz ilişkili Kubernetes nesnelerini kubectl delete job komutunu kullanarak kaldırın.
kubectl delete jobs samples-tf-mnist-demo
Sonraki Adımlar
- AKS'de GPU tabanlı uygulamanız için farklı depolama seçeneklerini keşfedin.
- AKS'de Ray kümeleri hakkında daha fazla bilgi edinin.
- İşlem yoğunluklu AKS iş yükleriniz için NVIDIA GPU'larını kullanın.