RightNow AI تطلق AutoKernel: إطار عمل مفتوح المصدر لتحسين نواة GPU
RightNow AI تطلق AutoKernel، إطار عمل مفتوح المصدر لتحسين نوى GPU لنماذج PyTorch بشكل آلي.
تُعد كتابة كود GPU بسرعة واحدة من أكثر التخصصات تحديًا في هندسة التعلم الآلي. يسعى فريق الباحثين من RightNow AI إلى أتمتة هذه العملية بالكامل من خلال إطلاق AutoKernel، وهو إطار عمل مفتوح المصدر يستخدم حلقة وكيل مستقل لتحسين نواة GPU لنماذج PyTorch المختلفة.
ما هو AutoKernel وكيف يعمل؟
تتمثل الفكرة الأساسية لـ AutoKernel في أنه يمكن للمستخدم ببساطة إدخال أي نموذج قبل النوم، والاستيقاظ ليجد أن النوى قد تم تحسينها بشكل أسرع دون الحاجة إلى أي خبرة في GPU. يعمل الإطار على أتمتة عملية تحسين النواة، حيث يقوم وكيل LLM بتعديل ملف واحد فقط يُسمى kernel.py.
تحديات تحسين GPU Kernels
تعتبر نواة GPU وظيفة تعمل بشكل متوازي عبر الآلاف من نوى GPU. عند تشغيل نموذج تحويل مثل LLaMA أو GPT-2، تُقضى معظم وقت الحساب داخل النوى الخاصة بعمليات مثل ضرب المصفوفات (matmul) وsoftmax وتطبيع الطبقات والانتباه. تتواجد هذه النوى في مكتبات مثل cuBLAS وcuDNN، أو يتم توليدها تلقائيًا من خلال خط أنابيب التجميع الخاص بـ PyTorch.
تتطلب عملية استخراج الأداء الأقصى من هذه النوى مهارات متعددة تأخذ سنوات لتطويرها، مما يجعل هذه الخبرة نادرة. يُظهر KernelBench، وهو مجموعة اختبارات تقيم نماذج LLM المتقدمة على 250 مشكلة نواة GPU، أن أفضل النماذج لا تتجاوز أداء PyTorch الأساسي في أقل من 20% من الحالات باستخدام التوليد لمرة واحدة.
آلية AutoKernel: حلقة التحسين
تستند آلية عمل AutoKernel إلى فكرة بسيطة: يقوم المهندسون الخبراء بكتابة مرشحات، ثم يقيمونها، ويحتفظون بالتحسينات، ويتخلصون من التراجعات، ويكررون العملية. يقوم AutoKernel بأتمتة هذه الدورة، حيث يلتزم الوكيل بتعديل kernel.py، ويتحقق من صحة التحسينات من خلال مجموعة قياسية تقيس الإنتاجية.
تستغرق كل دورة حوالي 90 ثانية، مما يسمح بإجراء 40 تجربة في الساعة، مما يعني أن الجلسة الليلية لمدة 10 ساعات يمكن أن تُنتج 300 إلى 400 تجربة عبر نوى متعددة.
تحليل الأداء والتحسينات
يبدأ AutoKernel من نموذج PyTorch كامل، حيث يستخدم torch.profiler لتسجيل الأشكال وتقسيم وقت GPU لكل نواة، ثم يرتب الأهداف بناءً على قانون أمدال، وهو المبدأ الرياضي الذي يحدد أن تسريع الأداء محدد بمقدار الوقت الكلي الذي تمثله تلك المكونات.
تستخدم الأداة أيضاً بيانات عن أجهزة GPU من قاعدة بيانات تشمل مواصفات معروفة لكل من NVIDIA وAMD، مما يجعل النظام قابلاً للاستخدام عبر مجموعة واسعة من الأجهزة.
ضمان صحة النتائج
يحرص AutoKernel على أن تمر كل نواة مقترحة عبر خمس مراحل من التحقق قبل تسجيل أي تسريع. تشمل هذه المراحل اختبارات الدخان، واختبارات الاستقرار العددي، والتحقق من تحديد النتائج، مما يضمن أن الأداء المحسن لا يأتي على حساب صحة النتائج.
دعم واجهات Triton وCUDA C++
يدعم AutoKernel كل من واجهتي Triton وCUDA C++، مما يوفر مرونة في الاختيار حسب الحاجة. تغطي النظام تسعة أنواع من النوى تشمل العمليات الأساسية في بنى التحويل الحديثة.
ستساهم هذه الابتكارات في جعل عملية تحسين نوى GPU أكثر سهولة وفعالية لكل من الباحثين والمطورين، مما يعزز من إمكانية الوصول إلى أدوات التعلم العميق ويعزز من الابتكار في هذا المجال.
المصدر: MarkTechPost