Meidän GB10-kone sammui itsestään. Lokeissa syytettiin muistia; syynä oli lämpö.
Ylläpito
Yksi kolmesta NVIDIA GB10 -koneestamme sammui kolme kertaa neljässä päivässä syyskuussa: 10. syyskuuta, 12. syyskuuta (se pysyi pois päältä 17 tuntia) ja 13. syyskuuta kaksitoista minuuttia virran kytkemisen jälkeen. Jokaisella kerralla tarvittiin henkilö painamaan virtapainiketta.
Miltä lämpösammutus näyttää
Järjestelmäloki loppui kesken toiminnan, eikä siinä ollut sammutusta: kova virrankatkaisu ei anna journaldille aikaa kirjoittaa puskuriaan. Heinäkuussa vastaavan sammutuksen jälkeen kello palasi vanhaan päivämäärään. Ja laitteistovahti, joka käynnistää jumiutuneen koneen uudelleen, ei tehnyt mitään, koska kone ei ollut jumiutunut: virta oli poissa.
Väärä vihje
Viimeiset kernelin rivit ennen jokaista sammumista olivat GPU:n muistivirheitä (NV_ERR_NO_MEMORY), joten muisti näytti syylliseltä. Ei ollut. Nämä rivit olivat yksinkertaisesti yleisin kernelin kirjoittama viesti: 440 580 kappaletta yhdessä käynnistyksessä, joka oli kestänyt 19 päivää ennen päättymistään. Kun rivi esiintyy niin usein, se on viimeinen rivi ennen mitä tahansa. Ennen kuin syytät lokiriviä, laske kuinka usein se esiintyy, kun mitään ei mene vikaan.
Oikea vihje
Koska loki menettää viimeiset minuuttinsa virrankatkaisussa, lisäsimme pienen näytteenottimen, joka kirjoittaa lämpötilat, kuormituksen ja muistin tiedostoon minuutin välein ja tyhjentää sen levylle. Se havaitsi kaikki viisi sammumista heinäkuusta lähtien. Jokainen tapahtui täydellä GPU-kuormituksella (96 %), kun CPU oli 85–97 °C:ssa.
Ajankohta selitti loput. Syyskuun alussa olimme siirtäneet videon renderöinnin tälle koneelle. Sen GPU:n teho täydellä kuormituksella nousi noin 24 W:sta 46 W:iin, GPU:n mediaanilämpötila nousi 68:sta 86 °C:seen ja minuutit viikossa, joinen CPU oli 95 °C:ssa tai enemmän, nousivat nollasta 4 283:een. Kaksi muuta GB10-konettamme, jotka ajavat kielimallia samalla 96 %:n kuormituksella, pysyivät 65–81 °C:ssa. Tämä kone yksinkertaisesti jäähtyi huonommin.
Ensimmäinen korjaus: GPU-kellon yläraja
GB10:ssä nvidia-smi ei voi asettaa tehon rajaa, mutta se voi rajoittaa GPU-kellon: nvidia-smi -lgc 0,2000. Heinäkuussa tämä laski kuumimman alueen 91 °C:sta 77–83 °C:seen sekunneissa. Kaksi yksityiskohtaa ovat tärkeitä:
- Aseta se ennen raskaiden palvelujen käynnistymistä. Rajoituspalvelumme käynnistyi aiemmin noin 15 sekuntia käynnistyksen jälkeen, kun mallipalvelin oli jo alkanut ladata täydellä teholla, mikä oli hetki, joka oli kaatanut koneen. Nyt se käynnistyy ennen Dockeria.
- Tarkista se kuormassa. Kun raja on päällä, ilmoitettu GPU-kellotaajuus on edelleen noin 2 400 MHz GPU:n ollessa tyhjäkäynnillä. Kuormassa se pysyy 1 976 MHz:ssa.
Toinen korjaus: lämpöturvaraja portaissa
Raja ei riittänyt, kun renderöinti otettiin käyttöön, joten turvaraja lukee nyt jokaista anturia kerran sekunnissa ja toimii portaissa: matalampi GPU-kellotaajuus 89 °C:sta ja vielä matalampi 92 °C:sta; 94 °C:sta renderöijä keskeytetään (SIGSTOP) ja CPU hidastetaan; 96 °C:sta jokainen GPU-työ keskeytetään niin moneksi sekunniksi kuin jäähdytys vaatii. Se palautuu vain, jos kone on pysynyt viileämpänä jonkin aikaa. 97 °C:ssa 20 sekunnin ajan viimeisenä keinona oleva jarru pysäyttää videopalvelun kokonaan.
Ensimmäisen yhdeksän minuutin aikana renderöinnin alla kuumin alue huippusi 94 °C:ssa mediaanin ollessa 89 °C, verrattuna aiempiin 97 °C:n tasoitusjaksoihin. Siinä on hintansa: yhtenä päivänä syyskuun puolivälissä renderöijä oli keskeytettynä 17 % ajasta, ja GPU kävi 900 MHz:ssa tai alle suurimman osan päivästä. Eikä se ole parannuskeino: kone sammui vielä kerran 11. lokakuuta 97–98 °C:ssa. Se on käynyt keskeytyksettä sen jälkeen, 20 päivää kirjoittaessamme tämän.
Neljä virhettä, jotka teimme matkan varrella
- Yhden työn keskeyttäminen ei jäähdyttänyt konetta. Jarru laukesi, kun renderöijä oli jo keskeytetty, koska kuvamalli piirsi yhä ja kymmenen ajastinta käynnistyi samassa minuutissa. Ylin taso keskeyttää nyt kaikki raskaat GPU-työt, ei vain renderöijän.
- Turvaraja keskeyttää työt nimeltä, ja nimet muuttuivat. Kaksi kertaa uusi moottori olisi voinut välttää keskeytyksen: kuvamalli uudella prosessinimellä syyskuussa ja lokakuussa renderöijä, joka käy kontissa renderöintipalvelun lapsiprosessina. Jokainen moottorin vaihto sisältää nyt turvarajan luettelon tarkistuksen.
- Jarrun pito ei koskaan vapautunut. Se pysäytti videopalvelun ja jätti pidostiedoston, jotta mikään ei käynnistänyt sitä uudelleen. Mikään ei myöskään hälyttänyt ketään, ja tuotanto pysähtyi kolmeksi päiväksi ennen kuin huomasimme sen. Pito vapautuu nyt itsestään: viisi minuuttia viimeisestä jarrusta, uuden jarrun puuttuessa, vähintään 30 GB vapaata muistia ja kymmenen minuutin keskiarvo 93 °C tai alle. Koneen odottaminen jäähtyvän ei ollut koskaan toiminut: keskiarvo oli 88 °C renderöinnin kanssa ja ilman.
- Hälytys soi koneen normaalissa lämpötilassa. Hälytysraja oli 88 °C, mikä oli tämän koneen keskiarvo. Yhden päivän aikana se vietti 32 % ajasta 90 °C:ssa tai sitä korkeammassa lämpötilassa, 8 % 93 °C:ssa tai sitä korkeammassa ja 3 % 95 °C:ssa tai sitä korkeammassa, eikä koskaan yltänyt 97 °C:seen. Siirsimme hälytyksen 97 °C:seen, tasanteelle, jossa se todella sammui, ja hälytysviestit loppuivat.
Pääpointti
Ohjelmisto piti tämän koneen käynnissä, mutta syy oli fyysinen: sen jäähdytys oli kaksi tai kolme kertaa heikompi kuin sisarusyksiköiden. Jos GB10-kone sammuu itsestään kuormituksessa, tarkista ensin ilmavirtaus. Rajoita sitten GPU:n kelloa ennen palvelujen käynnistymistä, keskeytä raskaat työt ennen kuin kone saavuttaa rajansa, ja aseta hälytykset sen todellisten käyttölämpötilojen mukaan.
Factory Floor sisältää tällaisen lämpöturvarajan: se lukee GPU:n ja lämpövyöhykkeen antureista korkeimman arvon, keskeyttää nimeämäsi raskaat työt asetetussa lämpötilassa (oletuksena 92 °C) ja jatkaa niitä vasta alemmassa lämpötilassa (84 °C), ja mukana ovat myös muisti- ja levyturvarajat.