Kubernetes 1.36: GPU Cihaz Arızalarını Sonsuz Bekleme Olmadan Yönetme
NVIDIA
Meta
Kubernetes'te bir GPU cihaz arızası otomatik olarak pod'un yeniden planlanmasına yol açmaz; bunun yerine, kubelet aynı bozuk cihazda konteyneri yeniden başlatır ve bu da çökme döngüsüne neden olur. Makale bu senaryoyu bir test ortamında gösterir ve Kubernetes 1.36'daki cihaz sağlık durumu ve taint'ler gibi yeni mekanizmaların bu döngüyü nasıl kırabileceğini açıklar.
Makale, Kubernetes'in varsayılan olarak cihaz arızalarını yalnızca konteyneri yeniden başlatarak ele aldığını ve bunun GPU hızlandırmalı iş yükleri için yetersiz olduğunu vurgulamaktadır. Meta'nın Llama 3 405B eğitimi üzerine yaptığı bir çalışmaya atıfta bulunarak, binlerce GPU'ya sahip kümelerde sık sık kesintiler yaşandığını ve bunların genellikle GPU ve bellek arızalarından kaynaklandığını belirtmektedir. Yazar, yalnızca ayrılabilir sayıyı azaltan klasik cihaz eklentisi yaklaşımının sınırlamalarını açıklamakta ve bunu nesne tabanlı cihaz yönetimi sağlayan daha yeni DRA (Dinamik Kaynak Ayırma) modeliyle karşılaştırmaktadır. Yazar, test kümesinde bir GPU'yu PCIe veriyolundan sıcak çıkararak bir GPU arızasını simüle etmekte ve bunun Xid 79'a yol açtığını görmektedir. Ardından pod, ölü cihazda yeniden başlatılarak bir kilitlenme döngüsüne girmekte ve hâlâ düğüme bağlı olduğu için zamanlayıcı onu yeniden planlamamaktadır. Kubernetes 1.36, bunu ele almak için birkaç beta özelliği sunmaktadır: pod durumunda cihaz sağlık durumu, cihaz lekesi ve toleransları ve bölümlenebilir cihazlar. Bu özellikler kullanılarak küme arızayı tanıyabilir ve pod'u sağlıklı bir GPU'ya planlayarak sonsuz yeniden başlatmaların önüne geçebilir.
Kaynak: Habr — хаб ML —
orijinal
