Kernel Forge: An Agent Harness for LLM-based Generation and Optimization of CUDA Kernels
تُعد Kernel Forge منصة مفتوحة المصدر، وهي عبارة عن إطار عمل وكيل متكامل (end-to-end agentic harness) يستفيد من النماذج اللغوية الكبيرة (LLMs) وخوارزمية البحث في شجرة مونت كارلو (Monte Carlo Tree Search) لتوليد وتحسين نوى CUDA تلقائياً لمختلف أعباء عمل PyTorch، محققةً بذلك تسريعات كبيرة مقارنة بوضع PyTorch eager mode، مع توفير واجهة رسومية للفحص وتصحيح الأخطاء.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تحاول تشغيل لعبة فيديو على جهاز الكمبيوتر الخاص بك. في بعض الأحيان، تعمل اللعبة بسلاسة، ولكن في أحيان أخرى تتعثر أو تتباطأ. يحدث هذا لأن الكمبيوتر يتعين عليه إجراء ملايين العمليات الحسابية الصغيرة كل ثانية لرسم الصور والتعامل مع الفيزياء. في عالم الذكاء الاصطناعي (AI)، تكون هذه الحسابات أكثر كثافة. لكي "يفكر" الذكاء الاصطناعي، فإنه يعتمد على تعليمات خاصة عالية السرعة تسمى الأنوية (kernels). فكر في النواة كأنها وصفة محددة وفائقة الكفاءة يستخدمها الطاهي لتقطيع الخضروات. إذا استخدم الطاهي سكيناً ثلماً وطريقة بطيئة، فسيتأخر العشاء. أما إذا استخدم سكيناً حاداً ومتخصصاً، فستكون الوجبة جاهزة فوراً.
لسنوات، كان كتابة هذه "الوصفات" يشبه محاولة كتابة رواية بلغة تكاد لا تتقنها. يتطلب الأمر خبراء مهارة عالية لكتابة تعليمات معقدة يدوياً لشرائح الكمبيوتر (GPUs) لجعلها تعمل بشكل أسرع. ولكن الآن، لدينا نوع جديد من المساعدين: نماذج اللغات الكبيرة (LLMs). قد تعرفها بصفتها روبوتات الدردشة الذكية التي يمكنها كتابة القصص أو حل المسائل الرياضية. يعمل العلماء الآن على تعليم روبوتات الدردة هذه كتابة "الوصفات" (الأنوية)، آملين أن يتمكنوا من القيام بذلك بشكل أسرع وأفضل من البشر. ومع ذلك، هناك عقبة: مجرد أن يكتب روبوت الدردشة وصفة تبدو جيدة على الورق، لا يعني أنها ستطهو الوجبة بشكل أسرض في مطبخ حقيقي.
هنا يأتي دور مشروع جديد يسمى Kernel Forge. قام باحثون من جامعة ميشيغان ببناء نظام ذكي لا يكتفي بسؤال روبوت الدردشة لكتابة الكود فحسب؛ بل يعمل كمدرب بدوام كامل، ومفتش جودة، ومدير مشروع، كل ذلك في آن واحد. أرادوا معرفة ما إذا كان بإمكان الذكاء الاصطناعي تولي مهمة تحسين هذه الوصفات لنماذج الذكاء الاصطناعي في العالم الحقيقي، وليس فقط لحالات اختبار وهمية ومصطنعة.
المشكلة: فخ "العزلة"
تخيل أنك تقوم بتدريب روبوت على الجري. إذا اختبرته فقط على مضمار مسطح وخالٍ، فقد يبدو كعداء عالمي. لكن بمجرد وضعه في شارع مزدحم ومليء بالنتوءات، قد يتعثر ويسقط. هذا بالضبط ما حدث مع المحاولات السابقة لاستخدام الذكاء الاصطناعي لكتابة أنوية الـ GPU. كانت معظم الأدوات تختبر الذكاء الاصطناعي عبر إعطائه مسائل رياضية عشووية ومصطنعة في مضمار فارغ. كانت تولد قطعة من الكود، وتختبرها في معزل، وتقول: "انظر كم هي سريعة هذه القطعة!".
لكن في العالم الحقيقي، نماذج الذكاء الاصطناعي تشبه المدن المزدحمة. يجب أن تعمل "الوصفات" (الأنوية) مع أشكال محددة من البيانات، وكميات معينة من الذاكرة، ويجب أن تتوافق جيداً مع الوصفات الأخرى الموجودة بجانبها. الوصفة التي تكون سريعة في اختبار عشوائي قد تكون بطيئة أو حتى تسبب عطلاً عند استخدامها داخل نموذج ذكاء اصطناعي حقيقي مثل تلك التي تولد الصور أو تدردش معك. غال-تًا ما تركت الأدوات السابقة الأمر لمطوري البرامج البشريين لتحديد كيفية دمج هذه الوصفات الجديدة التي كتبها الذكاء الاصطناعي مرة أخرى في الآلة المعقدة، وهو أمر كان مرهقاً وعرضة للأخطاء.
الحل: Kernel Forge
ابتكر الباحثون Kernel Forge، وهو أداة مفتوحة المصدر تعمل كجسر بين كاتب الذكاء الاصطناعي والعالم الحقيقي. بدلاً من مطالبة الذكاء الاصطناعي بالتخمين، يقوم Kernel Forge أولاً بمراقبة نموذج ذكاء اصطناعي حقيقي (مثل نموذج يتعرف على الوجوه أو يكتب القصص) أثناء تشغيله على جهاز كمبيوتر. إنه يدون ملاحظات حول أي "وصفات" يتم استخدامها بالضبط، وحجم البيانات، والوقت الذي تستغرقه للعمل.
بمجرد حصوله على هذه البيانات من العالم الحقيقي، يسلم المهمة إلى وكيل ذكاء اصطناعي (روبوت ذكي مدعوم بنموذج لغة كبير). لكن هذه ليست عملية من خطوة واحدة. يستخدم النظام استراتيجية ذكية تسمى بحث مونت كارلو في الشجرة (Monte Carlo Tree Search). تخيل محققاً يحل لغزاً؛ فبدلاً من اتباع حدس واحد فقط، يجرب المحقق مسارات عديدة. إذا أدى مسار ما إلى طريق مسدود، فإنه لا يستسلم، بل يعود ويجرب زاوية مختلفة. وبالمثل، لا يقوم Kernel Forge بكتابة نسخة واحدة من الوصفة ويأمل في الأفضل؛ بل يولد نسخاً عديدة، ويختبرها، وإذا كانت إحداها بطيئة، فإنه يحاول إصلاحها أو يجرب نهجاً مختلفاً تماماً. إنه يحتفظ بـ "شجرة عائلة" لكل المحاولات، متذكراً النسخ التي كانت واعدة حتى لو لم تكن مثالية في البداية.
النتائج: انتصارات سريعة، ولكن ليس في كل مكان
اختبر الفريق Kernel Forge على أربعة أنواع مختلفة من نماذج الذكاء الاصطناعي: نموذج للتعرف على الصور (ResNet-50)، ونموذج لتوليد الفنون (Stable Diffusion 3.5 Medium)، ونموذجين للدردشة والاستنتاج (Gemma 4 و Qwen 3.5). قاموا بتشغيل هذه الاختبارات على جهاز كمبيوتر قوي مزود ببطاقة رسوميات NVIDIA GB10.
إليكم ما وجدوه:
- إنه يعمل، لكنه انتقائي: نجح النظام في توليد وصفات جديدة وأسرع لأجزاء عديدة من الذكاء الاصطناعي. في بعض الحالات، كان الكود الذي كتبه الذكاء الاصطناعي أسرع بكثير من الكود القياسي الذي يستخدمه الكمبيوتر عادةً. على سبيل المثال، في مولد الصور، كان الكود الجديد لعملية "التطبيع الجماعي" (group normalization) أسرع بمقدار 1.70 مرة. وفي روبوت الدردشة Gemma 4، كان الكود الجديد لعملية "softmax" (وهي خطوة رياضية تُستخدم لاتخاذ القرارات) أسرع بمقدار هائل يصل إلى 2.83 مرة.
- شبكة الأمان "المراقبة": النظام حذر للغاية. لديه "حارس" يفحص كل وصفة جديدة. إذا كانت وصفة الذكاء الاصطناعي الجديدة أبطأ أو ترتكب خطأً، ينتقل النظام فوراً للعودة إلى الكود الأصلي والموثوق. إنه لا يفرض أبداً وصفة سيئة على المستخدم. وهذا يعني أنه حتى لو حاول الذكاء الاصطناعي تحسين جزء من الكود وفشل، فإن الكمبيوتر لن يتعطل أو يتباطأ؛ بل سيستخدم الطريقة القديمة والآمنة فقط.
- "اللاعبون الكبار" يصعب التغلب عليهم: لاحظ الباحثون شيئاً مثيراً للاهتمام. الأجزاء التي تستغرق معظم الوقت في الذكاء الاصطناعي (اللاعبون الكبار) غالباً ما يتم التعامل معها بواسطة كود ناضج جداً ومكتوب من قبل خبراء من شركات مثل NVIDIA. لقد واجه الذكاء الاصطناعي صعوبة في التغلب على هؤلاء الخبراء. على سبيل المثال، في مولد الصور، كانت عملية "الخطية" (linear operation) -التي تستغرق أكثر من 50% من الوقت- في الواقع أبطأ عندما حاول الذكاء الاصطناعي إعادة كتابتها. لذا قرر النظام بحكمة التمسك بالكود الأصلي لهذا الجزء.
- الانتصارات الصغيرة تتراكم: كانت أكبر عمليات تسريع السرعة تحدث في الأجزاء الأصغر والأقل أهمية من الكود. وبينما لم يستطع الذكاء الاصطناعي هزيمة الخبراء في المهام الكبرى، فقد وجد طرقاً ذكية لتسريع المهام الأصغر بمقدار 1.5 إلى 2.8 مرة.
تكلفة الفضول
نظر الباحثون أيضاً في تكلفة عملية "التفكير" هذه. استخدموا نموذج ذكاء اصطناعي قوياً لتوليد الكود، وفي كل مرة يكتب فيها الذكاء الاصطناعي سطراً من الكود أو يفحص نتيجة، كانت هناك تكلفة بسيطة (بناءً على استخدام واجهة برمجة التطبيقات API). ووجدوا أنه كلما تركوا الذكاء الاصطناعي يجرب المزيد والمزيد من المتغيرات (حتى 50 جولة من المحاولة والإصلاح)، ارتفعت التكلفة. ومع ذلك، فإن السرعة الإضافية التي حصلوا عليها لم تكن دائماً تتماشى مع المال الإضافي المنفق. وهذا يشير إلى أنه بينما يمكن للذكاء الاصطناعي إيجاد اختصارات رائعة، إلا أننا بحاجة إلى أن نكون أذكياء بشأن متى نتوقف عن البحث، خاصة إذا كان الجزء من الكود الذي نحاول إصلاحه ليس مهماً جداً للسرعة الإجمالية.
الخلاصة
يُظهر Kernel Forge أننا ندخل عصراً جديداً حيث يمكن للذكاء الاصطناعي المساعدة في كتابة الكود منخفض المستوى الذي يجعل الذكاء الاصطناعي الآخر يعمل بشكل أسرع. إنه ليس عصا سحرية تحل كل شيء فوراً؛ فهو لا يستطيع بسهء التغلب على أفضل الخبراء البشريين في المهام الكبرى بعد. ولكنه أداة قوية يمكنها العثور على تعزيزات سرعة مخفية في التفاصيل الأصغر، مع الحفاظ على سلامة واستقرار النظام.
لقد أطلق الباحثون أداتهم كمصدر مفتوح، مما يعني أن أي شخص يمكنه استخدامها لمحاولة جعل نماذج الذكاء الاصطنا الخاص به أسرع. لقد أثبتوا أنه من خلال الجمع بين إبداع الذكاء الاصطناعي وأمان الاختبار في العالم الحقيقي، يمكننا البدء في تحسين محركات عالمنا الرقمي دون الحاجة إلى شهادة دكتوراه في علوم الكمبيوتر للقيام بذلك. إنها خطوة نحو مستقبل لا تكون فيه أجهزة الكمبيوتر الخاصة بنا أذكى فحسب، بل أكثر كفاءة أيضاً.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.