Mesin GB10 kami terus-menerus mati sendiri. Log menyalahkan memori; penyebabnya adalah panas

Ops

Salah satu dari tiga mesin NVIDIA GB10 kami mati tiga kali dalam empat hari pada bulan September: pada 10 September, pada 12 September (mati selama 17 jam) dan pada 13 September, dua belas menit setelah dinyalakan kembali. Setiap kali, seseorang harus menekan tombol daya.

Seperti apa tampilan mati karena panas

Journal sistem berhenti begitu saja, di tengah aktivitas, tanpa entri shutdown di dalamnya: pemutusan daya keras tidak memberi waktu bagi journald untuk menulis buffer-nya. Pada bulan Juli, setelah mati yang serupa, jam bahkan kembali dengan tanggal lama. Dan hardware watchdog, yang me-reboot mesin yang hang, tidak melakukan apa-apa, karena mesin tersebut tidak hang: dayanya hilang.

Petunjuk yang salah

Baris kernel terakhir sebelum setiap kematian adalah error GPU out-of-memory (NV_ERR_NO_MEMORY), sehingga memori tampak bersalah. Padahal tidak. Baris-baris itu hanyalah hal yang paling sering ditulis kernel: 440.580 kali dalam satu boot yang berjalan selama 19 hari sebelum berakhir. Ketika sebuah baris muncul sesering itu, ia akan menjadi baris terakhir sebelum apa pun. Sebelum menyalahkan baris log, hitung seberapa sering baris itu muncul saat tidak ada masalah.

Petunjuk yang benar

Karena journal kehilangan menit-menit terakhir saat pemutusan daya, kami telah menambahkan sampler kecil yang menulis suhu, beban, dan memori ke sebuah file setiap menit dan menyimpannya ke disk. Sampler tersebut menangkap semua lima kematian sejak Juli. Setiap kematian terjadi pada beban GPU penuh (96%), dengan CPU pada 85 hingga 97 °C.

Waktunya menjelaskan sisanya. Sekitar awal September, kami memindahkan rendering video ke mesin ini. Daya GPU-nya pada beban penuh naik dari sekitar 24 W menjadi 46 W, suhu GPU median naik dari 68 menjadi 86 °C, dan menit per minggu dengan CPU pada 95 °C atau lebih naik dari nol menjadi 4.283. Dua mesin GB10 kami yang lain, yang menjalankan model bahasa pada beban 96% yang sama, tetap pada 65 hingga 81 °C. Mesin ini hanya pendinginannya lebih buruk.

Perbaikan pertama: batas clock GPU

Pada GB10, nvidia-smi tidak dapat mengatur batas daya, tetapi dapat membatasi clock GPU: nvidia-smi -lgc 0,2000. Pada bulan Juli, hal itu menurunkan zona terpanas dari 91 °C menjadi 77 hingga 83 °C dalam hitungan detik. Dua detail penting:

Perbaikan kedua: pengaman suhu bertahap

Batas tersebut tidak cukup begitu rendering mulai berjalan, sehingga kini sebuah pengaman membaca setiap sensor sekali per detik dan bertindak secara bertahap: menurunkan jam GPU dari 89 °C dan menurunkannya lagi dari 92 °C; dari 94 °C renderer dijeda (SIGSTOP) dan CPU diperlambat; dari 96 °C setiap tugas GPU dijeda selama beberapa detik hingga dingin. Pengaman kembali ke tahap sebelumnya hanya setelah mesin tetap lebih dingin untuk sementara waktu. Pada 97 °C selama 20 detik, rem darurat menghentikan layanan video sepenuhnya.

Dalam sembilan menit pertama di bawah rendering, zona terpanas mencapai puncak 94 °C dengan median 89 °C, dibandingkan dengan plateau 97 °C sebelumnya. Hal ini ada harganya: pada satu hari di pertengahan September, renderer dijeda selama 17% waktu, dan GPU berjalan pada 900 MHz atau kurang selama sebagian besar hari. Dan ini bukan obat mujarab: mesin tersebut mati sendiri sekali lagi, pada 11 Oktober, pada suhu 97 hingga 98 °C. Sejak saat itu, mesin berjalan tanpa henti, 20 hari saat kami menulis ini.

Empat kesalahan yang kami buat di sepanjang jalan

Kesimpulan

Perangkat lunak menjaga mesin ini tetap hidup, tetapi penyebabnya bersifat fisik: pendinginannya dua hingga tiga kali lebih buruk daripada mesin sejenisnya. Jika mesin GB10 mati sendiri saat beban tinggi, periksa aliran udara terlebih dahulu. Kemudian batasi clock GPU sebelum layanan Anda dimulai, jeda pekerjaan berat sebelum mesin mencapai batasnya, dan atur alarm berdasarkan suhu yang benar-benar dicapai mesin saat beroperasi.

Factory Floor menyertakan pengaman panas semacam ini: sistem membaca sensor GPU dan zona termal yang paling panas, menjeda pekerjaan berat yang Anda tentukan pada suhu tertentu (92 °C secara default), dan melanjutkannya hanya jika suhu turun di bawah nilai yang lebih rendah (84 °C), disertai pengaman memori dan disk.

Diperbarui: