Нашиот 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), со заштитни механизми за меморија и диск покрај него.

Ажурирано: