Naš GB10 uređaj se sam gasio. Dnevnik je okrivljao memoriju; krivica je bila u pregrevanju

Operacije

Jedan od naša tri NVIDIA GB10 uređaja se ugasio tri puta u četiri dana u septembru: 10. septembra, 12. septembra (ostao je isključen 17 sati) i 13. septembra, dvanaest minuta nakon što je ponovo uključen. Svaki put je bilo potrebno da neko pritisne dugme za uključivanje.

Kako izgleda gašenje usled pregrevanja

Sistemski dnevnik se jednostavno zaustavio, usred aktivnosti, bez zapisa o gašenju: naglo isključenje napajanja ne ostavlja journald-u vremena da upiše bafer. U julu, nakon sličnog gašenja, sat se čak vratio na stari datum. A hardverski nadzorni proces, koji restartuje uređaj koji se zablokirao, nije ništa uradio, jer se uređaj nije zablokirao: nestalo je napajanje.

Pogrešan trag

Poslednje linije kernela pre svakog kvara bile su greške nedostatka GPU memorije (NV_ERR_NO_MEMORY), pa je memorija izgledala kao krivac. Nije bila. Te linije su bile jednostavno ono što je kernel najčešće upisivao: 440.580 takvih linija u jednom pokretanju koje je trajalo 19 dana pre nego što je završeno. Kada se linija pojavljuje toliko često, biće poslednja linija pre bilo čega. Pre nego što okrivite liniju u dnevniku, prebrojite koliko često se pojavljuje kada ništa ne ide naopako.

Tačan trag

Pošto dnevnik gubi poslednje minute pri isključenju napajanja, dodali smo mali uzorkivač koji svaki minut upisuje temperature, opterećenje i memoriju u fajl i upisuje ga na disk. Uhvatio je svih pet kvarova od jula. Svaki se dogodio pri punom GPU opterećenju (96%), sa CPU na 85 do 97 °C.

Tajming je objasnio ostatak. Oko početka septembra prebacili smo renderovanje videa na ovaj uređaj. Snaga njegovog GPU pri punom opterećenju porasla je sa oko 24 W na 46 W, medijalna GPU temperatura sa 68 na 86 °C, a minute nedeljno sa CPU na 95 °C ili više sa nula na 4.283. Naša druga dva GB10 uređaja, koja pokreću jezički model pri istom opterećenju od 96%, ostala su na 65 do 81 °C. Ovaj se jednostavno lošije hladio.

Prva popravka: ograničenje GPU takta

Na GB10, nvidia-smi ne može da postavi ograničenje snage, ali može da ograniči GPU takt: nvidia-smi -lgc 0,2000. U julu je to smanjilo najtopliju zonu sa 91 °C na 77 do 83 °C u roku od nekoliko sekundi. Dva detalja su bitna:

Druga ispravka: zaštitni mehanizam od pregrevanja u koracima

Ograničenje nije bilo dovoljno kada je krenulo renderovanje, pa zaštitni mehanizam sada čita svaki senzor jednom u sekundi i deluje u koracima: niži takt GPU-a od 89 °C i još niži od 92 °C; od 94 °C renderovanje se pauzira (SIGSTOP) i CPU se usporava; od 96 °C svaki GPU posao se pauzira na sekunde potrebne za hlađenje. Vraća se nazad tek nakon što mašina neko vreme ostane hladnija. Na 97 °C tokom 20 sekundi, kočnica kao poslednja mera potpuno zaustavlja video servis.

Tokom prvih devet minuta pod opterećenjem renderovanja, najtoplija zona je dostigla vrhunac od 94 °C sa medijanom od 89 °C, u poređenju sa platoima od 97 °C ranije. To ima svoju cenu: jednog dana sredinom septembra renderovanje je bilo pauzirano 17% vremena, a GPU je radio na 900 MHz ili manje većinu dana. I to nije lek: mašina se još jednom sama isključila, 11. oktobra, na 97 do 98 °C. Od tada radi bez prekida, 20 dana u trenutku kada ovo pišemo.

Četiri greške koje smo napravili usput

Zaključak

Softver je održavao ovu mašinu u radu, ali uzrok je bio fizički: njeno hlađenje je bilo dva do tri puta lošije od hlađenja sličnih mašina. Ako se GB10 mašina sama isključi pod opterećenjem, prvo proverite protok vazduha. Zatim ograničite takt GPU-a pre pokretanja servisa, pauzirajte zahtevne poslove pre nego što mašina dostigne svoju granicu i podesite alarme na temperaturama na kojima mašina zaista radi.

Factory Floor sadrži zaštitni mehanizam protiv pregrevanja ove vrste: on očitava najvišu vrednost sa senzora GPU-a i termalnih zona, pauzira navedene zahtevne poslove na zadatoj temperaturi (podrazumevano 92 °C) i nastavlja ih samo ispod niže temperature (84 °C), uz zaštitne mehanizme za memoriju i disk pored njega.

Ažurirano: