Hata kodu: E0200

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.

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_FLAGS kullandığı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_print veya checkify kullanı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_start için karşılık gelen bir dma_wait olduğ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):