LP-GEMM: Integrating Layout Propagation into GEMM Operations
تقدم هذه الورقة تقنية LP-GEMM، التي تلغي عمليات تعبئة وتفريغ البيانات الفائضة في عمليات ضرب المصفوفات المتتالية من خلال نشر تخطيطات الذاكرة عبر العمليات، محققةً تسريعاً كبيراً على بنيات x86 وRISC-V مع الحفاظ على الصحة الدلالية الكاملة لمعايير BLAS.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تدير مخبزاً ضخماً فائق السرعة متخصصاً في صنع كعكات معقدة متعددة الطبقات (هذه هي نماذج تعلم الآلة الخاصة بك). الخطوة الأكثر أهمية في هذا المخبز هي خلط المكونات. في عالم الحواسيب، تسمى عملية الخلط هذه GEMM (ضرب المصفوفات العام).
لعقود من الزمن، كانت الطريقة القياسية لتشغيل هذا المخبز (باستخدام مكتبات مثل OpenBLAS) فعالة للغاية في خلط كعكة واحدة في كل مرة. ومع ذلك، فهي تتبع قاعدة صارمة: في كل مرة تنتهي فيها من خلط كعكة واحدة، يجب عليك تفكيكها فوراً، ووضعها في صندوق قياسي، ثم إخراجها من ذلك الصندوق مرة أخرى لبدء الكعكة التالية.
المشكلة: عقبة "إعادة التعبئة"
لنفترض أنك تصنع كعكة مكونة من 10 طبقات.
- الطبقة 1: تقوم بخلط العجين. تقول القاعدة القياسية: "توقف! ضع هذا العجين في صندوق مربع، وأغلقه، وضع عليه ملصقاً".
- الطبقة 2: أنت بحاجة إلى هذا العجين لصنع الطبقة التالية. لكن العجين موجود داخل صندوق! لذا، عليك إخراج العجين من الصندوق، وصبه في وعاء خلط جديد، ثم تبدأ الخلط.
- الطبقة 3: تنتهي من الخلط. مرة أخرى، يجب عليك إعادة التعبئة في الصندوق، وإغلاقه، ووضع الملصق.
- الطبقة 4: عليك إخراج العجين من الصندوق مرة أخرى.
في الحقيقة، تحدث عملية "التعبئة والتفريغ" هذه (التي تسمى packing and unpacking) في الحواسيب ملايين المرات. إنها لا تقوم بخلط الكعكة فعلياً؛ بل هي مجرد نقل للمواد من مكان لآخر. وهذا يهدر الوقت، والطاقة، وانتباه الخباز (المعالج - CPU).
الحل: LP-GEMM (نهج "خط التجميع")
تقدم الورقة البحثية LP-GEMM (توزيع التخطيط لـ GEMM). فكر في هذا كإعادة تصميم للمخبز ليصبح خط تجميع سلس.
بدلاً من التوقف لعلب العجين بعد كل طبقة، يتفق الخبازون على شكل مخصص وخاص لأوعية الخلط.
- الخَبّاز الأول (النواة الأولية - Initial Kernel): يأخذ المكونات الخام ويضعها في هذا الشكل المخصص.
- الخَبّازون في المنتصف (النواة المتوسطة - Intermediate Kernels): يستلمون العجين وهو بالفعل في الشكل المخصص. يقومون بخلط الطبقة التالية مباشرة داخل هذا الشكل. لا يوجد تفريغ من الصناديق. ولا إعادة تعبئة. إنهم فقط يحافظون على تدفق العمل.
- الخَبّاز الأخير (النواة النهائية - Ending Kernel): بمجرد الانتهاء من الكعكة النهائية، يقوم شخص ما فقط بأخذ العجين ذو الشكل المخصص ووضعه في الصندوق القياسي حتى يتمكن الزبون من أخذه إلى المنزل.
لماذا يهم هذا الأمر؟
اختبر الباحثون هذه الفكرة على نوعين من "الخبازين" (رقائق الكمبيوتر):
- Intel x86 (القوة الضاربة): معالج معقد وسريع جداً.
- RISC-V (الوافد الجديد الكفء): معالج أحدث، أبسط، وموفر جداً للطاقة.
النتائج:
- على شريحة Intel: كانت الطريقة الجديدة أسرع بنحو 2.25 مرة في تسلسل العمليات. إنه يشبه الانتقال من رحلة تستغرق 10 دقائق إلى رحلة تستغرق 4 دقائق.
- على شريحة RISC-V: كان التسارع أكثر دراماتيكية، حيث وصل إلى 5 أضعاف السرعة. ولأن شريحة RIS-V أكثر حساسية لـ "الحركة الضائعة"، فإن إزالة خطوات التعبئة والتفريغ أحدث فرقاً هائلاً.
التطبيق الواقعي: اختبار Llama 3.2
لإثبات أن هذا ليس مجرد نظرية، قام المؤلفون ببناء نسخة من Llama 3.2 (روبوت دردشة ذكاء اصطناعي شهير) باستخدام هذه الطريقة الجديدة.
- التحدي: نماذج الذكاء الاصطناعي مثل Llama لا تقوم بمجرد خلطة واحدة؛ بل تقوم بسلسلة طويلة منها (مثل آلية "الانتباه" في نماذج Transformer).
- الحل: قاموا بتكييف "الخبازين في المنتصف" للتعامل مع الشكل المخصص حتى عندما تتطلب الوصفة توقفاً سريعاً (مثل إضافة توابل أو فحص درجة الحرارة).
- النتيجة: عمل الذكاء الاصطناعي بشكل أسرع بكثير، مما أثبت أن إبقاء البيانات في حالة "تدفق" بدلاً من حالة "مُعلبة" هو تغيير جذري لقواعد اللعبة.
ملخص التشبيه
- الطريقة القديمة (OpenBLAS): تشبه عامل توصيل يسلم طرداً، ثم يفرغه، ثم يسلمه للشخص التالي، الذي يقوم فوراً بإعادة تعبئته، ووضع ملصق عليه، ثم إرساله للشخص التالي. الكثير من الوقت الضائع في استخدام مسدس اللصق والصناديق.
- الطريقة الجديدة (LP-GEMM): تشبه حزاماً ناقلاً حيث تبقى الطرد على صينية متخصصة. الشخص الأول يضع الطرد على الصينية، والشخص التالي يعمل عليه بينما لا يزال على الصينية، والشخص الذي يليه يفعل الشيء نفسه. وفقط في النهاية، يتم وضعه في صندوق شحن قياسي.
الخلاصة
LP-GEMM هي حيلة ذكية تمنع الحواسيب من القيام بعمليات "التنظيف" غير الضرورية بين المسائل الرياضية. من خلال السماح للبيانات بالتدفق بتنسيق جاهز للخطوة التالية، بدلاً من إجبارها على اتخاذ تنسيق قياسي بعد كل خطوة، يمكننا جعل الذكاء الاصطيعي والحوسبة العلمية أسرع وأكثر كفاءة بكثير، دون الحاجة إلى اختراع أجهزة جديدة.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.