Η μηχανή μας GB10 έκλεινε μόνη της. Το αρχείο καταγραφής κατηγορούσε τη μνήμη· το πρόβλημα ήταν η θερμοκρασία

Λειτουργίες

Μία από τις τρεις μηχανές NVIDIA GB10 μας έσβησε τρεις φορές μέσα σε τέσσερις ημέρες τον Σεπτέμβριο: στις 10 Σεπτεμβρίου, στις 12 Σεπτεμβρίου (έμεινε σβηστή για 17 ώρες) και στις 13 Σεπτεμβρίου, δώδεκα λεπτά μετά την επανεκκίνησή της. Κάθε φορά χρειαζόταν κάποιος να πατήσει το κουμπί λειτουργίας.

Πώς μοιάζει ένα κλείσιμο λόγω υπερθέρμανσης

Το αρχείο καταγραφής του συστήματος σταμάτησε απότομα, στη μέση μιας εργασίας, χωρίς εγγραφή τερματισμού: ένα απότομο κλείσιμο ρεύματος δεν αφήνει χρόνο στο journald να γράψει την προσωρινή μνήμη του. Τον Ιούλιο, μετά από ένα παρόμοιο κλείσιμο, το ρολόι επέστρεψε μάλιστα με παλαιότερη ημερομηνία. Και ο μηχανισμός φύλακας υλικού, που επανεκκινεί μια μηχανή που έχει κολλήσει, δεν έκανε τίποτα, επειδή η μηχανή δεν είχε κολλήσει: είχε χαθεί το ρεύμα.

Η λανθασμένη ένδειξη

Οι τελευταίες γραμμές του πυρήνα πριν από κάθε διακοπή ήταν σφάλματα έλλειψης μνήμης 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), με μηχανισμούς ασφαλείας μνήμης και δίσκου παράλληλα.

Ενημερώθηκε: