Azure Kubernetes Service'te (AKS) çok örnekli GPU düğüm havuzu oluşturma
Nvidia'nın A100 GPU'su yediye kadar bağımsız örneğe ayrılabilir. Her örneğin kendi belleği ve Stream Multiprocessor (SM) vardır. Nvidia A100 hakkında daha fazla bilgi için bkz . Nvidia A100 GPU.
Bu makalede, Azure Kubernetes Service (AKS) kümesinde çok örnekli GPU düğüm havuzu oluşturma adımları anlatılır.
Ön koşullar ve sınırlamalar
- Etkin aboneliği olan bir Azure hesabı. Hesabınız yoksa ücretsiz bir hesap oluşturabilirsiniz.
- Azure CLI sürüm 2.2.0 veya üzeri yüklü ve yapılandırılmış. Sürümü bulmak için
az --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme. - Kubernetes komut satırı istemcisi kubectl yüklenir ve yapılandırılır. Azure Cloud Shell kullanıyorsanız zaten
kubectl
yüklüdür. Yerel olarak yüklemek istiyorsanız komutunu kullanabilirsinizaz aks install-cli
. - Helm v3 yüklü ve yapılandırılmış. Daha fazla bilgi için bkz . Helm'i Yükleme.
- Küme Otomatik Ölçeklendiricisi'ni çok örnekli düğüm havuzlarıyla kullanamazsınız.
GPU örneği profilleri
GPU örneği profilleri GPU'ların nasıl bölümlendiğini tanımlar. Aşağıdaki tabloda için kullanılabilir GPU örneği profili gösterilmektedir Standard_ND96asr_v4
:
Profil adı | SM'nin kesri | Bellek kesri | Oluşturulan örnek sayısı |
---|---|---|---|
MIG 1g.5gb | 1/7 | 1/8 | 7 |
MIG 2g.10gb | 2/7 | 2/8 | 3 |
MIG 3g.20gb | 3/7 | 4/8 | 2 |
MIG 4g.20gb | 4/7 | 4/8 | 1 |
MIG 7g.40gb | 7/7 | 8/8 | 1 |
Örneğin, gpu örneği profili MIG 1g.5gb
her GPU örneğinin 1g SM (Bilgi işlem kaynağı) ve 5 gb belleğe sahip olduğunu gösterir. Bu durumda GPU yedi örneğe ayrılmıştır.
Bu örnek boyutu için kullanılabilir GPU örneği profilleri , , MIG2g
MIG3g
, MIG4g
ve MIG7g
değerlerini içerirMIG1g
.
Önemli
Düğüm havuzu oluşturulduktan sonra uygulanan GPU örneği profilini değiştiremezsiniz.
AKS kümesi oluşturma
komutunu kullanarak
az group create
bir Azure kaynak grubu oluşturun.az group create --name myResourceGroup --location southcentralus
komutunu kullanarak
az aks create
bir AKS kümesi oluşturun.az aks create \ --resource-group myResourceGroup \ --name myAKSCluster\ --node-count 1 \ --generate-ssh-keys
Çok örnekli GPU düğüm havuzu oluşturma
Düğüm havuzunu oluşturmak için Azure CLI'yi veya ARM API'sine yönelik bir HTTP isteğini kullanabilirsiniz.
komutunu kullanarak
az aks nodepool add
çok örnekli bir GPU düğüm havuzu oluşturun ve GPU örneği profilini belirtin.az aks nodepool add \ --name mignode \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --node-vm-size Standard_ND96asr_v4 \ --gpu-instance-profile MIG1g
Çok örnekli GPU (MIG) stratejisini belirleme
Nvidia eklentilerini yüklemeden önce, GPU bölümleme için hangi çok örnekli GPU (MIG) stratejisinin kullanılacağını belirtmeniz gerekir: Tek strateji veya Karma strateji. İki strateji, CPU iş yüklerini yürütme şeklinizi değil GPU kaynaklarının nasıl görüntüleneceğini etkiler.
- Tek strateji: Tek strateji, her GPU örneğini GPU olarak ele alır. Bu stratejiyi kullanırsanız GPU kaynakları olarak
nvidia.com/gpu: 1
görüntülenir. - Karma strateji: Karma strateji, GPU örneklerini ve GPU örneği profilini kullanıma sunar. Bu stratejiyi kullanırsanız GPU kaynağı olarak
nvidia.com/mig1g.5gb: 1
görüntülenir.
NVIDIA cihaz eklentisini ve GPU özellik bulmayı yükleme
MIG stratejinizi ortam değişkeni olarak ayarlayın. Tek veya karma strateji kullanabilirsiniz.
# Single strategy export MIG_STRATEGY=single # Mixed strategy export MIG_STRATEGY=mixed
ve
helm repo update
komutlarını kullanarak Nvidia cihaz eklentisini ve GPU özellik bulma helm depolarınıhelm repo add
ekleyin.helm repo add nvdp https://nvidia.github.io/k8s-device-plugin helm repo add nvgfd https://nvidia.github.io/gpu-feature-discovery helm repo update
komutunu kullanarak Nvidia cihaz eklentisini
helm install
yükleyin.helm install \ --version=0.14.0 \ --generate-name \ --set migStrategy=${MIG_STRATEGY} \ nvdp/nvidia-device-plugin
komutunu kullanarak
helm install
GPU özellik bulmayı yükleyin.helm install \ --version=0.2.0 \ --generate-name \ --set migStrategy=${MIG_STRATEGY} \ nvgfd/gpu-feature-discovery
Çok örnekli GPU özelliğini onaylama
komutunu kullanarak AKS kümenize bağlanacak şekilde
az aks get-credentials
yapılandırınkubectl
.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Küme düğümlerinin listesini döndürmek için komutunu kullanarak
kubectl get
kümenize bağlantıyı doğrulayın.kubectl get nodes -o wide
komutunu kullanarak düğümün çok örnekli GPU özelliğine
kubectl describe node
sahip olduğunu onaylayın. Aşağıdaki örnek komut, GPU örnek profili olarak MIG1g kullanan mignode adlı düğümü açıklar.kubectl describe node mignode
Çıkışınız aşağıdaki örnek çıkışa benzemelidir:
# Single strategy output Allocatable: nvidia.com/gpu: 56 # Mixed strategy output Allocatable: nvidia.com/mig-1g.5gb: 56
Çalışma zamanlama
Aşağıdaki örnekler, olarak etiketlenmiş 12.1.1-base-ubuntu22.04
Ubuntu22.04 için cuda temel görüntü sürümü 12.1.1'i temel alır.
Tek strateji
adlı
single-strategy-example.yaml
bir dosya oluşturun ve aşağıdaki bildirimde kopyalayın.apiVersion: v1 kind: Pod metadata: name: nvidia-single spec: containers: - name: nvidia-single image: nvidia/cuda:12.1.1-base-ubuntu22.04 command: ["/bin/sh"] args: ["-c","sleep 1000"] resources: limits: "nvidia.com/gpu": 1
komutunu kullanarak uygulamayı dağıtın
kubectl apply
ve YAML bildiriminizin adını belirtin.kubectl apply -f single-strategy-example.yaml
komutunu kullanarak
kubectl exec
ayrılmış GPU cihazlarını doğrulayın. Bu komut, küme düğümlerinin listesini döndürür.kubectl exec nvidia-single -- nvidia-smi -L
Aşağıdaki örnek, başarıyla oluşturulan dağıtımları ve hizmetleri gösteren çıkışa benzer:
GPU 0: NVIDIA A100 40GB PCIe (UUID: GPU-48aeb943-9458-4282-da24-e5f49e0db44b) MIG 1g.5gb Device 0: (UUID: MIG-fb42055e-9e53-5764-9278-438605a3014c) MIG 1g.5gb Device 1: (UUID: MIG-3d4db13e-c42d-5555-98f4-8b50389791bc) MIG 1g.5gb Device 2: (UUID: MIG-de819d17-9382-56a2-b9ca-aec36c88014f) MIG 1g.5gb Device 3: (UUID: MIG-50ab4b32-92db-5567-bf6d-fac646fe29f2) MIG 1g.5gb Device 4: (UUID: MIG-7b6b1b6e-5101-58a4-b5f5-21563789e62e) MIG 1g.5gb Device 5: (UUID: MIG-14549027-dd49-5cc0-bca4-55e67011bd85) MIG 1g.5gb Device 6: (UUID: MIG-37e055e8-8890-567f-a646-ebf9fde3ce7a)
Karma strateji
adlı
mixed-strategy-example.yaml
bir dosya oluşturun ve aşağıdaki bildirimde kopyalayın.apiVersion: v1 kind: Pod metadata: name: nvidia-mixed spec: containers: - name: nvidia-mixed image: nvidia/cuda:12.1.1-base-ubuntu22.04 command: ["/bin/sh"] args: ["-c","sleep 100"] resources: limits: "nvidia.com/mig-1g.5gb": 1
komutunu kullanarak uygulamayı dağıtın
kubectl apply
ve YAML bildiriminizin adını belirtin.kubectl apply -f mixed-strategy-example.yaml
komutunu kullanarak
kubectl exec
ayrılmış GPU cihazlarını doğrulayın. Bu komut, küme düğümlerinin listesini döndürür.kubectl exec nvidia-mixed -- nvidia-smi -L
Aşağıdaki örnek, başarıyla oluşturulan dağıtımları ve hizmetleri gösteren çıkışa benzer:
GPU 0: NVIDIA A100 40GB PCIe (UUID: GPU-48aeb943-9458-4282-da24-e5f49e0db44b) MIG 1g.5gb Device 0: (UUID: MIG-fb42055e-9e53-5764-9278-438605a3014c)
Önemli
latest
CUDA görüntülerinin etiketi Docker Hub'da kullanım dışı bırakıldı. En son görüntüler ve ilgili etiketler için lütfen NVIDIA'nın deposuna bakın.
Sorun giderme
Düğüm havuzunu oluşturduktan sonra çok örnekli GPU özelliğini görmüyorsanız API sürümünün 2021-08-01'den eski olmadığını onaylayın.
Sonraki adımlar
AKS düğüm havuzları hakkında daha fazla bilgi için bkz . AKS'de küme için düğüm havuzlarını yönetme.
Azure Kubernetes Service