مشروع gpu-unlock المفتوح يرفع أداء BF16 على بطاقات RTX 3090 من 87.50 إلى 157.41 تيرافلوب
نُشر على GitHub مشروع مفتوح المصدر باسم gpu-unlock، وهو موديول لنواة Linux برخصة GPL-2.0، يكتب محددات السرعة في بطاقات NVIDIA من الجيل 3000 قبل أن يتولى درايفر NVIDIA البطاقة. والنتيجة بحسب جداول القياس في المستودع نفسه أن البطاقة تستعيد أداءً كان محجوبًا عنها.
على بطاقة 3090 Ti، ارتفع أداء BF16 من 87.50 إلى 157.41 تيرافلوب، وأداء TF32 من 42.58 إلى 82.61. والقياس أُجري على عملية ضرب مصفوفات كثيفة (GEMM) بمقاس 8192، عند قدرة 450 واط، بتجميع FP32، مع أخذ الوسيط من 5 قراءات.
وظهر مكسب BF16 على بطاقات أخرى أيضًا: بين 73% و81% على 3070، ونحو 80% على 3060 بذاكرة 12 جيجابايت، وبين 70% و73% على 3080 بذاكرة 10 جيجابايت. والأهم أن المخرجات جاءت متطابقة بتًا ببت، فالمكسب ليس تقريبًا ولا خفضًا للدقة.
لكن المستودع يحدد حدود المكسب بوضوح. ففي تشغيل النماذج اللغوية يتراوح المكسب في مرحلة الـ prefill، أي معالجة النص المُدخل، بين 14% و36%، أما مرحلة الـ decode التي يولّد فيها النموذج الكلمات، وعمليات INT8، فتبقى تقريبًا كما هي. كما أن البطاقات المحدودة بقدرة 225 واط تحقق مكسبًا أقل بكثير.
وللتشغيل شروط. فالموديول يعمل على Linux فقط، ويجب تحميله قبل الدرايفر، وإن حُمّل بعده لا يفعل شيئًا. والنوم على الذاكرة يعيد المحددات إلى وضعها، ويعيد الموديول فكّها بعد الاستيقاظ، لكن الـ hibernation غير مغطى. وتنفصل شاشة البطاقة من لحظة إعادة الضبط حتى يتولى nvidia-drm. وتبقى البرمجيات الثابتة (firmware) الخاصة بـ NVIDIA على شروط ترخيصها.
ولمن يشغّل نماذج مفتوحة على بطاقة من الجيل 3000، يصبح الفرق بين البطاقة الحالية وبطاقة أحدث أصغر في مرحلة معالجة المدخلات، ويبقى كما هو في مرحلة التوليد.