Panduan ini menjelaskan cara mendiagnosis dan menyelesaikan masalah umum pada VM Compute Engine yang memiliki GPU terlampir, termasuk error hardware dan hambatan performa.
Memecahkan masalah VM GPU menggunakan NVIDIA DCGM
NVIDIA Data Center GPU Manager (DCGM) adalah rangkaian alat untuk mengelola dan memantau GPU pusat data NVIDIA di lingkungan cluster.
Untuk menggunakan DCGM dalam memecahkan masalah di lingkungan GPU Anda, selesaikan langkah-langkah berikut:
- Pastikan Anda menggunakan driver NVIDIA terbaru yang direkomendasikan untuk model GPU yang terpasang ke VM Anda. Untuk meninjau versi driver, lihat Versi driver NVIDIA yang direkomendasikan.
- Pastikan Anda telah menginstal DCGM versi terbaru. Untuk menginstal versi terbaru, lihat Penginstalan DCGM.
Mendiagnosis masalah
Saat Anda menjalankan perintah diagnostik dcgmi, masalah yang dilaporkan oleh alat diagnostik mencakup langkah-langkah berikutnya untuk mengambil tindakan terkait masalah tersebut. Contoh berikut menunjukkan output yang dapat ditindaklanjuti dari perintah dcgmi diag -r memory -j.
{
........
"category":"Hardware",
"tests":[
{
"name":"GPU Memory",
"results":[
{
"gpu_id":"0",
"info":"GPU 0 Allocated 23376170169
bytes (98.3%)",
"status":"Fail",
""warnings":[
{
"warning":"Pending page
retirements together with a DBE were detected on GPU 0. Drain the GPU and reset it or reboot the node to resolve this issue.",
"error_id":83,
"error_category":10,
"error_severity":6
}
]
}
.........
Dari cuplikan output sebelumnya, Anda dapat melihat bahwa GPU 0 memiliki penghentian halaman tertunda yang disebabkan oleh error yang tidak dapat dipulihkan. Output memberikan error_id unik dan saran tentang cara men-debug masalah. Untuk contoh output ini, sebaiknya Anda menguras GPU dan memulai ulang VM. Dalam sebagian besar kasus, mengikuti
petunjuk di bagian output ini dapat membantu menyelesaikan masalah.
Memecahkan masalah performa GPU untuk VM A3
Seri mesin A3 tersedia dengan GPU NVIDIA H200 atau H100 yang terpasang. Seri ini mencakup jenis mesin A3 Ultra (H200), A3 Mega (H100), A3 High (H100), dan A3 Edge (H100).
Mengidentifikasi node yang rusak
Tugas pelatihan atau benchmark skala besar pada cluster GPU multi-node dapat berhenti merespons atau berperforma buruk. Hal ini sering terjadi karena satu atau beberapa node berperforma buruk dan memperlambat seluruh operasi. Bagian ini menjelaskan cara mengidentifikasi node atau mesin host yang rusak dengan menjalankan uji tolok ukur NCCL atau menganalisis log NCCL.
Menjalankan uji tolok ukur NCCL
Untuk mengidentifikasi grup node yang menyebabkan kegagalan, uji subset cluster Anda secara sistematis menggunakan tolok ukur NCCL seperti all_reduce_perf.
- Untuk mengidentifikasi nodeset, kelompokkan node ke dalam set logis, misalnya, partisi di Slurm.
- Untuk membuat file host, buat file host terpisah untuk setiap set node, yang mencantumkan
nama host dan jumlah GPU per node. Jumlah slot yang Anda
tentukan bergantung pada jumlah GPU jenis VM A3 Anda. Misalnya,
VM
a3-highgpu-8gmemiliki 8 GPU, jadi Anda harus menentukanslots=8. - Untuk menjalankan benchmark, jalankan benchmark
all_reduce_perfterhadap setiap nodeset satu per satu.mpirun -x LD_LIBRARY_PATH --hostfile HOSTFILE_NAME -n TOTAL_PROCESSES \ ./build/all_reduce_perf -b 1G -e 8G -f 2 -g NUM_GPUS_PER_NODEGanti kode berikut:
HOSTFILE_NAME: nama hostfile yang berisi daftar node dan jumlah GPU per node untuk nodeset.TOTAL_PROCESSES: jumlah total proses MPI yang akan diluncurkan di semua host dalam nodeset.NUM_GPUS_PER_NODE: jumlah GPU per node. Untuk semua jenis mesin A3, nilai ini adalah8.
- Untuk menganalisis hasil, jika tugas terhenti atau menunjukkan bandwidth bus yang jauh lebih rendah (
busbw) pada set node tertentu, set tersebut kemungkinan rusak. - Untuk membagi lebih lanjut, jika nodeset rusak, bagi file host-nya menjadi dua dan uji ulang untuk mempersempit penelusuran biner hingga Anda menemukan node yang berperilaku tidak semestinya.
Menganalisis log NCCL
Jika metode tolok ukur tidak menunjukkan node, analisis log NCCL mendetail.
- Untuk mengaktifkan logging debug, tetapkan variabel lingkungan berikut di sesi shell tempat Anda berencana menjalankan workload:
export NCCL_DEBUG=INFO export NCCL_DEBUG_SUBSYS=INIT,NET,COLL export NCCL_DEBUG_FILE="LOG_DIRECTORY/nccl_log.%h.%p"Ganti
MenetapkanLOG_DIRECTORYdengan direktori tempat Anda ingin menyimpan log.NCCL_DEBUG_FILEdengan%hdan%pakan membuat file log unik dan tidak berselang-seling untuk setiap proses.Jika Anda menjalankan workload multi-node menggunakan
mpirun, teruskan variabel ini ke semua node menggunakan tanda-x. Contoh:mpirun -x NCCL_DEBUG -x NCCL_DEBUG_SUBSYS -x NCCL_DEBUG_FILE ... - Untuk menemukan error pertama, gunakan perintah berikut untuk menemukan peristiwa
waktu tunggu atau kegagalan paling awal di semua file log:
grep "NCCL WARN.*NET/FasTrak" LOG_DIRECTORY/* | sed 's/.*NET\/FasTrak\(.*\)/\1/g' \ | sort | head -n 20Ganti
LOG_DIRECTORYdengan direktori tempat log Anda disimpan. - Untuk menghitung operasi kolektif, node yang lambat menyelesaikan lebih sedikit operasi
kolektif. Menghitung
"opCount"entri untuk peringkat kecurigaan:grep "opCount" LOG_DIRECTORY/nccl_log.HOSTNAME.PID | wc -lGanti kode berikut:
LOG_DIRECTORY: direktori tempat log Anda disimpanHOSTNAME: nama host nodePID: ID proses NCCL
- Untuk mengumpulkan lebih banyak data logging sebelum tugas dibatalkan,
tingkatkan waktu tunggu transfer data untuk sementara:
export NCCL_FASTRAK_DATA_TRANSFER_TIMEOUT_MS=3600000
Memantau throttling termal GPU
VM seri A3 dapat mengalami penurunan performa jika secara konsisten mencapai
suhu lebih dari 87 °C saat dalam beban. Untuk memeriksa pembatasan termal GPU di seluruh node dalam cluster, gunakan nvidia-smi atau dcgmi.
Menggunakan nvidia-smi
Untuk memeriksa suhu saat ini dan status throttling semua GPU di node, jalankan perintah berikut:
nvidia-smi --query-gpu=timestamp,name,pci.bus_id,temperature.gpu,clocks_throttle_reasons.hw_slowdown --format=csv
Dalam output, nilai Active di kolom clocks_throttle_reasons.hw_slowdown
menunjukkan bahwa GPU mengalami throttling karena suhu tinggi.
Menggunakan dcgmi
Rangkaian diagnostik NVIDIA Data Center GPU Manager (DCGM) mencakup pemeriksaan terhadap pelanggaran termal. Untuk menjalankan diagnostik level 1, jalankan perintah berikut:
dcgmi diag -r 1
Hasil Warn atau Fail di bagian Thermal menunjukkan bahwa pelanggaran
termal terjadi selama pengujian. Jika pelanggaran termal disertai dengan
pembatasan clock, GPU kemungkinan mengalami panas berlebih dan memerlukan
penyelidikan lebih lanjut.
Error Xid
Setelah membuat VM yang telah memasang GPU, Anda harus menginstal driver perangkat NVIDIA di VM GPU agar aplikasi Anda dapat mengakses GPU. Namun, terkadang driver ini menampilkan pesan error.
Pesan Xid adalah laporan error dari driver NVIDIA yang dicetak ke log kernel atau log peristiwa sistem operasi untuk VM Linux Anda. Pesan ini ditempatkan dalam file /var/log/messages. Untuk mengetahui informasi selengkapnya tentang pesan Xid, termasuk kemungkinan penyebabnya, lihat dokumentasi NVIDIA.
Cara Google menangani error Xid
Google menggunakan pemeriksaan kesehatan pasif untuk mengevaluasi sistem GPU. Jika penggantian hardware diperlukan, Google akan otomatis memulai pemeliharaan darurat. Google mendeteksi error Xid dan secara proaktif mengirimkan mesin ke reparasi jika kode error menunjukkan kemungkinan tinggi kegagalan hardware, seperti Xid 74, 79, dan 140. Untuk beberapa kode Xid, karena dapat disebabkan oleh masalah software atau hardware, Google menggunakan pencocokan pola untuk memicu perbaikan, sehingga tidak setiap kemunculan akan menghasilkan perbaikan otomatis.
Jenis error Xid
Daftar berikut menjelaskan tiga kategori utama error Xid dan tindakan pemulihan yang direkomendasikan:
Error aplikasi: menunjukkan masalah dalam kode aplikasi Anda. Error aplikasi mencakup Xid seperti Xid 13, 31, 94, 95, dan 137, yang menunjukkan berbagai jenis pelanggaran akses memori, mirip dengan kesalahan segmentasi. Error ini tidak menunjukkan error ECC. Untuk memecahkan masalah error ini, NVIDIA merekomendasikan penggunaan salah satu pendekatan debug berikut:
- Penelusuran bug langsung: jalankan aplikasi langsung di cuda-gdb atau jalankan alat Compute Sanitizer memcheck.
- Penelusuran bug pasca-pengecualian: jalankan aplikasi dengan
CUDA_DEVICE_WAITS_ON_EXCEPTION=1. Saat pengecualian terjadi, driver GPU membekukan status aplikasi tanpa keluar sehingga Anda dapat melampirkan debugger nanti (cuda-gdb -p <PID>) untuk memeriksa rekaman aktivitas stack langsung.
Error driver: menunjukkan masalah yang disebabkan oleh driver GPU NVIDIA. Untuk menyelesaikan error ini, pastikan Anda menggunakan driver NVIDIA versi terbaru. Google memantau error ini dan berkolaborasi dengan NVIDIA untuk memperbaiki driver.
Error yang dapat dipulihkan firmware atau hardware: error ini menunjukkan error firmware atau hardware yang memungkinkan pemulihan tanpa penggantian hardware. Untuk mengatasi error ini, terapkan langkah-langkah pemulihan manual seperti mereset GPU atau memulai ulang instance. Error yang dapat dipulihkan firmware atau hardware mencakup error Error Correcting Code (ECC) (berlaku untuk Xid seperti Xid 48, 63, dan 64) yang menunjukkan berbagai tahap pendeteksian dan mitigasi error ECC. Untuk mengetahui informasi selengkapnya tentang penghentian penayangan halaman dan mitigasi error ECC, lihat FAQ Penghentian Penayangan Halaman Dinamis NVIDIA.
Meninjau pesan Xid
Untuk mendiagnosis dengan cepat alasan workload GPU gagal, berhenti merespons, atau mengalami penurunan performa, periksa log kernel instance Anda (dmesg atau /var/log/kern.log) untuk mengetahui kode error NVIDIA Xid numerik.
Meninjau tabel error Xid di subbagian berikut akan membantu Anda segera:
- Menentukan penyebab utama: mengidentifikasi apakah kegagalan disebabkan oleh bug aplikasi (seperti akses memori ilegal), konflik driver, atau kesalahan hardware fisik (seperti error memori ECC double-bit).
- Tentukan kepemilikan operasional: periksa tindakan pemulihan manual langsung yang harus Anda terapkan, seperti mereset GPU, memulai ulang VM, atau menjalankan debugger, dibandingkan dengan tindakan perbaikan otomatis dan penggantian hardware yang dikelola secara aktif oleh Google di host.
- Lakukan langkah-langkah pemulihan yang benar: hindari prosedur pemecahan masalah yang tidak perlu dan ketahui secara tepat kapan pemulihan manual sudah cukup dan kapan Anda perlu melaporkan host sebagai rusak. Terkadang, pemulihan manual tidak
cukup, misalnya, jika sumber error berada di cache GPU (SRAM),
yang tidak dapat dipetakan ulang, yang ditunjukkan oleh
Xid 48denganSRAM Threshold Exceeded=Yes, atau jika GPU telah kehabisan bank pemetaan ulang, yang ditunjukkan olehXid 64: All reserved rows for bank are remapped. Dalam kasus ini, Google mendeteksi bahwa GPU memenuhi syarat untuk penggantian hardware dan secara proaktif mengirimkan mesin untuk diperbaiki. Jika workload Anda mengalami error berulang atau jika Anda mengamati kesalahan memori berulang, Anda dapat melaporkan host yang rusak untuk memulai perbaikan atau penggantian otomatis. Untuk GKE, lihat Cara melaporkan host yang rusak di GKE.
Penanganan Xid
Bagian berikut mengelompokkan pesan error Xid umum menurut kategori teknis beserta resolusi dan tanggung jawab yang berwenang:
- Error memori GPU (Xid
48,63,64,92,94,95) - Error Prosesor Sistem GPU (GSP) (Xid
119,120) - Kesalahan akses memori ilegal (Xid
13,31,137) - Pesan error Xid umum lainnya (Xid
74,79,109,149)
Error memori GPU
Memori GPU adalah memori yang tersedia di GPU yang dapat digunakan untuk penyimpanan data sementara. Memori GPU dilindungi dengan Kode Koreksi Error (ECC), yang mendeteksi dan mengoreksi error satu bit (SBE) serta mendeteksi dan melaporkan error dua bit yang tidak dapat dikoreksi (DBE).
Error memori ini diperkirakan akan terjadi selama masa pakai GPU. Sebelum GPU NVIDIA A100 dirilis, penghentian halaman dinamis didukung. Untuk rilis GPU NVIDIA A100 dan yang lebih baru (seperti NVIDIA H100), pemulihan error pemetaan ulang baris diperkenalkan untuk error HBM (DRAM). ECC diaktifkan secara default, dan Google sangat merekomendasikan agar ECC tetap diaktifkan.
Tabel berikut mencantumkan error memori GPU umum dan saran penyelesaiannya:
| Pesan error Xid | Tindakan pelanggan | Tindakan Google |
|---|---|---|
Xid 48: Double Bit ECC
Error memori bit ganda (tidak dapat dikoreksi) terdeteksi oleh ECC. Error ini selalu mengganggu beban kerja yang sedang berjalan dan menghasilkan Xid 48. |
|
Google memantau kapan GPU memenuhi syarat untuk penggantian hardware, seperti jika bank pemetaan ulang HBM habis atau GPU melebihi batas error SRAM seumur pakainya, dan secara proaktif mengirimkan mesin ke tempat reparasi untuk mengganti GPU. |
Xid 63: ECC page retirement or row remapping recording
event
Menunjukkan bahwa peristiwa penghentian penggunaan halaman dinamis atau pemetaan ulang baris dicatat karena error memori. |
|
Google memantau batas error dan mengirimkan mesin untuk diperbaiki jika GPU memerlukan perbaikan atau penggantian fisik. |
Xid 64: ECC page retirement or row remapper recording
failure
Pesan tersebut berisi informasi berikut: Xid 64: All reserved rows for bank are remapped
|
|
Saat bank pemetaan ulang habis
( |
Jika Anda mendapatkan setidaknya dua pesan Xid berikut secara bersamaan:
Pesan tersebut berisi informasi berikut: Xid XX: row remap pending
|
|
Google mengirimkan mesin untuk diperbaiki jika bank pemetaan ulang habis atau saat GPU memerlukan perbaikan atau penggantian fisik. |
Xid 92: High single-bit ECC error rate |
Pesan Xid ini ditampilkan setelah driver GPU memperbaiki error yang dapat diperbaiki, dan tidak akan memengaruhi beban kerja Anda. Pesan Xid ini hanya sebagai informasi. Anda tidak perlu melakukan tindakan apa pun. |
Tidak ada |
Xid 94: Contained error
Menunjukkan bahwa terjadi error GPU dan apakah error tersebut terjadi dalam satu aplikasi. Xid 94 saja tidak menunjukkan penyebab utama error; Xid ini harus ditafsirkan bersama dengan error Xid lain yang terjadi bersamaan untuk menentukan penyebab mendasar. |
|
Tidak ada |
Xid 95: Uncontained error
Menunjukkan bahwa terjadi error GPU dan tidak terbatas pada satu aplikasi. Dengan sendirinya, Xid 95 tidak menunjukkan penyebab utama error; Xid 95 harus ditafsirkan bersama dengan error Xid lain yang terjadi bersamaan untuk menentukan penyebab mendasar. |
Tidak ada |
Error GSP
Prosesor Sistem GPU (GSP) adalah pengontrol mikro yang berjalan di GPU dan menangani beberapa fungsi pengelolaan hardware tingkat rendah.
| Pesan error Xid | Tindakan pelanggan | Tindakan Google |
|---|---|---|
Xid 119: GSP RPC timeout |
|
Tidak ada. Jika error berlanjut dan Anda mengajukan kasus dukungan, Google akan menyelidiki status hardware atau driver melalui alur kerja dukungan. |
Xid 120: GSP error |
Error akses memori ilegal
Xid berikut ditampilkan saat aplikasi mengalami kesalahan akses memori ilegal:
| Pesan error Xid | Tindakan pelanggan | Tindakan Google |
|---|---|---|
|
Pelanggaran akses memori terdeteksi, yang serupa dengan kesalahan segmentasi. Error ini biasanya menunjukkan bug aplikasi saat memori GPU diakses di luar batas, atau pada buffer yang dibebaskan seperti dereferensi pointer yang tidak valid atau array di luar batas. Error ini tidak mewakili error ECC kecuali jika Xid 48 juga ada. |
Untuk mengatasi masalah ini, lakukan proses debug pada kesalahan akses memori di aplikasi Anda. Anda dapat menggunakan cuda-gdb, Compute Sanitizer, atau cuda-memcheck. Untuk mengetahui detail selengkapnya, lihat dokumentasi NVIDIA Xid. |
Tidak ada. Dalam kasus langka saat penurunan kualitas hardware dapat menyebabkan error akses memori ilegal yang dilaporkan secara keliru, Anda dapat menggunakan NVIDIA Data Center GPU Manager (DCGM) untuk menjalankan |
Pesan error Xid umum lainnya
| Pesan error Xid | Tindakan pelanggan | Tindakan Google |
|---|---|---|
Xid 74: NVLINK error |
|
Tidak ada |
Xid 79: GPU has fallen off the bus
Artinya, driver tidak dapat berkomunikasi dengan GPU karena masalah hardware menyebabkan GPU menghilang dari bus PCI. |
Untuk memulihkan workload, gunakan salah satu pendekatan berikut, bergantung pada apakah pemeliharaan darurat diaktifkan untuk project Anda:
|
Google mendeteksi bahwa GPU telah terlepas dari bus PCI dan mengirim mesin untuk direparasi. |
Xid 109: Context switch timeout
Xid 109 adalah error umum yang dilaporkan oleh driver GPU NVIDIA, yang dihasilkan saat instance GPU gagal melakukan tugas preempt atau beralih dalam periode waktu tunggu yang diharapkan. Google memiliki sejarah panjang dalam menyelidiki Xid 109 dengan NVIDIA, dan penyebab umum dari bug driver telah diperbaiki di driver terbaru. Xid 109 tidak disebabkan oleh masalah hardware. |
|
Tidak ada |
Xid 149 yang menyebutkan 0x02a, seperti
contoh berikut:
Hal ini menunjukkan masalah umum yang memengaruhi firmware untuk GPU NVIDIA B200. |
|
Tidak ada |
Mereset GPU
Beberapa masalah mungkin mengharuskan Anda mereset GPU. Untuk mereset GPU, selesaikan langkah-langkah berikut:
- Untuk VM N1, G2, A2, dan G4 dengan satu atau beberapa GPU yang terpasang, mulai ulang VM.
- Untuk VM G4 dengan GPU fraksional (kurang dari satu GPU terpasang), selesaikan langkah-langkah berikut:
- Untuk instance A3, A4, A4X, dan A4X Max, jalankan
sudo nvidia-smi --gpu-reset.- Untuk sebagian besar VM Linux, file yang dapat dieksekusi
nvidia-smiterletak di direktori/var/lib/nvidia/bin. - Untuk node GKE, executable
nvidia-smiterletak di direktori/home/kubernetes/bin/nvidia.
- Untuk sebagian besar VM Linux, file yang dapat dieksekusi
- Untuk instance A3, A4, A4X, dan A4X Max di node GKE, Anda juga dapat menggunakan gpu-reset-tool untuk mengotomatiskan reset semua GPU di node. Alat ini hanya mengharuskan Anda menentukan nama node target.
Atau, GPU juga direset setiap kali Anda mereset VM atau menghentikan dan memulai ulang VM. Untuk mengetahui informasi selengkapnya tentang status siklus proses VM dan perbedaan antara tindakan pemulihan VM, lihat Siklus proses instance Compute Engine dan Menangguhkan, menghentikan, atau mereset instance Compute Engine.
Membuka kasus dukungan
Jika Anda tidak dapat menyelesaikan masalah dengan menggunakan panduan di halaman ini, kumpulkan informasi berikut dan buka kasus dukungan:
- Project ID project tempat instance yang terpengaruh berada.
- Daftar semua nama atau ID instance di cluster.
- Daftar node yang dicurigai yang diidentifikasi melalui pemecahan masalah.
- Log NCCL yang lengkap dan tidak disisipkan dengan setelan debug diaktifkan.
- Output dari health check hardware (
dcgmi,nvidia-smi). - Perintah benchmark atau workload persis yang gagal.
- File log yang relevan seperti log diagnostik dan mesin host. Untuk mengumpulkan
data ini, jalankan
gather-dcgm-logs.sh, yang ada di/usr/local/dcgm/scriptsdalam penginstalan default. - Laporan bug NVIDIA. Jalankan
nvidia-bug-report.sh. Untuk GPU Blackwell, ikuti Membuat Laporan Bug NVIDIA untuk GPU Blackwell. - Detail tentang perubahan terbaru yang dilakukan pada lingkungan Anda sebelum kegagalan terjadi.
Langkah berikutnya
Tinjau jenis mesin GPU.