Náš stroj GB10 se sám vypínal. Log obviňoval paměť; šlo o přehřátí.

Provoz

Jeden ze tří našich strojů NVIDIA GB10 zhasl třikrát během čtyř dní v září: 10. září, 12. září (byl vypnutý 17 hodin) a 13. září, dvanáct minut po opětovném zapnutí. Pokaždé potřeboval člověka, aby stiskl tlačítko napájení.

Jak vypadá vypnutí kvůli přehřátí

Systémový deník se jednoduše zastavil uprostřed činnosti, bez záznamu o vypnutí: tvrdé vypnutí napájení nedá journaldu čas zapsat jeho buffer. V červenci se po podobném vypnutí dokonce vrátil starý datum. A hardwarový hlídač, který restartuje zaseknutý stroj, nic neudělal, protože stroj zaseknutý nebyl: prostě zmizelo napájení.

Špatná stopa

Poslední řádky kernelu před každým pádem byly chyby vyčerpání paměti GPU (NV_ERR_NO_MEMORY), takže paměť vypadala jako viník. Nebyla. Tyto řádky byly jednoduše nejčastější věc, kterou kernel zapisoval: 440 580 z nich během jednoho spuštění, které běželo 19 dní, než skončilo. Když se řádek objevuje tak často, bude posledním řádkem před čímkoli. Než začnete obviňovat řádek v logu, spočítejte, jak často se objevuje, když se nic neděje.

Správná stopa

Protože deník při vypnutí napájení přichází o poslední minuty, přidali jsme malý vzorkovač, který každou minutu zapíše teploty, zátěž a paměť do souboru a uloží je na disk. Zachytil všech pět pádů od července. Každý nastal při plné zátěži GPU (96 %), s CPU na 85 až 97 °C.

Časování vysvětlilo zbytek. Kolem začátku září jsme na tento stroj přesunuli renderování videa. Jeho výkon GPU při plné zátěži vzrostl z přibližně 24 W na 46 W, mediánová teplota GPU z 68 na 86 °C a minuty za týden s CPU na 95 °C a více z nuly na 4 283. Naše dva další stroje GB10, které běží jazykový model při stejné zátěži 96 %, zůstaly na 65 až 81 °C. Tento se jednoduše hůře chladil.

První oprava: omezení taktu GPU

Na GB10 nelze pomocí nvidia-smi nastavit limit napájení, ale lze omezit takt GPU: nvidia-smi -lgc 0,2000. V červenci to snížilo nejteplejší zónu z 91 °C na 77 až 83 °C během několika sekund. Záleží na dvou detailech:

Druhá oprava: ochranný mechanismus proti přehřátí s krokovým řízením

Omezení nestačilo, jakmile začalo probíhat vykreslování, takže ochranný mechanismus nyní jednou za sekundu čte všechny senzory a zasahuje po krocích: od 89 °C sníží taktovací frekvenci GPU a od 92 °C ji sníží znovu; od 94 °C pozastaví vykreslování (SIGSTOP) a zpomalí CPU; od 96 °C pozastaví všechny úlohy na GPU po dobu nezbytnou k ochlazení. Zpět se vrací pouze tehdy, když stroj zůstává určitou dobu chladnější. Při 97 °C po dobu 20 sekund zastaví nouzová brzda video službu úplně.

Během prvních devíti minut pod zátěží vykreslování dosáhla nejteplejší zóna špičky 94 °C s mediánem 89 °C, oproti předchozím plošinám na 97 °C. Má to svou cenu: jeden den v polovině září bylo vykreslování pozastaveno po 17 % času a GPU běželo po většinu dne na 900 MHz nebo méně. A není to zázračné řešení: stroj se ještě jednou sám vypnul, 11. října, při 97 až 98 °C. Od té doby běží bez přerušení, 20 dní, když to píšeme.

Čtyři chyby, kterých jsme se po cestě dopustili

Shrnutí

Software udržoval tento stroj v provozu, ale příčina byla fyzická: jeho chlazení bylo dva až třikrát horší než u sesterských strojů. Pokud se stroj GB10 pod zátěží sám vypne, zkontrolujte nejprve proudění vzduchu. Poté omezte takt GPU před spuštěním služeb, pozastavte náročné úlohy, než stroj dosáhne svého limitu, a nastavte alarmy podle teplot, na kterých skutečně běží.

Factory Floor obsahuje takový ochranný mechanismus proti přehřátí: čte nejvyšší hodnotu ze senzorů GPU a tepelných zón, pozastaví vámi určené náročné úlohy při nastavené teplotě (výchozí hodnota 92 °C) a obnoví je pouze pod nižší teplotou (84 °C), přičemž vedle něj fungují ochranné mechanismy pro paměť a disk.

Aktualizováno: