Azure Kubernetes Service (AKS) için en iyi GPU uygulamaları

Şunlar için geçerlidir: ✔️ AKS Otomatik ✔️ AKS Standart

AKS üzerinde GPU iş yüklerinin çalıştırılması, işlem kaynaklarının erişilebilir, güvenli ve en iyi şekilde kullanılmasını sağlamak için doğru kurulum ve sürekli doğrulama gerektirir. Bu makalede GPU özellikli düğümleri yönetmeye, yapılandırmaları doğrulamaya ve iş yükü kesintilerini azaltmaya yönelik en iyi yöntemler özetlenmiştir.

Çoğu üretim AKS iş yükü için AKS Otomatik önerilen varsayılan değerdir. AKS Otomatik, önceden yapılandırılmış işlemler, güvenlik önlemleri ve SLA destekli pod hazırlığı ile üretime hazır bir temel sağlayarak ekiplerin 2. gün platform ek yükünü azaltmalarına yardımcı olur.

GPU iş yükleri için AKS Otomatik'i veya AKS Standard'ı seçin

Başlangıç noktası olarak aşağıdaki kılavuzu kullanın:

Scenario Önerilen yol Neden?
Çoğu üretim GPU iş yükü AKS Otomatik Üretime hazır varsayılan ayarlar, yerleşik koruma mekanizmaları ve azaltılmış küme operasyonel yükü.
Dağıtımdan kararlı üretime daha hızlı yol AKS Otomatik Pod hazır olma durumu SLA’si aracılığıyla önceden yapılandırılmış küme işlemleri ve öngörülebilir başlangıç davranışı.
Gelişmiş platform özelleştirmesi ve açık işlem denetimi AKS Standard Özel düğüm havuzu yaşam döngüsü ve platform ayarlama için daha fazla esneklik.
Özelleştirilmiş, varsayılan olmayan platform mimarisi gereksinimleri AKS Standard Altyapı davranışı ve yapılandırması üzerinde daha fazla el ile denetim.

Daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) Otomatik'e giriş.

AKS Otomatik üretim GPU iş yükleri için neler sağlar?

AKS Otomatik, şunları sağlayarak üretim GPU iş yükleri için güçlü bir operasyonel temel oluşturmaya yardımcı olur:

  • Küme yapılandırması için üretime hazır varsayılanlar.
  • Dahili en iyi uygulamalar ve güvenceler.
  • Tahmin edilebilir başlangıç davranışı için SLA destekli pod hazırlığı.
  • Manuel ikinci gün operasyonel görevlerini azaltan yönetilen küme operasyonları.

Bu platform varsayılanları, bu makalede açıklanan yerleştirme denetimleri, doğrulama denetimleri ve yalıtım ilkeleri gibi iş yükü düzeyindeki en iyi yöntemlerin yerini almaz.

Yapay zeka modeli eğitimi, gerçek zamanlı çıkarım, simülasyonlar ve video işleme gibi GPU iş yükleri genellikle şunlara bağlıdır:

  • GPU sürücüsünü ve çalışma zamanı uyumluluğunu düzeltin.
  • GPU kaynaklarının doğru zamanlanması.
  • Kapsayıcılar içindeki GPU donanım cihazlarına erişim.

Yanlış yapılandırmalar yüksek maliyetlere, beklenmeyen iş hatalarına veya GPU az kullanımına neden olabilir.

GPU iş yükü yerleşimini zorla

Varsayılan olarak AKS zamanlayıcı, kullanılabilir düğümlere yeterli CPU ve bellek içeren podlar yerleştirir. İş yükü yerleştirme denetimleri olmadan iki sorun oluşabilir:

  • Zamanlayıcı GPU'ları olmayan düğümlere GPU iş yükleri yerleştirerek iş yüklerinin başlatılamamasına neden olabilir.
  • Genel amaçlı iş yükleri GPU düğümlerini kaplayabilir ve yüksek maliyetli kaynakları boşa harcar.

Doğru yerleştirmeyi sağlamak için:

  • GPU düğümlerinize [gpu-vendor].com/gpu: NoSchedule gibi bir anahtar kullanarak taint uygulayın (örneğin, nvidia.com/gpu: NoSchedule). Bu taint, GPU olmayan iş yüklerinin bu düğümlerde zamanlanmasını engeller.

  • Bozuk GPU düğümlerinde zamanlanması için GPU iş yükü podunuza eşleşen bir tolerans ekleyin.

  • Zamanlayıcının GPU kapasitesini ayırdığından emin olmak için podunuzda GPU kaynak isteklerini ve sınırlarını tanımlayın. Örneğin:

    resources:
      limits:
        [gpu-vendor].com/gpu: 1
    
  • GPU iş yüklerinin gerekli toleransları ve kaynak sınırlarını içermesini zorunlu kılmak için doğrulama ilkelerini veya erişim denetleyicilerini kullanın.

Bu yaklaşım, yalnızca GPU'ya hazır iş yüklerinin GPU düğümlerine ulaşmasını ve ihtiyaç duydukları özel işlem kaynaklarına erişmesini garanti eder.

AKS Otomatik'te platform korumaları varsayılan olarak önceden yapılandırılmıştır. Katı GPU zamanlama davranışını zorlamak için iş yükü düzeyinde yerleştirme denetimleri uygulamaya devam edebilirsiniz.

GPU sürücüsü yüklemesini ve çalışma zamanı hazırlığını doğrulama

Üretim GPU iş yüklerini dağıtmadan önce HER zaman GPU düğümü havuzlarınızın şunlar olduğunu doğrulayın:

  • Uyumlu GPU sürücüleriyle donatılmıştır.
  • Sağlıklı bir Kubernetes Cihaz Eklentisi DaemonSet’i çalıştırma.
  • [gpu-vendor].com/gpu öğesini zamanlanabilir bir kaynak olarak kullanıma sunma.

GPU düğümü havuzlarınızda çalışan geçerli sürücü sürümünü, GPU satıcısıyla ilişkilendirilmiş sistem yönetimi arabirimi (SMI) ile onaylayabilirsiniz.

Aşağıdaki komut, NVIDIA GPU özellikli bir düğüm havuzunda sürücü yükleme ve çalışma zamanı hazırlığını doğrulamak için GPU cihaz eklentisi dağıtım podunuzun içinden yürütülür nvidia-smi :

kubectl exec -it $"{GPU_DEVICE_PLUGIN_POD}" -n {GPU_NAMESPACE} -- nvidia-smi

Çıkışınız aşağıdaki örnek çıkışa benzemelidir:

+-----------------------------------------------------------------------------+
|NVIDIA-SMI 570.xx.xx    Driver Version: 570.xx.xx    CUDA Version: 12.x|
...
...

kubectl exec Düğümlerinizde yüklü olan sürücü sürümünü onaylamak için her GPU düğümü havuzu için komutunu yineleyin.

AMD GPU özellikli düğüm havuzlarınızda, alternatif olarak AMD GPU bileşenlerini dağıtın ve yüklü sürücü sürümünü doğrulamak için ROCm cihaz eklentisi podunda amd-smi komutunu çalıştırın.

GPU özellikli düğümlerin en son düğüm işletim sistemi görüntüsüne güncelleştirilmiş kalmasını sağlayın

AKS'de GPU iş yüklerinizin performansını, güvenliğini ve uyumluluğunu sağlamak için, GPU düğüm havuzlarınızı önerilen en son düğüm işletim sistemi görüntüleriyle güncel tutmanız önemlidir. Bu güncelleştirmeler kritik öneme sahiptir çünkü şunlardır:

  • Kullanım dışı veya kullanım süresi sonu (EOL) sürümlerini değiştirerek en son üretim sınıfı GPU sürücülerini ekleyin.
  • Geçerli Kubernetes sürümünüzle uyumluluk açısından tamamen test edilmiştir.
  • GPU satıcıları tarafından tanımlanan bilinen güvenlik açıklarını giderin.
  • Gelişmiş kararlılık ve verimlilik için en son işletim sistemi ve kapsayıcı çalışma zamanı iyileştirmelerini birleştirir.

GPU düğümü havuzlarınızı , otomatik yükseltme kanalını ayarlayarak veya el ile yükseltme yoluyla AKS tarafından yayımlanan en son önerilen düğüm işletim sistemi görüntüsüne yükseltin. AKS yayın izleyicisini kullanarak en son düğüm görüntüsü sürümlerini izleyebilir ve takip edebilirsiniz.

Çoğu üretim senaryosu için varsayılan temel olarak AKS Otomatik ile başlayın. AKS Standard kullanıyorsanız yükseltme kanallarını ve bakım pencerelerini açıkça yapılandırın.

Paylaşılan kümeleri kullanırken GPU iş yüklerini ayırma

GPU düğümü havuzlarına sahip tek bir AKS kümesi model eğitimi, gerçek zamanlı çıkarım veya toplu işlem gibi birden fazla GPU iş yükü türü çalıştırıyorsa, bu iş yüklerini şunlarla ayırmak önemlidir:

  • Farklı iş yükü türleri arasında yanlışlıkla müdahaleden veya kaynak çekişmelerinden kaçının.
  • Güvenliği geliştirin ve uyumluluk sınırlarını koruyun.
  • İş yükü kategorisi başına GPU kaynak kullanımının yönetimini ve izlenmesini basitleştirin.

Ad alanlarını ve ağ ilkelerini kullanarak gpu iş yüklerini tek bir AKS kümesi içinde yalıtabilirsiniz. Bu sayede iş yüküne özgü kotalar, sınırlar ve günlüğe kaydetme yapılandırmaları aracılığıyla daha net bir yönetişim sağlanır.

Örnek senaryo

Birbiriyle iletişim kurması gerekmeyen iki farklı GPU iş yükü türünü barındıran bir AKS kümesi düşünün:

  • Eğitim iş yükleri: Yoğun kaynak gerektiren yapay zeka modeli eğitim işleri.
  • Çıkarım iş yükleri: Gecikme süresine duyarlı gerçek zamanlı çıkarım hizmetleri.

İki iş yükünü ayırmak için aşağıdaki adımları kullanabilirsiniz:

  1. komutunu kullanarak kubectl create namespace iş yükü türü başına ayrılmış ad alanları oluşturun.

    kubectl create namespace gpu-training
    kubectl create namespace gpu-inference
    
  2. Aşağıdaki örnekte gösterildiği gibi GPU iş yükü podlarını türe göre etiketleyebilirsiniz:

    metadata:
      namespace: gpu-training
      labels:
        workload: training
    
  3. İş yükü türleri arasındaki trafiği yalıtmak için ağ ilkeleri uygulayın. Aşağıdaki bildirim ad alanı için gpu-training tüm girişi ve çıkışı engeller (açıkça izin verilmediği sürece):

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: deny-cross-namespace
      namespace: gpu-training
    spec:
      podSelector: {}
      policyTypes:
      - Ingress
      - Egress
      ingress: []
      egress: []
    

Bu ilke:

  • Ad alanı içindeki gpu-training tüm podlar için geçerlidir.
  • Tüm gelen ve giden trafiği varsayılan olarak reddederek güçlü yalıtımı destekler.

Bu model özellikle iş yükü türlerinin farklı çalışma zamanı profilleri, risk düzeyleri veya işletim gereksinimleri olduğunda paylaşılan GPU ortamlarında netliği, denetimi ve güvenliği artırır.

Çok örnekli GPU (MIG) kullanarak GPU düğümlerinde kaynak kullanımını iyileştirme

Farklı GPU iş yüklerinin farklı bellek gereksinimleri vardır. NVIDIA A100 40 GB gibi daha küçük dağıtımların tüm GPU'ya ihtiyacı olmayabilir. Ancak tek bir iş yükü, az kullanıldığında bile GPU kaynağını varsayılan olarak tekelleştirir.

AKS, çok örnekli GPU (MIG) kullanarak gpu düğümlerini daha küçük dilimlere bölerek kaynak iyileştirmeyi destekler, böylece ekipler daha küçük işleri daha verimli bir şekilde zamanlayabilir. Desteklenen GPU boyutları ve AKS'de çok örnekli GPU'ları kullanmaya başlama hakkında daha fazla bilgi edinin.

Kısa Ömürlü NVMe veri disklerini yüksek performanslı önbellek olarak kullanma

AKS'deki GPU VM'lerinde çalışan yapay zeka iş yükleri için geçici depolamaya hızlı ve güvenilir erişim, eğitim ve çıkarım performansını en üst düzeye çıkarmak için kritik öneme sahiptir. Kısa ömürlü NVMe veri diskleri doğrudan VM konağına bağlı yüksek aktarım hızına sahip, düşük gecikme süreli depolama sağlar. Bu sayede veri kümelerini önbelleğe alma, ara denetim noktalarını ve model ağırlıklarını depolama veya veri ön işleme ve analiz için karalama alanı sağlama gibi senaryolar için idealdir.

AI iş yükleri için GPU özellikli düğüm havuzları dağıtırken kısa ömürlü NVMe veri disklerini yüksek performanslı önbellek veya karalama alanı olarak kullanılacak şekilde yapılandırın. Bu yaklaşım G/Ç performans sorunlarını ortadan kaldırmaya yardımcı olur, yoğun veri gerektiren işlemleri hızlandırır ve GPU kaynaklarınızın verileri beklerken aylaklık etmemesini sağlar.

Azure, çok çeşitli Azure GPU VM aileleri genelinde kısa ömürlü NVMe veri disklerini destekler. GPU VM boyutuna bağlı olarak, VM'nin toplam kapasitesi 28 TiB'a kadar olan en fazla sekiz kısa ömürlü NVMe veri diski vardır. VM boyutlarıyla ilgili ayrıntılı yapılandırmalar için ND H100 v5 serisi belgelerine veya seçtiğiniz GPU ailesi için VM boyutu belgelerine bakın.

Sağlama ve yönetimi basitleştirmek için Kubernetes iş yükleriniz için kısa ömürlü NVMe disklerini otomatik olarak algılayıp düzenleyen Azure Container Storage'ı kullanın.

Önerilen senaryolar şunlardır:

Önemli

Kısa süreli NVMe disklerindeki veriler geçicidir ve VM serbest bırakılırsa veya yeniden dağıtılırsa kaybolur. Bu diskleri yalnızca kritik olmayan, geçici veriler için kullanın ve kalıcı Azure depolama çözümleriyle ilgili önemli bilgileri depolayın.

Kısa ömürlü NVMe veri diskleri hakkında daha fazla kılavuz için bkz. AKS'de kısa ömürlü NVMe veri diskleri için en iyi yöntemler.

AKS ve GPU iş yükleri hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: