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, yönergeleri paralel olarak yürütmek ve GPU belleğinden sorumlu olan kendi 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 MIG uyumlu vm boyutu kullanarak ç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.
- Çok örnekli GPU düğüm havuzları şu anda Azure Linux'ta desteklenmiyor.
- Küme Otomatik Ölçeklendiricisi'ni çok örnekli GPU 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 (akış çok işlemcili) ve 5 gb belleğe sahip olduğunu gösterir. Bu durumda GPU yedi örneğe ayrılmıştır.
Bu VM 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 \ --generate-ssh-keys
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
Ç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. Aşağıdaki örnek, MIG uyumlu GPU VM boyutunaStandard_ND96asr_v4
sahip bir düğüm havuzu oluşturur.az aks nodepool add \ --name aks-mignode \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --node-vm-size Standard_ND96asr_v4 \ --node-count 1 \ --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 bulma (GFD) bileşenlerini 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 eklentisi helm deposunuhelm repo add
ekleyin.helm repo add nvdp https://nvidia.github.io/k8s-device-plugin helm repo update
komutunu kullanarak NVIDIA cihaz eklentisini
helm install
yükleyin.helm install nvdp nvdp/nvidia-device-plugin \ --version=0.15.0 \ --generate-name \ --set migStrategy=${MIG_STRATEGY} \ --set gfd.enabled=true \ --namespace nvidia-device-plugin \ --create-namespace
Not
NVIDIA cihaz eklentisi sürüm 0.15.0 ve üzeri helm yüklemesi, cihaz eklentisini ve GFD depolarını birleştirir. Bu öğreticide GFD yazılım bileşeninin ayrı helm yüklemesi önerilmez.
Çok örnekli GPU özelliğini onaylama
Küme düğümlerinin
kubectl
listesini döndürmek için komutunu kullanarakkubectl 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 örneği profili olarak MIG1g kullanan aks-mignode adlı düğümü açıklar.kubectl describe node aks-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ş Ubuntu 22.04 için CUDA temel görüntü sürümü 12.1.1'i temel alır.12.1.1-base-ubuntu22.04
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
Azure Kubernetes Service'te GPU'lar hakkında daha fazla bilgi edinmek için bkz:
- AKS'de Linux GPU özellikli bir düğüm havuzu oluşturun.
- AKS'de Windows GPU özellikli düğüm havuzu oluşturma
- AKS'de GPU iş yükleri için kullanım örnekleri hakkında bilgi edinin
Azure Kubernetes Service