SON DAKİKA

Nvdia

NVIDIA, Run:ai Scheduler’ı Açık Kaynak Olarak Paylaşıyor: Topluluk İşbirliğini Teşvik Ediyor

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.

The scheduling process diagram shows a workload assigned to a queue, which generates pods grouped into a podgroup. The podgroup is sent to the scheduler, which considers workloads from multiple queues. The scheduler operates in an infinite loop, performing a series of steps: taking a cluster snapshot (GPUs and CPUs), dividing resources, executing scheduling actions (allocation, consolidation, reclamation, and preemption), and updating the cluster status. The system ensures efficient resource allocation and management within defined execution orders.
Şekil 1. KAI Scheduler iş akışı

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.

The diagram shows the internal workflow of the KAI scheduler responsible for managing GPU and CPU resources. The scheduler operates in an infinite loop, continuously executing four key processes: taking a cluster snapshot, dividing available resources, performing scheduling actions, and updating the cluster status. Scheduling actions are executed in a defined order: allocation, consolidation, reclamation, and preemption.
Şekil 2. Zamanlama döngüsü

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.

A diagram shows a cluster with three nodes, each containing eight GPUs. Jobs are assigned from two priority queues: a high-priority queue and a medium-priority queue . Node 1 runs Training Jobs 1 and 2, with the high-priority job using four GPUs and the medium-priority job using two GPUs. Node 2 is occupied by Training Job 3, a medium-priority job using six out of eight GPUs. Node 3 hosts an interactive job from the medium-priority queue, using five out of eight GPUs.
Şekil 3. Küme durumu örneği
  • 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.
A diagram shows that two training jobs, Training Job A and Training Job B, are submitted with GPU requests of four and three, respectively. Training Job A belongs to the medium-priority queue (queue-a), while Training Job B is associated with the high-priority queue (queue-b).
Şekil 4. İki eğitim işi ile örnek senaryo

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.

After capturing the cluster snapshot, the scheduler begins processing the submitted jobs. It first attempts the allocation action, prioritizing the highest-priority queue. As a result, Training Job B is scheduled on Node 3.
Şekil 5. Eğitim İş B için tahsis aşaması
  • 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.

To accommodate Training Job A, the scheduler attempts to allocate four GPUs. However, no node currently has four available GPUs. As a result, the scheduler enters the consolidation phase, relocating Training Job 2 from Node 1 to Node 2. This frees up space on Node 1, enabling Training Job A to be scheduled there.
Şekil 6. Eğitim İş A’nın tahsis ve konsolidasyon aşaması
  • 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.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri