Нашата машина GB10 се изключваше сама. Логът обвиняваше паметта; причината беше прегряване

Операции

Една от трите ни машини NVIDIA GB10 изгасна три пъти за четири дни през септември: на 10 септември, на 12 септември (остана изключена за 17 часа) и на 13 септември, дванадесет минути след като беше включена отново. Всеки път е трябвало човек да натисне бутона за захранване.

Как изглежда изключването от прегряване

Системният журнал просто спря, по средата на дейността, без запис за изключване в него: рязкото изключване не дава време на journald да запише буфера си. През юли, след подобно изключване, часовникът дори се върна с стара дата. А хардуерният watchdog, който рестартира заседнала машина, не направи нищо, защото машината не беше заседнала: захранването беше прекъснато.

Погрешната подсказка

Последните редове от ядрото преди всяко изключване бяха грешки за липса на GPU памет (NV_ERR_NO_MEMORY), затова паметта изглеждаше виновна. Не беше. Тези редове бяха просто най-честото нещо, което ядрото е записвало: 440 580 от тях при едно зареждане, което е работило 19 дни, преди да приключи. Когато един ред се появява толкова често, той ще бъде последният ред преди всичко. Преди да обвинявате ред от лог, пребройте колко често се появява, когато нищо не се обърква.

Правилната подсказка

Понеже журналът губи последните си минути при изключване, бяхме добавили малък пробовземач, който записва температурите, натоварването и паметта във файл всяка минута и го изчиства на диска. Той улови всички пет изключвания от юли насам. Всяко от тях стана при пълно натоварване на GPU (96%), с CPU между 85 и 97 °C.

Времето обясни останалото. Около началото на септември бяхме прехвърлили рендирането на видео върху тази машина. Нейната мощност на GPU при пълно натоварване скочи от около 24 W на 46 W, медианната температура на GPU от 68 на 86 °C, а минутите седмично с CPU на 95 °C или повече от нула на 4 283. Нашите две други машини GB10, които изпълняват езиковия модел при същото натоварване от 96%, останаха между 65 и 81 °C. Тази просто се охлаждаше по-зле.

Първата поправка: ограничаване на тактовата честота на GPU

На GB10, nvidia-smi не може да зададе лимит на мощността, но може да ограничи тактовата честота на GPU: nvidia-smi -lgc 0,2000. През юли това свали най-горещата зона от 91 °C на 77 до 83 °C за секунди. Важни са два детайла:

Второто решение: защитен механизъм за прегряване на стъпки

Ограничението не беше достатъчно, след като рендирането започна, затова сега защитният механизъм чете всеки сензор веднъж в секунда и действа на стъпки: по-нисък GPU часовник от 89 °C и още по-нисък от 92 °C; от 94 °C рендерът е паузиран (SIGSTOP) и CPU е забавен; от 96 °C всяка GPU задача е паузирана за секундите, необходими за охлаждане. Той се връща назад само след като машината е останала по-хладна за известно време. При 97 °C за 20 секунди аварийна спирачка спира напълно видео услугата.

През първите девет минути под рендиране най-горещата зона достигна връх от 94 °C с медиана 89 °C, в сравнение с предишни платоета от 97 °C. Това има цена: един ден в средата на септември рендерът беше паузиран за 17% от времето, а GPU работеше на 900 MHz или по-малко през по-голямата част от деня. И това не е панацея: машината се изключи още веднъж, на 11 октомври, при 97 до 98 °C. Оттогава работи без прекъсване, 20 дни към момента, в който пишем това.

Четири грешки, които допуснахме по пътя

Изводът

Софтуерът поддържаше тази машина жива, но причината беше физическа: охлаждането ѝ беше два до три пъти по-лошо от това на сестринските модели. Ако GB10 машина се изключи сама под натоварване, първо проверете въздушния поток. След това ограничете тактовата честота на GPU-то, преди услугите ви да стартират, паузирайте тежките задачи, преди машината да достигне лимита си, и задайте алармите според температурите, при които тя всъщност работи.

Factory Floor включва защитен механизъм за прегряване от този тип: той чете най-високата стойност от сензорите на GPU-то и термичните зони, паузира тежките задачи, които посочите, при зададена температура (по подразбиране 92 °C) и ги възобновява само под по-ниска такава (84 °C), като до него има и защитни механизми за памет и диск.

Обновено: