كسر حاجز الأجهزة: برمجيات FP8 للبطاقات الرسومية القديمة تُحدث ثورة في كفاءة التعلم العميق
مع تزايد حجم نماذج التعلم العميق وتوسع المجموعات البياناتية، أصبحت عبء عرض الذاكرة في وحدات معالجة الرسومات (GPU) عقبة رئيسية أمام الباحثين والمهندسين. على الرغم من أن الدقة FP8 أثبتت فعاليتها في تسريع التدريب والاستدلال، إلا أن دعمها محدود بالأجهزة الحديثة فقط مثل أجهزة نفيديا Ada وBlackwell، ما يترك ملايين المستخدمين الذين يعتمدون على أجهزة قديمة مثل RTX 3050 دون فرصة الاستفادة من هذه الميزة. لسد هذا الفجوة، تم تطوير "Feather"، مكتبة مفتوحة المصدر تُقدّم نهجًا برمجيًا لمحاكاة أداء FP8 على أجهزة قديمة دون الحاجة إلى دعم هاردوير مخصص. الحل يعتمد على تقنية "الحزم" (Packing)، حيث يتم دمج أربعة قيم FP8 أو قيمتين FP16 داخل حقل FP32 واحد. هذا يُقلل من حجم البيانات المطلوبة في الذاكرة بنسبة 75% و66% على التوالي، مما يُقلل من حمل نقل البيانات – وهو العائق الرئيسي في الأداء، خصوصًا في العمليات المرتبطة بالذاكرة (memory-bound) أكثر من الحوسبة (compute-bound). على الرغم من أن هذه الطريقة تتطلب عمليات "حزم" و"فك حزم" إضافية، فإن الفائدة من تقليل حجم نقل البيانات تفوق التكلفة الحسابية، خصوصًا في سياقات التعلم العميق التي تعتمد على تدفق كميات ضخمة من البيانات. لتحقيق ذلك، استُخدمت تقنيات تعبئة ذكية تعتمد على العمليات البتية (bitwise operations). تم دعم تنسيقات FP8 الشائعة (E5M2 وE4M3) باستخدام مكتبة ml_dtypes، التي تُتيح التحويل بين التنسيقات بسهولة. أما التحدي الأكبر فكان في تنفيذ الخوارزميات الحسابية على البيانات المُحَمَّلة. هنا جاء دور Triton، لغة مخصصة لكتابة كيرنيلات GPU بلغة بيثون، والتي تسمح بكتابة كود فعّال دون الحاجة إلى كتابة CUDA مباشرة. تم تصميم كيرنيلات Triton لتحميل البيانات المُحَمَّلة، فك تعبئتها إلى FP8، ثم رفع دقتها إلى FP32 لإجراء العمليات الحسابية، مما يضمن دقة كافية مع الحفاظ على كفاءة النقل. في اختبارات الأداء على جهاز RTX 3050 6GB، أظهرت Feather تحسينات كبيرة: في اختبار GEMV (مصفوفة 16384×16384)، حققت أداءً أسرع بنسبة 3.3 مرة مقارنة بـ PyTorch باستخدام FP32 (3.3x)، و2.13x باستخدام FP8-E4M3. هذه النتائج قريبة من الحد الأقصى النظري (4x)، مع تقليل التكلفة الناتجة عن عمليات الحزم وتشغيل الكيرنيلات. كما تم اختبار الأداء في معيار FlashAttention، حيث أظهرت النتائج أداءً مرضيًا مع الحفاظ على دقة كافية لتطبيقات التعلم العميق. ففي المصفوفات العشوائية، ظلت الأخطاء التراكمية ضمن حدود مقبولة، رغم أن E4M3 تقدم دقة أعلى من E5M2، إلا أن تفكيكها أكثر تعقيدًا، ما ينعكس على الأداء. Feather مفتوح المصدر، ويُعدّ في مرحلة تجريبية أولية، مع فرص كبيرة للتحسين والتطوير. يُنصح باستخدامه في السياقات التي تُعدّ فيها أداء الذاكرة عائقًا رئيسيًا، مثل التدريب على نماذج كبيرة أو معالجة سلاسل طويلة. لكنه غير مناسب للتطبيقات التي تتطلب دقة رقمية صارمة أو أداءً عاليًا جدًا دون أي تأخير. الهدف من المشروع هو تمكين المجتمع العلمي الأوسع من الاستفادة من تقنيات التحسين دون الحاجة إلى أجهزة مكلفة، مما يعزز إمكانية الوصول إلى التعلم العميق.
