Մեր GB10 մեքենան ինքն իրեն անջատվում էր։ Գրառումները մեղադրում էին հիշողությանը, բայց պատճառը ջերմությունն էր
Օպերացիաներ
Մեր երեք NVIDIA GB10 մեքենաներից մեկը սեպտեմբերին չորս օրվա ընթացքում երեք անգամ մարեց՝ սեպտեմբերի 10-ին, սեպտեմբերի 12-ին (այն անջատված մնաց 17 ժամ) և սեպտեմբերի 13-ին՝ միացումից տասներկու րոպե անց։ Յուրաքանչյուր անգամ մեկին պետք էր սեղմել սնուցման կոճակը։
Ինչպես է տեղի ունենում ջերմային անջատումը
Համակարգի գրառումները պարզապես կանգ առան՝ գործունեության կեսին, առանց անջատման գրառման. կտրուկ սնուցման կտրումը journald-ին չի տալիս բուֆերը գրելու ժամանակ։ Հուլիսին, նմանատիպ անջատումից հետո, ժամացույցը նույնիսկ վերադարձավ հին ամսաթվով։ Իսկ սարքաշինական վոչդոգը, որը վերագործարկում է կախված մեքենան, ոչինչ չարեց, որովհետև մեքենան կախված չէր. սնուցումը կտրված էր։
Սխալ ազդանշանը
Յուրաքանչյուր մահվանից առաջ վերջին kernel գրառումները GPU-ի հիշողության բացակայության սխալներ էին (NV_ERR_NO_MEMORY), ուստի հիշողությունը մեղավոր էր թվում։ Բայց այդպես չէր։ Այդ գրառումները պարզապես kernel-ի ամենատարածված գրառումներն էին՝ 19 օր աշխատած և այնուհետև ավարտված մեկ boot-ի ընթացքում դրանցից 440,580 հատ։ Երբ գրառումն այդքան հաճախ է հայտնվում, այն ցանկացած բանից առաջ կլինի վերջին գրառումը։ Նախքան գրառման գծին մեղադրելը, հաշվեք, թե որքան հաճախ է այն հայտնվում, երբ ոչ մի սխալ տեղի չի ունենում։
Ճիշտ ազդանշանը
Քանի որ սնուցման կտրման դեպքում գրառումները կորցնում են վերջին րոպեները, մենք ավելացրել էինք փոքրիկ sampler, որը ամեն րոպե ջերմաստիճանը, բեռնվածությունը և հիշողությունը գրում է ֆայլի և flush է անում սկավառակ։ Այն գրանցեց հուլիսից ի վեր բոլոր հինգ մահերը։ Յուրաքանչյուրը տեղի ունեցավ 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։ Կարևոր են երկու մանրամասն.
- Կիրառեք այն մինչև ծանր ծառայությունների մեկնարկը։ Մեր սահմանափակման ծառայությունը սկզբում գործարկվում էր boot-ից մոտ 15 վայրկյան անց, երբ մոդելի սերվերն արդեն սկսել էր բեռնվել լրիվ հզորությամբ, ինչը հենց այն պահն էր, երբ մեքենան խափանվում էր։ Այժմ այն գործարկվում է մինչև Docker-ի մեկնարկը։
- Ստուգեք այն բեռնվածության տակ։ Սահմանափակումը միացված է, և GPU-ի զեկուցվող հաճախականությունը դեռևս ցույց է տալիս մոտ 2,400 ՄՀց, երբ GPU-ն ակտիվ չէ։ Բեռնվածության տակ այն պահպանվում է 1,976 ՄՀց։
Երկրորդ ուղղումը՝ ջերմաստիճանային պահպանիչը քայլերով
Սահմանափակումը բավարար չէր, երբ միացվեց ռենդերինգը, ուստի պահպանիչը այժմ վայրկյանը մեկ անգամ ընթերցում է բոլոր սենսորները և գործում է քայլերով. GPU-ի ավելի ցածր հաճախականություն 89 °C-ից, և նորից ավելի ցածր՝ 92 °C-ից. 94 °C-ից ռենդերը դադարեցվում է (SIGSTOP), և CPU-ն դանդաղեցվում է. 96 °C-ից յուրաքանչյուր GPU առաջադրանք դադարեցվում է այնքան վայրկյան, որքան անհրաժեշտ է սառչելու համար։ Այն վերադառնում է նախկին վիճակին միայն այն բանից հետո, երբ մեքենան որոշ ժամանակ մնում է ավելի սառը։ 97 °C-ում 20 վայրկյան շարունակ, վերջին միջոցը՝ արգելակը, ամբողջությամբ կանգնեցնում է տեսա ծառայությունը։
Ռենդերինգի ժամանակ առաջին ինը րոպեների ընթացքում ամենատաք գոտին հասավ 94 °C-ի՝ 89 °C միջին ցուցանիշով, մինչդեռ նախկինում եղել էին 97 °C պլատոներ։ Դա ունի իր գինը. սեպտեմբերի կեսերին մեկ օր ռենդերը դադարեցված էր ժամանակի 17%-ում, և GPU-ն օրվա մեծ մասում աշխատում էր 900 ՄՀց կամ ավելի քիչ։ Եվ դա բուժում չէ. մեքենան ևս մեկ անգամ ինքն իրեն անջատվեց՝ հոկտեմբերի 11-ին, 97-98 °C-ում։ Այն չի ընդհատվել այն ժամանակից ի վեր, 20 օր է, ինչ մենք գրում ենք սա։
Չորս սխալ, որոնք մենք թույլ տվեցինք ճանապարհին
- Մեկ առաջադրանքի դադարեցումը չսառեցրեց մեքենան։ Արգելակը գործարկվեց, երբ ռենդերը արդեն դադարեցված էր, քանի որ պատկերների մոդելը դեռ նկարում էր, և մեկ րոպեի ընթացքում մեկնարկեցին մեկ տասնյակ տայմեր։ Ամենաբարձր քայլը այժմ դադարեցնում է յուրաքանչյուր ծանր GPU առաջադրանք, ոչ միայն ռենդերը։
- Պահպանիչը դադարեցնում է առաջադրանքները անունով, և անունները փոխվեցին։ Երկու անգամ նոր շարժիչ կարող էր խուսափել դադարեցումից. սեպտեմբերին պատկերների մոդելը ուներ նոր գործընթացի անուն, իսկ հոկտեմբերին ռենդերը աշխատում էր կոնտեյներում՝ որպես ռենդեր ծառայության երեխա, այլ ոչ թե որպես դրա մաս։ Այժմ յուրաքանչյուր շարժիչի փոփոխություն ներառում է պահպանիչի ցուցակի ստուգումը։
- Արգելակի սպասման ռեժիմը երբեք չեղարկվեց։ Այն կանգնեցրեց տեսա ծառայությունը և թողեց սպասման ֆայլ, որպեսզի ոչինչ չվերագործարկվի։ Ոչ ոք չզգուշացվեց, և արտադրանքը կանգնեց երեք օր, մինչև մենք նկատեցինք։ Այժմ սպասումը ինքնաչեղարկվում է. արգելակի վերջին գործարկումից հինգ րոպե անց, եթե նոր արգելակ չկա, առնվազն 30 ԳԲ ազատ հիշողություն կա և տասնրոպեանոց միջինը 93 °C կամ ավելի ցածր է։ Սպասել, որ մեքենան սառչի, երբեք չէր աշխատի. այն միջինում 88 °C էր՝ ռենդերինգով և առանց դրա։
- Ազդանշանը հնչեց մեքենայի նորմալ ջերմաստիճանում։ Զգուշացման շեմը 88 °C էր, ինչը այս մեքենայի միջին ցուցանիշն էր։ Մեկ օրվա ընթացքում այն 32% ժամանակ գտնվել է 90 °C-ից բարձր, 8%՝ 93 °C-ից բարձր և 3%՝ 95 °C-ից բարձր ջերմաստիճանում, և երբեք չի հասել 97 °C-ի։ Մենք ազդանշանը տեղափոխեցինք 97 °C, այն հարթակ, որտեղ այն իրականում կանգ առավ, և ազդանշանային էլփոստները դադարեցին։
Հիմնական եզրակացությունը
Ծրագրային ապահովումը պահպանեց այս մեքենայի աշխատունակությունը, սակայն պատճառը ֆիզիկական էր. դրա սառեցումը երկուսից երեք անգամ վատ էր, քան նմանատիպ մեքենաներինը։ Եթե GB10 մեքենան բեռնվածության տակ ինքնուրույն անջատվում է, նախ ստուգեք օդափոխությունը։ Այնուհետև սահմանափակեք GPU ժամացույցը ձեր ծառայությունների մեկնարկից առաջ, կանգնեցրեք ծանր առաջադրանքները մինչև մեքենան հասնի իր սահմանին և սահմանեք ազդանշանները այն ջերմաստիճաններից, որոնցում այն իրականում աշխատում է։
Factory Floor-ը ներառում է նմանատիպ ջերմային պահպանիչ. այն ընթերցում է GPU-ի և ջերմային գոտու ամենաշոգ զննիչները, կանգնեցնում է ձեր նշած ծանր առաջադրանքները սահմանված ջերմաստիճանում (կանխադրված՝ 92 °C) և վերսկսում դրանք միայն ավելի ցածր ջերմաստիճանում (84 °C), իսկ կողքին ունի հիշողության և դիսկի պահպանիչներ։