Kategori: Çalışma zamanı: Çekirdek beklenmedik şekilde durduruldu
Bu hata, bir TPU çekirdeğinin talimatları erken yürütmeyi durdurduğunu gösterir. Bu, donanımın kurtarılamayan bir hata, donanım kısıtlamalarının ihlali veya derleyici tarafından oluşturulan çalışma zamanı onaylamaları tarafından tetiklenen kasıtlı bir kesme nedeniyle durmaya zorlandığı önemli bir hata durumudur.
Örnek hata mesajı:
INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:1:0x1d9 ...
XLA arka uçları: TPU
Genel Bakış
XLA, JAX programlarını düşük düzeyli derleme talimatları dizisine derler. Çalışma zamanında TPU cihazı bu talimatları sırayla yürütür. TPU donanımı, daha fazla yürütmeyi engelleyen ve çekirdeği ölümcül bir "HALTED" durumuna zorlayan kurtarılamaz bir durumla karşılaştığında "Core Halted Unexpectedly" (Çekirdek beklenmedik şekilde durduruldu) hatası oluşur.
Bu hata, fiziksel donanım arızalarından, derleyici hatalarından veya kullanıcı kodu sorunlarından (özellikle özel çekirdeklerde) kaynaklanabileceğinden, belirli nedeni belirlemek için günlük mesajlarını dikkatlice analiz etmeniz gerekir.
Hata ayıklama
Bu hatayı düzeltmek için öncelikle üç özel senaryodan hangisinin beklenmedik duraklamaya neden olduğunu belirlemeniz gerekir. Günlüklerinizi kontrol ederek aşağıda açıklanan metin imzalarını bulun.
- "observed errors are: [Hardware/Network/Power]": Bu, fiziksel altyapı arızasını gösterir. → Şuraya atla: 1. Senaryo: Altyapı arızaları (donanım/ağ/güç)
- "observed errors are: [User]": Bu, donanım kısıtlaması ihlali olduğunu gösterir. → Atla 2. senaryo: Donanım kısıtlaması ihlalleri
Hata mesajı, aşağıdaki anahtar kelimeler gibi belirli ayrıntıları içeriyor:
BoundsCheck,scheckne,scheckeq,schecklt,scheckge,scheckbetweenBu, derlenmiş programdaki derleyici tarafından oluşturulan bir onaylamanın yürütme sırasında başarısız olduğunu gösterir. → Şuraya atlayın: Senaryo 3: XLA derleyicisi tarafından oluşturulan onaylama hataları
1. senaryo: Altyapı arızaları (donanım/ağ/güç)
İmza: Günlüklerde açıkça observed errors are: [Hardware] veya
observed errors are: [Network] ya da observed errors are: [Power] belirtiliyor.
Bu, yazılımınız veya model mantığınızla ilgili olmayan bir fiziksel altyapı hatasını gösterir. TPU çipi, çipleri bağlayan ağ yapısı veya güç kaynağı arızalanmıştır.
- İşi yeniden deneyin: Sorun geçici bir voltaj düşüşü veya ağ bağlantısının kesilip yeniden bağlanmasıyla ilgiliyse basit bir yeniden deneme işe yarayabilir.
- Kötü düğümleri belirleyip kaldırın: Hata aynı görevde veya ana makinede devam ediyorsa donanım büyük olasılıkla kusurludur. Küme yönetim araçlarınızı kullanarak etkilenen düğümü "boşaltın"/"izole edin" ve işinizi sağlıklı düğümlerde yeniden başlatın.
2. senaryo: Donanım kısıtlaması ihlalleri
İmza: Günlüklerde observed errors are: [User] ifadesi yer alıyor.
Bu, XLA derleyicisinin, ihlal edilemez bir donanım kısıtlamasını (ör. HBM veya Scratchpad belleğinde sınırların dışında bir bellek adresine erişmeye çalışan bir talimat) ihlal eden bir talimat oluşturduğunu gösterir. "Kullanıcı" olarak etiketlenmiş olsa da bu durum nadiren üst düzey kullanıcı kodundan kaynaklanır.
- XLA hatası bildirin: Bu büyük olasılıkla bir derleyici hatasıdır. Derleyici, donanım özelliklerini ihlal eden talimatlar hiçbir zaman yayınlamamalıdır. Lütfen hata raporu gönderin.
3. senaryo: XLA derleyicisi tarafından oluşturulan onaylama hataları
İmza: Hata mesajı, derleyici tarafından oluşturulan ve başarısız olan onaylama ile ilgili ayrıntılı bilgiler içerir. Aşağıdaki anahtar kelimeleri arayın:
BoundsCheck,scheckne,scheckeq,schecklt,scheckge,scheckbetween
Bu, derlenmiş programdaki derleyici tarafından oluşturulan bir onaylamanın yürütme sırasında başarısız olduğunu gösterir. Alt türü belirlemek için belirli hata mesajını analiz edin.
3.A senaryosu: Lansman grubu uyuşmazlığı
Örnek hata mesajı:
Core halted unexpectedly: INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:1:0x1d9 (from TensorCoreSequencer:1:0x309): scheckne: An unexpected leader shows up in the launch group with a different launch id than the current group leader.
Neden: Bu hata genellikle çok ana bilgisayarlı TPU ortamlarında oluşur. Bu hata, aynı programı senkronize bir şekilde (bir "başlatma grubu" kapsamında) yürütmesi beklenen TPU çekirdeklerinin senkronizasyonunun bozulduğunu gösterir. Özellikle, bir TPU çekirdeği, mevcut grup liderinden farklı bir program tanımlayıcısıyla bir senkronizasyon grubuna katıldı. Bu durum, ana makineler arasında tutarsız programlar olduğunu gösteriyor.
- XLA işaretlerini doğrulayın: Tüm ana makinelerin tam olarak aynı
XLA_FLAGSkullandığından emin olun. - Tutarlı JAX programları olup olmadığını kontrol edin: Tüm ana makinelerin aynı JAX programlarını çalıştırdığını kontrol edin. Docker görüntülerini, libtpu sürümlerini vb. doğrulayın.
Senaryo 3.B: Sınır kontrolü hatası
Örnek hata mesajı:
Core halted unexpectedly: INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:23:0x292 (from TensorCoreSequencer:23:0xd74a): BoundsCheck 92 [deref of %s931] for %937 = dma.hbm_to_vmem [thread:$0] /*hbm=*/%s931, /*size_in_granules=*/16384, /*vmem=*/%s935, /*dst_syncflagno=*/%s860, /*src_stride=*/512, /*dst_stride=*/128, /*steps_per_stride=*/8
Neden: Program, ayrılan sınırların dışındaki belleğe erişmeye çalıştı. Hata mesajı genellikle bellek erişim türü (ör. dma.hbm_to_vmem) ve adres hesaplamasıyla ilgili ayrıntılar içerir.
- Özel çekirdeklerde hata ayıklama: Pallas kullanıyorsanız dizin hesaplamalarınızı kontrol edin.
Tensor dizinlerini doğrulamak için
pl.debug_printveyacheckifykullanın. - Parçalama işlemini kontrol edin: Parçalama ek açıklamalarının tensör şekilleriyle tutarlı olduğundan emin olun.
Senaryo 3.C: Mosaic/Pallas senkronizasyonu
Örnek hata mesajı:
Core halted unexpectedly: INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:21:0xae5 (from TensorCoreSequencer:21:0x54c5): Semaphore (scratch argument 1) has a nonzero value upon exit from a Mosaic kernel. Make sure every DMA is awaited, and every semaphore signal is paired with a wait.
Nedeni: Bu hata, Mosaic derleyicisi (Pallas JAX tarafından kullanılır) tarafından oluşturulan koda özgüdür. Özel çekirdekteki bir senkronizasyon sorununu gösterir. TPU'lar, bağımlılıkları yönetmek için semaforları kullanır (ör. bir DMA'nın kullanımdan önce tamamlanmasını sağlama). Bu hata, bir semafor üzerindeki sinyalin uygun şekilde beklenmediğini gösterir.
- Senkronizasyonu denetleme: Her
dma_startiçin karşılık gelen birdma_waitolduğundan emin olun. - Semafarları kontrol edin: Semafarlarla ilgili sinyallerin ve beklemelerin kesinlikle eşleştirildiğini doğrulayın.
Kategorize edilmemiş sorunlar
Hata günlüğünüz 1, 2 veya 3.senaryoyla eşleşmiyorsa (ör. "observed errors", "scheck" etiketleri ve belirli sınırlar/semaphore mesajları yoksa):
- İşlem: Bu durum, büyük olasılıkla dahili bir XLA hatasından kaynaklanmaktadır. Lütfen hata raporu gönderin.