انطفأت آلة GB10 لدينا من تلقاء نفسها. كان السجل يلوم الذاكرة، لكن السبب كان الحرارة

العمليات

انطفأت إحدى آلات NVIDIA GB10 الثلاث لدينا ثلاث مرات خلال أربعة أيام في سبتمبر: في 10 سبتمبر، وفي 12 سبتمبر (بقيت مطفأة لمدة 17 ساعة)، وفي 13 سبتمبر، بعد اثنتي عشرة دقيقة من إعادة تشغيلها. وفي كل مرة، كانت تحتاج إلى شخص يضغط زر الطاقة.

كيف يبدو انطفاء الجهاز بسبب الحرارة

توقف سجل النظام ببساطة في منتصف النشاط، دون أي سجل لإيقاف التشغيل: فالانقطاع المفاجئ للطاقة لا يمنح journald وقتًا لكتابة مخزنه المؤقت. وفي يوليو، بعد انطفاء مماثل، عاد التاريخ في الساعة قديمًا. ولم يفعل مراقب العتاد (watchdog)، الذي يعيد تشغيل الآلة عند تعليقها، شيئًا، لأن الآلة لم تكن معلقة: بل كان التيار الكهربائي مقطوعًا.

الدليل الخاطئ

كانت آخر أسطر النواة قبل كل انطفاء هي أخطاء نفاد ذاكرة وحدة معالجة الرسوميات (NV_ERR_NO_MEMORY)، لذا بدت الذاكرة هي المذنبة. لكنها لم تكن كذلك. كانت تلك الأسطر ببساطة أكثر ما تكتبه النواة: 440,580 سطرًا في إقلاع واحد استمر 19 يومًا قبل أن ينتهي. عندما يظهر سطر بهذا التكرار، فسيكون هو السطر الأخير قبل أي حدث. قبل أن تلوم سطرًا في السجل، احسب عدد مرات ظهوره عندما لا يحدث أي خطأ.

الدليل الصحيح

لأن السجل يفقد دقائقه الأخيرة عند انقطاع الطاقة، أضفنا عيّانًا صغيرًا يكتب درجات الحرارة والحمل والذاكرة إلى ملف كل دقيقة ويحفظه على القرص. وقد رصد هذا العيّان جميع حالات الانطفاء الخمس منذ يوليو. حدث كل انطفاء عند حمل كامل لوحدة معالجة الرسوميات (96%)، مع وجود المعالج المركزي عند 85 إلى 97 درجة مئوية.

فسّر التوقيت بقية الأحداث. حول بداية سبتمبر، كنا قد نقلنا عرض الفيديو إلى هذه الآلة. ارتفعت طاقة وحدة معالجة الرسوميات تحت الحمل الكامل من حوالي 24 واط إلى 46 واط، وارتفعت درجة حرارة وحدة معالجة الرسوميات الوسيطة من 68 إلى 86 درجة مئوية، وزادت الدقائق الأسبوعية التي يكون فيها المعالج المركزي عند 95 درجة مئوية أو أكثر من صفر إلى 4,283 دقيقة. بقيت آلتا GB10 الأخريان لدينا، اللتان تشغلان النموذج اللغوي بنفس الحمل البالغ 96%، عند 65 إلى 81 درجة مئوية. هذه الآلة ببساطة كانت تبريدًا أسوأ.

الإصلاح الأول: تحديد سقف لتردد وحدة معالجة الرسوميات

في GB10، لا يستطيع nvidia-smi تحديد حد للطاقة، لكنه يستطيع تحديد سقف لتردد وحدة معالجة الرسوميات: nvidia-smi -lgc 0,2000. في يوليو، خفّض هذا الإجراء أعلى منطقة حرارية من 91 درجة مئوية إلى 77-83 درجة مئوية خلال ثوانٍ. تفصيلان مهمان:

الإصلاح الثاني: حارس حراري يعمل على مراحل

لم يكن الحدّ الأقصى كافيًا بمجرد بدء العرض، لذا أصبح الحارس الآن يقرأ كل مستشعر مرة واحدة في الثانية ويتصرّف على مراحل: خفض تردّد وحدة معالجة الرسوميات من 89 °م، وخفضه مجددًا من 92 °م؛ ومن 94 °م يتم إيقاف العرض مؤقتًا (SIGSTOP) وإبطاء وحدة المعالجة المركزية؛ ومن 96 °م يتم إيقاف كل مهام وحدة معالجة الرسوميات مؤقتًا للثوانٍ اللازمة للتبريد. ويعود إلى وضعه السابق فقط بعد أن تبقى الآلة أكثر برودة لفترة من الوقت. عند 97 °م لمدة 20 ثانية، يوقف مكبح الطوارئ النهائي خدمة الفيديو تمامًا.

في أول تسع دقائق من العرض، بلغت أعلى منطقة حرارة ذروتها عند 94 °م مع وسيط قدره 89 °م، مقارنة بهضاب عند 97 °م سابقًا. ولهذه التدابير ثمن: في أحد أيام منتصف سبتمبر، تم إيقاف العرض مؤقتًا لمدة 17% من الوقت، وعملت وحدة معالجة الرسوميات بتردد 900 ميغاهرتز أو أقل معظم اليوم. وهي ليست علاجًا شافيًا: فقد انطفأت الآلة مرة أخرى في 11 أكتوبر عند درجة حرارة تتراوح بين 97 و98 °م. وقد استمرت في العمل دون انقطاع منذ ذلك الحين، لمدة 20 يومًا حتى وقت كتابة هذا النص.

أربعة أخطاء ارتكبناها على طول الطريق

الخلاصة

أبقت البرمجيات هذه الآلة تعمل، لكن السبب كان فيزيائيًا: كان تبريدها أسوأ مرتين إلى ثلاث مرات من أشقائها. إذا أطفأت آلة GB10 نفسها تحت الحمل، فافحص تدفق الهواء أولًا. ثم حدد تردد وحدة معالجة الرسوميات قبل بدء تشغيل خدماتك، وأوقف المهام الثقيلة مؤقتًا قبل أن تصل الآلة إلى حدّها، واضبط الإنذارات بناءً على درجات الحرارة التي تعمل عندها فعليًا.

تتضمن Factory Floor حارسًا حراريًا من هذا النوع: يقرأ أعلى قراءة من مستشعرات وحدة معالجة الرسوميات ومناطق الحرارة، ويوقف المهام الثقيلة التي تحددها عند درجة حرارة محددة (92 °C افتراضيًا)، ويستأنفها فقط عند درجة حرارة أقل (84 °C)، مع حراس للذاكرة والقرص بجانبه.

محدّث: