Azure Kubernetes Service'te (AKS) GPU performansını ve kullanımını iyileştirmek için NVIDIA GPU ölçümleri hakkında bilgi edinin

GPU iş yüklerinin verimli bir şekilde yerleştirilmesi ve iyileştirilmesi genellikle kaynak kullanımı ve performansı için görünürlük gerektirir. AKS'de yönetilen GPU ölçümleri (önizleme), NVIDIA GPU özellikli düğüm havuzlarında GPU kullanımı, belleği ve performans verilerinin otomatik olarak toplanmasını ve kullanıma sunulmasını sağlar. Bu, platform yöneticilerinin küme kaynaklarını en iyi şekilde kullanmalarına ve geliştiricilerin sınırlı manuel araçlarla iş yüklerini ayarlayıp hatalarını gidermelerine olanak tanır.

Bu makalede, Azure Kubernetes Service'te (AKS) tam olarak yönetilen GPU özellikli düğüm havuzu (önizleme) ile NVIDIA Veri Merkezi GPU Yöneticisi (DCGM) dışarı aktarıcısı tarafından toplanan GPU ölçümleri hakkında bilgi edinirsiniz.

Önemli

AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "mevcut olduğu şekilde" sağlanmakta olup, hizmet seviyesi anlaşmalarına ve sınırlı garantilere dahil edilmemektedir. AKS önizlemeleri, müşteri desteği ekibi tarafından maksimum çaba gösterilerek kısmen ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:

Önkoşullar

Yönetilen GPU bileşenlerinin yüklü olduğunu doğrulayın

Bu yönergeleri izleyerek yönetilen NVIDIA GPU düğüm havuzunuzu (önizleme) oluşturduktan sonra az aks nodepool show komutuyla GPU yazılım bileşenlerinin yüklendiğini onaylayın:

az aks nodepool show \
    --resource-group <resource-group-name> \
    --cluster-name <cluster-name> \
    --name <node-pool-name> \

Çıkışınız aşağıdaki değerleri içermelidir:

  ...
  "gpuProfile": {
      "driver": "Install",
      "driverType": "",
      "nvidia": {
          "managementMode": "Managed",
          ...
          ...
      }
  },
...
...

Azure Yönetilen Prometheus'ta GPU ölçümlerini kazımayı özelleştirme

Azure İzleyici aracısında, kube-system ad alanında dcgm-exporter içinden NVIDIA GPU ölçümlerini kazımaya yönelik bir profil etkinleştiren aşağıdaki gibi bir ConfigMap oluşturun ve uygulayın.

cat <<EOF | kubectl create -f -
kind: ConfigMap
apiVersion: v1
data:
  schema-version:
    v1
  config-version:
    ver1
  default-scrape-settings-enabled: |-
    dcgmexporter = true
metadata:
  name: ama-metrics-settings-configmap
  namespace: kube-system
EOF

Note

Bu ConfigMap AKS kümesine bir kez uygulandıktan sonra kümeye eklenen tüm mevcut ve yeni NVIDIA GPU düğümü havuzları otomatik olarak kazınıyor.

Azure Yönetilen Prometheus'ta GPU ölçümlerini otomatik olarak kazımayı devre dışı bırakma

NVIDIA DCGM ölçütlerinin Azure İzleyici yönetilen Prometheus (AMA) aracısı tarafından toplanmasını devre dışı bırakmak amacıyla aynı ConfigMap'i düzenleyin. GPU iş yükleriniz etkilenmez.

Aşağıdaki komutu çalıştırın:

kubectl edit configmap ama-metrics-settings-configmap -n kube-system

dcgmexporter ayarını true'den false'ye güncelleştirin.

...
...
default-scrape-settings-enabled: |-
  dcgmexporter = false
...
...

NVIDIA DCGM ölçümleri artık Azure İzleyici veya Ölçüm Gezgini'nde görünmüyor.

Azure portalında GPU ölçümlerini izleme

  1. AKS kümesi için bir Azure İzleyici çalışma alanı oluşturduktan sonra, Azure portalına gidin ve Azure İzleyici çalışma alanınızda Azure İzleyici>Deshboards with Grafana açın.

  2. Arama çubuğunu kullanarak Kubernetes | NVIDIA GPU DCGM Exporter etiketiyle Azure-managed Grafana panosunu filtreleyin.

  3. Bu panoyu seçin ve seçilen Cluster ve Prometheus Datasource'in GPU özellikli düğüm havuzlarınızla eşleştiğini onaylayın. Artık aşağıdaki görüntüde gösterildiği gibi gerçek zamanlı GPU ölçümlerini görüntüleyebilirsiniz:

AKS tarafından yönetilen GPU ölçümleri panosunun ekran görüntüsü.

GPU ölçümlerini anlama

GPU Kullanım Ölçümleri

GPU kullanım ölçümleri, GPU çekirdeklerinin çalışmayı etkin bir şekilde işleme süresi yüzdesini gösterir. Yüksek değerler GPU'nun yoğun olarak kullanıldığını gösterir ve bu genellikle eğitim veya veri işleme gibi iş yükleri için tercih edilir. Bu ölçümün yorumlanması iş yükü türünü dikkate almalıdır: Yapay zeka eğitimi genellikle kullanımı yüksek tutarken, yoğun trafik nedeniyle çıkarımda aralıklı kullanım olabilir.

Bellek Kullanımı: Kullanılan GPU belleği yüzdesini gösterir. Yüksek GPU kullanımı olmadan yüksek bellek kullanımı, GPU'un bellek aktarımlarında beklediği belleğe bağlı iş yüklerini gösterebilir. Düşük kullanımla düşük bellek kullanımı, iş yükünün GPU'dan tam olarak yararlanamayacak kadar küçük olduğunu gösterebilir.

SM (Akış Çok İşlemcili) Verimliliği: GPU çekirdeklerinin kullanıldığı verimliliği ölçer. Düşük SM verimliliği, iş yükü dengesizliği veya yetersiz çekirdek tasarımı nedeniyle çekirdeklerin boşta veya az kullanıldığını gösterir. Yüksek verimlilik, yoğun işlem içeren uygulamalar için idealdir.

Bellek Ölçümleri

Bellek Bant Genişliği Kullanımı: Teorik bellek bant genişliğinin ne kadarının tüketildiğini yansıtır. Düşük işlem kullanımıyla yüksek bant genişliği kullanımı, belleğe bağlı bir iş yükünü gösterebilir. Buna karşılık, hem işlem hem de bellek bant genişliği açısından yüksek kullanım, iyi dengelenmiş bir iş yükü olduğunu gösterir.

Bellek Hataları: Etkinleştirilirse hata düzeltme kodu (ECC) hatalarını izler. Çok sayıda hata donanımda düşüş veya termal sorunlara işaret edebilir ve güvenilirlik açısından izlenmelidir.

Sıcaklık ve Güç Ölçümleri

GPU Sıcaklığı: GPU'nun çalışma sıcaklığını gösterir. Sürekli yüksek sıcaklıklar, termal kısıtlamaya neden olarak performansı düşürebilir. Bu ölçümün ideal yorumu, GPU'nun termal sınırlarına ve soğutma kapasitesine göre sıcaklığı gözlemlemektedir.

Anlık güç tüketimini gösterir. Güç kullanımını TDP (Termal Tasarım Gücü) ile karşılaştırmak, GPU'un sınırlarına itilip itilmediğini anlamanıza yardımcı olur. Ani güç düşüşleri, kısıtlama veya az kullanım göstergesi olabilir.

Saatler ve Sıklık Ölçümleri

GPU Saati: GPU'nun gerçek çalışma sıklığı. Bu, kullanımla birlikte GPU'nun potansiyeline göre performansını düşürüp düşürmediğini veya yetersiz performans gösterip göstermediğini belirlemeye yardımcı olur.

Bellek Saati: GPU belleğinin çalışma sıklığı. Belleğe bağlı iş yükleri daha yüksek bellek saatlerinden yararlanabilir; bellek ve işlem kullanımı arasındaki uyuşmazlık, performans sorunlarını vurgulayabilir.

PCIe Bant Genişliği: PCIe veri yolu üzerinden aktarım hızını ölçer. Ağır iş yükleriyle düşük kullanım CPU-GPU iletişimin bir performans sorunu olmadığını gösterebilir. Yüksek kullanım, performansı etkileyen veri aktarımı sınırlamalarına işaret edebilir.

NVLink Bant Genişliği: Bu ölçüm PCIe bant genişliğine benzer ancak NVLink bağlantılarına özgüdür ve gpular arası iletişim için çok GPUlu sistemlerde geçerlidir. SM kullanımı düşükken NVLink kullanımının yüksek olması, senkronizasyon veya veri aktarımı gecikmelerini gösterebilir.

Hata ve Güvenilirlik Ölçümleri

Kullanımdan Kaldırılan Sayfalar ve XID Hataları: GPU bellek hatalarını ve kritik hataları izleyin. Sık karşılaşılan durumlar olası donanım hatalarına işaret eder ve uzun süre çalışan iş yükleri için dikkat gerektirir.

Yorumlama Kılavuzu

DCGM ölçümleri AKS'de iş yükünüzün türüyle bağlamsal olarak yorumlanmalıdır. İşlem yoğunluklu yüksek bir iş yükü ideal olarak yüksek GPU ve SM kullanımı, yüksek bellek bant genişliği kullanımı, azaltma eşiklerinin altındaki kararlı sıcaklıklar ve TDP'nin yakınında ama altında güç tüketimi göstermelidir.

Belleğe bağlı iş yüklerinde yüksek bellek kullanımı ve bant genişliği gösterilip işlem kullanımı düşük olabilir. Yüksek sıcaklık veya güç tüketimi ile düşük kullanım gibi anomaliler genellikle boğulma, verimsiz zamanlama veya sistem düzeyinde darboğazları gösterir.

Tek anlık görüntüler yerine zaman içindeki eğilimleri izlemek kritik önem taşır. Kullanımdaki ani düşüşler veya hatalardaki ani artışlar genellikle üretim iş yüklerini etkilemeden önce temel sorunları ortaya çıkarır. Ölçümleri birden çok GPU arasında karşılaştırmak, düğüm havuzundaki aykırı değerleri veya hatalı davranan cihazları belirlemeye de yardımcı olabilir. Bu ölçümleri yalıtım yerine birlikte anlamak, GPU verimliliği ve iş yükü performansı hakkında en net içgörüleri sağlar.

Yaygın GPU ölçümleri

Aşağıdaki NVIDIA DCGM ölçümleri genellikle Kubernetes'te GPU düğüm havuzlarının performansı için değerlendirilir:

GPU Ölçüm Adı Meaning Tipik Aralık / Gösterge Kullanım İpucu
DCGM_FI_DEV_GPU_UTIL GPU kullanımı (GPU çekirdeklerinin etkin olduğu% süre) 0-100% (daha yüksek daha iyidir) Düğüm başına ve pod başına izlemeyi gerçekleştirin; düşük değerler CPU veya G/Ç darboğazlarını gösterebilir.
DCGM_FI_DEV_SM_UTIL Çok Akışlı İşlemci verimi (% etkin çekirdekler) 0-100% Yüksek bellek kullanımına sahip düşük değerler belleğe bağlı iş yükünü gösterir
DCGM_FI_DEV_FB_USED Kullanılan framebuffer belleği (bayt) 0'dan toplam belleğe Pod GPU bellek sınırlarını kullanma ve pod başına bellek kullanımını izleme
DCGM_FI_DEV_FB_FREE Boş GPU belleği (bayt) 0'dan toplam belleğe Zamanlama ve OOM hatalarını önlemek için kullanışlıdır
DCGM_FI_DEV_MEMORY_UTIL Bellek kullanımı (%) 0-100% Belleğe bağlı iş yüklerini belirlemek için GPU/SM kullanımını birleştirin
DCGM_FI_DEV_MEMORY_CLOCK Geçerli bellek saat sıklığı (MHz) 0 ile maksimum bellek saati Yüksek bellek kullanımında düşük değerler kısıtlamayı gösterebilir.
DCGM_FI_DEV_POWER_USAGE Anlık güç kullanımı (Watt) 0 - TDP Yüksek kullanım durumunda yaşanan düşüşler kısıtlamayı gösterebilir.
DCGM_FI_DEV_TEMPERATURE GPU sıcaklığı (°C) ~30–85°C normal koşullar Sürekli yüksek sıcaklıklar hakkında uyarı
DCGM_FI_DEV_NVLINK_RX NVLink alım bant genişliği kullanımı (%) 0-100% Düşük SM kullanımıyla çoklu GPU eşitleme darboğazı yüksekse
DCGM_FI_DEV_XID_ERRORS Sürücü tarafından bildirilen GPU kritik hataları Genellikle 0 Anında araştırma yapılması gerekir; Kubernetes'te düğüme leke koyabilir

GPU ölçümlerinin tam paketi hakkında bilgi edinmek için NVIDIA DCGM Yukarı Akış belgelerini ziyaret edin.

Sonraki adımlar