Bugün, NVIDIA, KAI Scheduler‘ın açık kaynak sürümünü duyurdu. Bu, Kubernetes tabanlı GPU zamanlama çözümü artık Apache 2.0 lisansı altında kullanılabilir durumda. Başlangıçta Run:ai platformu içinde geliştirilen KAI Scheduler, şimdi topluluk için erişilebilir hale gelirken, ayrıca NVIDIA Run:ai platformu‘nun bir parçası olarak paketlenip sunulmaya devam etmektedir. Bu girişim, NVIDIA’nın hem açık kaynak hem de kurumsal AI altyapısını geliştirme konusundaki kararlılığını vurguluyor; aktif ve işbirlikçi bir toplumu teşvik ediyor, katkıları, geri bildirimleri ve yenilikleri destekliyor.
Bu yazıda, KAI Scheduler’ın teknik detaylarına genel bir bakış sunacağız, IT ve makine öğrenimi (ML) ekipleri için değerini vurgulayacağız ve zamanlama döngüsü ile eylemleri açıklayacağız.
KAI Scheduler’ın Avantajları
GPU ve CPU’larda AI iş yüklerini yönetmek, geleneksel kaynak zamanlayıcılarının çoğu zaman yetersiz kaldığı bir dizi zorluk içeriyor. Bu zamanlayıcı, bu sorunları özellikle çözmek amacıyla geliştirildi:
- Dalgalanan GPU taleplerini yönetme
- Hesaplama erişimi için bekleme sürelerini azaltma
- Kaynak garantileri veya GPU tahsisi sağlama
- AI araçları ve çerçeveleriyle sorunsuz bağlantı kurma
Dalgalanan GPU Taleplerini Yönetme
AI iş yükleri hızlı bir değişim gösterebilir. Örneğin, etkileşimli bir çalışma (veri keşfi gibi) için sadece bir GPU’ya ihtiyacınız olabilir, ardından dağıtık eğitim veya birden fazla deney için aniden birkaç GPU’ya ihtiyaç duyabilirsiniz. Geleneksel zamanlayıcılar, böyle değişkenliklerle başa çıkmada sıkıntı yaşayabilir.
KAI Scheduler, adalet payı değerlerini sürekli olarak yeniden hesaplayarak ve kotaları ile sınırları gerçek zamanda ayarlayarak mevcut iş yükü taleplerine otomatik olarak uyum sağlar. Bu dinamik yaklaşım, yöneticilerin sürekli müdahalesine gerek kalmadan etkili GPU tahsisi sağlar.
Hesaplama Erişimi İçin Bekleme Sürelerini Azaltma
ML mühendisleri için zaman çok kritiktir. Scheduler, grup zamanlama, GPU paylaşımı ve hiyerarşik bir kuyruklama sistemi kullanarak bekleme sürelerini azaltır. Bu sayede, çeşitli işlerinizi toplu şekilde gönderebilir ve kaynaklar mevcut olduğunda, öncelik ve adalet dengesine göre görevlerin başlatılacağından emin olabilirsiniz.
Ayrıca, talep dalgalanmaları karşısında kaynak kullanımını optimize etmek için, hem GPU hem de CPU iş yükleri için iki etkili strateji uygular:
- Bin-packing ve konsolidasyon: Kaynak parçalanmasını önleyerek compute kullanımını maksimize eder; küçük görevleri kısmen kullanılan GPU ve CPU’lara yerleştirir.
- Yayılma: İş yüklerini düğümler veya GPU ve CPU’lar arasında eşit şekilde dağıtarak, her düğüm üzerindeki yükü minimize eder ve her iş yükü için kaynak kullanılabilirliğini maksimize eder.
Kaynak Garantileri veya GPU Tahsisi Sağlama
Paylaşılan kümelerde bazı araştırmacılar, diğer ekiplerin hâlâ kullanılmadığı kotalarına rağmen gün boyunca yeterli GPU bulmak için önceden fazla GPU talep edebilirler. Bu uygulama, kaynakların yeterince kullanılmadığı durumlara yol açar.
KAI Scheduler, kaynak garantilerini zorunlu kılarak bu durumu ele alır. AI uzmanı takımlarının tahsis edilen GPU’larını almalarını sağlar ve aynı zamanda, dinamik şekilde boş kaynakları diğer iş yüklerine yönlendirir. Bu yaklaşım, kaynakların aşırı kullanılmasını önler ve genel küme verimliliğini artırır.
AI Araçları ve Çerçevelerine Sorunsuz Bağlantı Kurma
AI iş yüklerini çeşitli AI çerçeveleriyle bağlamak çetrefilli olabilir. Geleneksel olarak takımlar, iş yüklerini Kubeflow, Ray, Argo ve Eğitim Operatörü gibi araçlarla birleştirmek için bir dizi manuel yapılandırma ile karşılaşır. Bu karmaşıklık, prototip aşamasını geciktirebilir.
KAI Scheduler, bu sorunu, bu araçlarla otomatik olarak bağlantı kuran pod gruplayıcı içermesiyle çözer. Böylece yapılandırma karmaşıklığını azaltır ve gelişimi hızlandırır.
Temel Zamanlama Varlıkları
KAI Scheduler için iki ana varlık bulunmaktadır: pod grupları ve kuyruklar.
Pod Grupları
Pod grupları zamanlama için atomik birimlerdir ve tek bir birim olarak yürütülmesi gereken bir veya daha fazla bağımlı podu temsil eder. Bu kavram, TensorFlow veya PyTorch gibi dağıtık AI eğitim çerçeveleri için kritik önemdedir.
Pod grubunun temel özellikleri şunlardır:
- Minimum üyeler: Birlikte zamanlanması gereken pod sayısını belirtir. Gereken kaynaklar her üyeyi birlikte zamanlamak için mevcut değilse, pod grubu beklemede kalır.
- Kuyruk ilişkisi: Her pod grubu, onu daha geniş bir kaynak tahsis stratejisiyle bağlayan belirli bir zamanlama kuyruğuna bağlıdır.
- Öncelik sınıfı: Diğer pod gruplarına göre zamanlama sırasını belirler, işlerin önceliğini etkiler.
Kuyruklar
Kuyruklar, kaynak adaletini sağlamak için temel varlıklar olarak hizmet eder. Her kuyruk, kaynak tahsisini yönlendiren belirli özelliklere sahiptir:
- Quota: Kuyruğa garanti edilen temel kaynak tahsisi.
- Over-quota ağırlığı: Ek, fazla kaynakların, temel kotaların ötesinde tüm kuyruklar arasında nasıl dağıtılacağını etkiler.
- Sınırlama: Kuyruğun tüketebileceği maksimum kaynakları tanımlar.
- Kuyruk önceliği: Diğer kuyruklara göre zamanlama sırasını belirler, kuyruk önceliğini etkiler.
Mimari ve Zamanlama Döngüsü
Zamanlayıcının temelinde, Kubernetes kümesinin durumunu sürekli olarak oluşturarak, en iyi kaynak dağılımını hesaplayarak ve hedeflenmiş zamanlama eylemlerini uygulayarak çalışır.
Bu süreç aşağıdaki aşamalara organize edilmiştir:
- Küme anlık görüntüsü
- Kaynak bölme ve adil pay hesaplama
- Zamanlama eylemleri
Küme Anlık Görüntüsü
Zamanlama döngüsü, Kubernetes kümesinin tam bir anlık görüntüsünü almakla başlar. Bu aşamada düğümlerin, pod gruplarının ve kuyrukların mevcut durumu kaydedilir.
Kubernetes nesneleri, iç veri yapılarına dönüştürülür, böylece döngü ortasında tutarsızlık oluşması önlenir ve tüm zamanlama kararları, kümenin kararlı bir görüntüsüne dayalı olarak alınır.
Kaynak Bölme ve Adil Pay Hesaplama
Doğru bir anlık görüntü elde edildiğinde, kaynak bölme algoritması ile her zamanlama kuyruğu için adil bir pay hesaplanır. Bu algoritmanın sonucu, bir kuyruğun maksimum adaletle alması gereken kaynak miktarını temsil eden bir sayıdır.
Bölme algoritması şu aşamalara sahiptir:
- Hakkı olan kota: Her zamanlama kuyruğuna başlangıçta, temel kotası kadar kaynak tahsis edilmiştir. Bu, her departmanın, projenin veya ekibin en az hak ettiği kaynakları almasını garanti eder.
- Over-quota: Kalan her kaynak, tatmin olmamış kümelere, fazla kota ağırlığına göre dağıtılır. Bu yineleme süreci, her kuyruğun adil payını ayarlamak amacıyla dinamik olarak iş yükü taleplerine uyum sağlar.
Zamanlama Eylemleri
Adil paylar hesaplandığında, zamanlayıcı, mevcut tahsileri, hesaplanan optimal duruma uyum sağlamak için hedeflenmiş bir dizi eylem uygular:
- Tahsis: Bekleyen işler, tahsis edilen/adil pay oranına göre değerlendirilir. Uygun kaynakları karşılayabilen işler hemen bağlanırken, kaynak gerektiren ancak serbest bırakılan kaynaklara ihtiyaç duyanlar, sıraya alınır.
- Konsolidasyon: Eğitim iş yükleri için zamanlayıcı, bekleyen eğitim işlerinin sıralandığı bir dizi oluşturur. Daha sonra onları gözden geçirir ve tahsis edilen podları farklı bir düğüme taşımaya çalışır. Bu süreç, kaynak parçalanmasını azaltır ve bekleyen işler için komşu blokları serbest bırakır.
- Geri alma: Adaleti sağlamak için, zamanlayıcı, adil payından fazla tüketen kuyrukları belgelendirir. Belirli stratejiler doğrultusunda belirli işleri çıkartır; böylece, az kaynak alan kuyrukların gerekli kaynakları almasını sağlar.
- Yerinden etme: Aynı kuyruk içinde, daha düşük öncelikli işler, yüksek öncelikli bekleyen işlere tercih edilebilir, kritik iş yüklerinin kaynak çatışmaları nedeniyle aç kalmaması sağlanır.
Örnek Senaryo
Bir kümenin üç düğümden oluştuğunu ve her birinin sekiz GPU’ya sahip olduğunu düşünün; toplamda 24 GPU bulunmaktadır. İki proje yürütülmekte: proje-a ve proje-b. Bunlar sırasıyla kuyruk-a (orta öncelikli kuyruk) ve kuyruk-b (yüksek öncelikli kuyruk) ile ilişkilidir. Tüm kuyrukların adil pay içinde olduğunu varsayalım. Şekil 3, mevcut durumu göstermektedir.

- Düğüm 1: Yüksek öncelikli kuyruktan Eğitim İş 1 dört GPU kullanırken, Eğitim İş 2 iki GPU kullanıyor.
- Düğüm 2: Eğitim İş 3 altı GPU kullanıyor.
- Düğüm 3: Etkin bir görev, orta öncelikli kuyruktan 5 GPU kullanıyor.
Şimdi kuyruklara iki bekleyen işin gönderildiğini düşünün (Şekil 4):
- Eğitim İş A, tek bir düğümde dört komşu GPU gerektiriyor.
- Eğitim İş B, yüksek öncelikli bir kuyruğa üç komşu GPU talep ediyor.
Tahsis Aşaması
Zamanlayıcı, bekleyen işleri önceliğe göre sıralar. Bu durumda, Eğitim İş B önce işlenir çünkü kuyruğu daha yüksek bir aciliyet sırasına sahiptir. Elbette, iş sıralama süreci sadece basit bir öncelik sıralaması ile sınırlı değildir. Zamanlayıcı, adalet ve verimliliği sağlamak amacıyla gelişmiş stratejiler kullanır.
- Eğitim İş B için Düğüm 3 uygun, çünkü üç komşu ücretsiz GPU’su vardır. Zamanlayıcı, Eğitim İş B’yi Düğüm 3’e bağlar ve Düğüm 3 tamamen doldurulur.
- Sonrasında, zamanlayıcı Eğitim İş A’yı tahsis etmeye çalışır. Ancak, hiçbiri dört komşu ücretsiz GPU sunmamaktadır.
Konsolidasyon Aşaması
Eğitim İş A, tahsis eylemi ile zamanlanamadığı için, zamanlayıcı konsolidasyon aşamasına girer. Düğümde, Eğitim İş A için komşu bir blok oluşturmak amacıyla çalışan podları yeniden tahsis edip edemeyeceğini inceler.
- Düğüm 1’de, Eğitim İş 1 (yüksek öncelikli olduğu için yerinde kalmalıdır) ile birlikte Eğitim İş 2, iki GPU’yu işgal ediyor. Zamanlayıcı, Eğitim İş 2’yi Düğüm 2’ye yer değiştirir.
- Konsolidasyon işleminden sonra, Düğüm 1’deki boş GPU sayısı, iki değerden dört komşu GPU’ya yükselebilir.
- Bu yeni yapıyla, Eğitim İş A artık Düğüm 1’e tahsis edilebilir ve dört komşu GPU ihtiyacı karşılanır.
Bu senaryoda, konsolidasyon eylemi yeterli oldu ki ne geri alma ne de yerinden etme uygulamasına gerek duyuldu. Ancak, eğer daha düşük öncelikli bir kuyruğun altına düşen bir ek bekleyen iş olsaydı ve konsolidasyon yolunda bir seçenek yoksa, zamanlayıcının geri alma veya yerinden etme eylemleri devreye girecekti; aşırı tahsis edilen kuyruklardan ya da aynı kuyruktaki daha düşük öncelikli işlerden kaynak alarak denge sağlanacaktı.
Durum Güncellemeleri
Kuyrukların durumu güncellenir ve döngü baştan başlar, böylece zamanlama yeni iş yüklerine ayak uydurabilir.
Topluluk İşbirliği
KAI Scheduler, sadece bir prototip değildir. Bu, NVIDIA Run:ai platformu‘nın kalbinde yer alan sağlam bir motor olup, birçok işletme tarafından güvenilir bir şekilde kullanılmakta ve kritik AI operasyonlarına güç sağlamaktadır. Kanıtlanmış başarısıyla, KAI Scheduler, AI iş yükü orkestrasında altın standartı belirlemektedir.
Kurumsal kuruluşları, yeni başlayanları, araştırma laboratuvarlarını ve açık kaynak topluluklarını, zamanlayıcıyı kendi ortamlarında denemeye ve öğrenimlerini paylaşmaya davet ediyoruz.
Bizi /NVIDIA/KAI-scheduler GitHub reposunda bulabilirsiniz; projeye bir yıldız verin, kurulum yapın ve gerçek dünya deneyimlerinizi paylaşın. Geri bildirimleriniz bizim için çok değerlidir ve AI altyapısının potansiyelini daha ileriye taşımaya devam ederken katkılarınızı bekliyoruz.
KubeCon 2025
NVIDIA, 1-4 Nisan tarihleri arasında Birleşik Krallık’ta düzenlenecek KubeCon’da yer almaktan heyecan duyuyor. Canlı konuşmalar ve demolar için S750 numaralı standımızda bizimle etkileşimde bulunabilirsiniz. Üzerinde çalıştığımız konular hakkında daha fazla bilgi için, 16 sunum içeren NVIDIA’nın KubeCon’daki etkinlikleri‘ni ziyaret edebilirsiniz.