Kategori: Runtime: Core Berhenti Tiba-Tiba
Error ini menunjukkan bahwa core TPU berhenti mengeksekusi instruksi sebelum waktunya. Ini adalah status error fatal saat hardware memaksa penghentian karena kesalahan yang tidak dapat dipulihkan, pelanggaran batasan hardware, atau interupsi yang disengaja yang dipicu oleh pernyataan runtime yang dihasilkan compiler.
Contoh pesan error:
INTERNAL: Accelerator device halted prematurely, perhaps due to an on-device check-failure. Node 0 halted unexpectedly at tag:pc TensorCoreSequencer:1:0x1d9 ...
Backend XLA: TPU
Ringkasan
XLA mengompilasi program JAX menjadi serangkaian petunjuk assembly tingkat rendah. Saat runtime, perangkat TPU menjalankan petunjuk ini secara berurutan. Error "Core Halted Unexpectedly" terjadi saat hardware TPU mengalami kondisi yang tidak dapat dipulihkan yang mencegah eksekusi lebih lanjut, sehingga memaksa core ke status "HALTED" yang fatal.
Karena error ini dapat berasal dari kegagalan hardware fisik, bug compiler, atau masalah kode pengguna (terutama di kernel kustom), Anda harus menganalisis pesan log dengan cermat untuk mengidentifikasi penyebab spesifiknya.
Proses debug
Untuk mengatasi error ini, Anda harus mengidentifikasi terlebih dahulu skenario spesifik mana dari ketiga skenario tersebut yang menyebabkan penghentian yang tidak terduga. Periksa log Anda untuk menemukan tanda tangan teks tertentu yang dijelaskan di bawah.
- "observed errors are: [Hardware/Network/Power]": Hal ini menunjukkan kegagalan infrastruktur fisik. → Langsung ke Skenario 1: Kegagalan infrastruktur (hardware/jaringan/daya)
- "observed errors are: [User]": Error ini menunjukkan pelanggaran batasan hardware. → Langsung ke Skenario 2: Pelanggaran batasan hardware
Pesan error berisi detail spesifik seperti kata kunci berikut:
BoundsCheck,scheckne,scheckeq,schecklt,scheckge,scheckbetweenHal ini menunjukkan bahwa pernyataan yang dibuat compiler dalam program yang dikompilasi gagal selama eksekusi. → Buka Skenario 3: Kegagalan pernyataan yang dihasilkan compiler XLA
Skenario 1: Kegagalan infrastruktur (hardware/jaringan/daya)
Signature: Log secara eksplisit menyatakan observed errors are: [Hardware] atau
observed errors are: [Network] atau observed errors are: [Power].
Hal ini menunjukkan kegagalan infrastruktur fisik yang tidak terkait dengan software atau logika model Anda. Chip TPU, fabric jaringan yang menghubungkan chip, atau catu daya gagal berfungsi.
- Coba lagi tugas: Jika masalahnya adalah penurunan voltase sementara atau kegagalan jaringan, coba lagi tugas.
- Identifikasi dan hapus node yang buruk: Jika error tetap terjadi pada tugas atau host tertentu yang sama, kemungkinan hardware rusak. Gunakan alat pengelolaan cluster Anda untuk "menguras"/"mengisolasi" node yang terpengaruh dan mulai ulang tugas Anda di node yang berfungsi dengan baik.
Skenario 2: Pelanggaran batasan hardware
Tanda tangan: Status log observed errors are: [User].
Hal ini menunjukkan bahwa compiler XLA menghasilkan instruksi yang melanggar batasan hardware yang tidak dapat dilanggar (misalnya, instruksi yang mencoba mengakses alamat memori di luar batas pada memori HBM atau Scratchpad). Meskipun diberi label "Pengguna", masalah ini jarang disebabkan oleh kode pengguna tingkat tinggi.
- Laporkan bug XLA: Kemungkinan ini adalah bug compiler, compiler tidak boleh mengeluarkan petunjuk yang melanggar spesifikasi hardware. Harap buat laporan bug.
Skenario 3: Kegagalan pernyataan yang dihasilkan compiler XLA
Tanda Tangan: Pesan error berisi detail spesifik tentang pernyataan yang gagal yang dihasilkan compiler. Cari kata kunci berikut:
BoundsCheck,scheckne,scheckeq,schecklt,scheckge,scheckbetween
Hal ini menunjukkan bahwa pernyataan yang dibuat compiler dalam program yang dikompilasi gagal selama eksekusi. Analisis pesan error tertentu untuk menentukan sub-jenisnya.
Skenario 3.A: Ketidakcocokan grup peluncuran
Contoh pesan error:
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.
Penyebab: Error ini biasanya terjadi di lingkungan TPU multi-host. Hal ini menunjukkan bahwa core TPU, yang diharapkan menjalankan program yang sama secara tersinkron (sebagai bagian dari "grup peluncuran"), telah menjadi tidak sinkron. Secara khusus, inti TPU bergabung dengan grup sinkronisasi dengan ID program yang berbeda dari pemimpin grup saat ini, yang menunjukkan program yang tidak konsisten di seluruh host.
- Verifikasi flag XLA: Pastikan semua host menggunakan
XLA_FLAGSyang sama persis. - Periksa program JAX yang konsisten: Periksa apakah semua host menjalankan program JAX yang identik. Verifikasi image Docker, versi libtpu, dll.
Skenario 3.B: Kegagalan pemeriksaan batas
Contoh pesan error:
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
Penyebab: Program mencoba mengakses memori di luar batas yang dialokasikan. Pesan error sering kali menyertakan detail tentang jenis akses memori (misalnya, dma.hbm_to_vmem) dan penghitungan alamat.
- Men-debug kernel kustom: Jika menggunakan Pallas, periksa perhitungan indeks Anda.
Gunakan
pl.debug_printataucheckifyuntuk memvalidasi indeks tensor. - Periksa sharding: Pastikan anotasi sharding konsisten dengan bentuk tensor.
Skenario 3.C: Sinkronisasi Mosaic/Pallas
Contoh pesan error:
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.
Penyebab: Error ini khusus untuk kode yang dihasilkan oleh kompilator Mosaic (yang digunakan oleh Pallas JAX). Hal ini menunjukkan masalah sinkronisasi dalam kernel kustom. TPU menggunakan semafor untuk mengelola dependensi (misalnya, memastikan DMA selesai sebelum digunakan). Error ini menunjukkan bahwa sinyal pada semaphore tidak ditunggu dengan benar.
- Sinkronisasi audit: Pastikan setiap
dma_startmemilikidma_waityang sesuai. - Periksa semaphore: Pastikan sinyal dan penantian semaphore dipasangkan secara ketat.
Masalah yang tidak dikategorikan
Jika log error Anda tidak cocok dengan Skenario 1, 2, atau 3 (yaitu, tidak ada "observed errors", tidak ada tag "scheck", dan tidak ada pesan batas/semaphore tertentu):
- Tindakan: Kemungkinan ini adalah bug XLA internal. Harap buat laporan bug.