Kubernetes 1.36: GPU-laitevikojen käsittely ilman loputonta odotustilaa
NVIDIA
Meta
Kubernetesissa GPU-laitteen vika ei automaattisesti johda podin uudelleenajoitukseen, vaan kubelet käynnistää säilön uudelleen samalla viallisella laitteella aiheuttaen kaatumissilmukan. Artikkeli esittelee tämän skenaarion testiympäristössä ja näyttää, miten Kubernetes 1.36:n uudet mekanismit, kuten laitteen terveydentilan tila ja saasteet, voivat katkaista silmukan.
Artikkelissa tuodaan esiin, että Kubernetes käsittelee oletusarvoisesti laitevioista yksinkertaisesti käynnistämällä säiliön uudelleen, mikä ei riitä GPU-kiihdytetyille työkuormille. Viitaten Meta-tutkimukseen Llama 3 405B:n kouluttamisesta todetaan, että tuhansia GPU:ita sisältävissä klustereissa on usein häiriöitä, jotka johtuvat usein GPU- ja muistivioista. Kirjoittaja selittää perinteisen laiteplugin-lähestymistavan rajoitteet, joka vain vähentää allokoitavien laitteiden määrää, ja vertaa sitä uudempaan DRA-malliin (Dynamic Resource Allocation, dynaaminen resurssien allokointi), joka tarjoaa oliopohjaisen laitehallinnan. Testiklusterissa kirjoittaja simuloi GPU-vikaa poistamalla laitteen kuumana PCIe-väylästä, mikä johtaa Xid 79 -virheeseen. Pod joutuu sitten kaatumissilmukkaan, käynnistyy uudelleen viallisella laitteella, eikä ajastin ajoita sitä uudelleen, koska se on edelleen sidottu solmuun. Kubernetes 1.36 tuo useita beta-ominaisuuksia tämän ratkaisemiseksi: laitteiden terveystila podin tilassa, laitteiden saastetahrat ja sietokyvyt sekä ositettavat laitteet. Näiden avulla klusteri voidaan saada tunnistamaan vika ja ajoittamaan pod terveelle GPU:lle, välttäen loputtomat uudelleenkäynnistykset.
Lähde: Habr — хаб ML —
Alkuperäinen
