CPU ve bellek izleme araçları, Kubernetes'teki grafik işlem birimlerine GPU aynı kolaylıkla taşınmıyor. Platform genellikle kapsayıcı veya Pod düzeyinde kullanım ölçümleri sağlasa da platform ekiplerinin GPU'yu paylaşırken verilerin toplanmasından her ekibin maliyetteki payının belirlenmesine kadar görünürlük, tahsis ve faturalandırma katmanlarının çoğunu kendilerinin oluşturması gerekiyor.
Sorunun önemi, GPU'nun genellikle altyapı faturasındaki en pahalı kalemi oluşturmasından kaynaklanıyor. Analiz, işletim maliyetinin yalnızca düğüm fiyatıyla sınırlı olmadığını; ölçüm açıklarını telafi etmek, sayıların doğruluğunu doğrulamak ve iş yüklerinin Kubernetes'in kendilerine tahsis ettiğinden fazlasını kullanmasını önlemek için gereken mühendislik zamanını da kapsadığını belirtiyor.
Alışılmış ölçümler neden yeterli değil?
Birçok operatörün başlangıç noktası olan NVIDIA DCGM exporter, varsayılan olarak fiziksel cihaz düzeyinde veri sunuyor. Bir Pod tam bir GPU'ya sahipse bu yeterli olabilir; ancak cihaz time-slicing veya MPS kullanılarak paylaşıldığında durum değişiyor. Bu durumda tek bir GPU kullanan her Pod için aynı değer görünebilir ve gerçekte var olmayan tek bir birimin üç iş yükü tarafından %300 kullanıldığı izlenimi oluşabilir.
Sorun, grafikler düzgün görünse bile temel verilerin tahsis için geçerli olmaması. Bu nedenle ekipler, tüketiciler arasında gerçekte ayrım yapmayan sayılar üzerine eksiksiz raporlar ve gösterge panoları oluşturabilir.
Platform ekipleri açısından pratikte ne değişiyor?
GPU, kaynak tahsisi modelinde CPU'dan da farklıdır. GPU, Kubernetes'te genellikle nvidia.com/gpu: 1 gibi tamsayı bir kaynak olarak görünür ve zamanlayıcı, işlemcilerdeki alışılmış yöntemde olduğu gibi kesirli parçalarla çalışamaz. Gerçek paylaşım, time-slicing, MPS veya MIG aracılığıyla zamanlayıcının altında gerçekleşir; bu da iş yükünün talep ettiğiyle kullandığını karşılaştırmayı daha karmaşık hale getirir.
Ekiplerin ayrıca Kubernetes'in tahsis edilmiş olarak kaydettiği şeyin uygulamanın gerçekte erişebildiği kaynakla eşleştiğinden emin olmak için bağımsız denetimlere ihtiyacı vardır. Uygun bir yapılandırmayla geçersiz kılınmadığı takdirde NVIDIA_VISIBLE_DEVICES ortam değişkeni, zamanlayıcı ona yalnızca bir birim tahsis etmiş olsa bile kapsayıcının düğümdeki tüm GPU'ları görmesine neden olabilir.
Ayrıca “%80 GPU kullanımı” ifadesi mutlaka tek bir anlam taşımaz. Bu ifade yalnızca örnekleme penceresinin bir bölümünde çalışan bir çekirdeğin varlığını ölçebilir; hesaplama gücü veya bellek bant genişliği tüketimini açıklamayabilir. vLLM gibi bazı çerçevelerde başlatma sırasında GPU belleğinin çoğu rezerve edilebilir; bu da genel kullanım sayısından ziyade belleği veya bant genişliğini daha önemli bir gösterge haline getirir.
Faturalandırma: Belleği tahsis etmek hesaplamayı tahsis etmekten daha kolay
NVIDIA NVML kütüphanesi, her process'in tuttuğu bellek miktarını gösterebilir ve ardından bu process'i ilgili Pod'a ve sorumlu ekibe bağlayabilir. Ancak değerlerin toplamının, sürücünün kendisi için ayırdığı bölüm nedeniyle kartın toplam belleğine eşit olmayacağı unutulmamalıdır.
Buna karşılık paralel çalışan iş yükleri arasındaki hesaplama süresinin tahsis edilmesinin doğruluğu sınırlıdır. İki iş yükünün her biri %90 oranında etkinmiş gibi görünebilir; ancak ölçümler hangisinin kapasitenin %70'ini, hangisinin %30'unu tükettiğini açıklamayabilir. Bu nedenle analiz, GPU belleği kullanımını iç faturalandırma için pratik bir temel olarak öne çıkarırken hesaplama ölçümünün kesin bir ücretlendirme referansı değil, operasyonel bir gösterge olarak ele alınmasını öneriyor.
Paylaşım modelinin seçimi hesaplamaları değiştiriyor
GPU paylaşımı tek bir model anlamına gelmez. time-slicing, yalıtım olmadan cihaz üzerinde sırayla çalışır; MPS, farklı process'lerden gelen çekirdeklerin aynı anda çalışmasına izin verir; MIG ise donanımı sabit parçalara böler. Bununla birlikte bulut hizmetleri, bir kısmı kullanılsa bile fiziksel GPU'nun tamamı için ücret talep edebilir. Ayrıca A100 ve H100 sınıfı kartlar, metne göre en fazla yedi örneğe bölünebilir.
Dynamic Resource Allocation (DRA), kaynak yönetimi için gelecekte izlenecek yol olmaya yöneliyor; ancak henüz olgunlaşma aşamasında. Karpenter gibi ölçeklendirme araçları da dahil olmak üzere çevresindeki araçlar bu gelişmeyi takip ediyor.
Bu haber neden önemli?
Metne göre AWS'de MIG ile uyumlu en ucuz A100 sınıfı GPU'nun fiyatı saatte yaklaşık 22 dolar, spot fiyatlandırma kullanıldığında ise yaklaşık 14 dolar. Yalnızca CPU kullanan karşılaştırılabilir bir örnek saatte yaklaşık 5 dolar. Bu nedenle kullanımın yanlış tahsis edilmesi küçük bir muhasebe sorunu değildir; kapasite ve maliyet kararlarını ve ekipler arasındaki yük dağılımının adilliğini doğrudan etkileyebilir.
Editoryal sonuç, Kubernetes'te GPU çalıştırmanın hâlâ CPU ve bellek modelinden farklı bir operasyonel model gerektirdiğidir. Platform ekipleri nelerin doğru şekilde ölçülebileceğini belirlemeli, maliyet dağıtımı için açık kurallar koymalı ve gerçek tüketimi tanımlamayan genel bir GPU göstergesi üzerine muhasebe kararları almaktan kaçınmalıdır. Buna karşılık kaynak, DRA'nın olgunlaşmasının ve donanımın bölümlenmesinin bu açığı zamanla azaltabileceğini belirtiyor; ancak bunun zamanlaması ve mevcut araçların sınırları hâlâ açık sorular olarak kalıyor.