شهدت حزمة رسومات Linux الخاصة بشركة AMD لحظة غير عادية في الأسبوع الماضي. قام Anush Elangovan، نائب رئيس شركة AMD، بنشر برنامج تشغيل حاسوبي صغير تجريبي لـ Radeon مكتوب بالكامل بلغة Python، وفقًا لما أوردته شركة AMD. فورونيكس. علاوة على ذلك، تم إنتاج الكود بالكامل باستخدام Anthropic's Claude Code، وفقًا لإيلانجوفان. وبطبيعة الحال، كان العنوان الرئيسي لا يقاوم: أحد كبار مهندسي AMD يستخدم الذكاء الاصطناعي لإنتاج برنامج تشغيل GPU جديد؟ صادم! لكن الواقع أكثر تقنية وأقل جذرية. ما بناه ليس بديلاً للسائقين الحقيقيين للشركة. بدلاً من ذلك، فهو في الأساس عبارة عن أداة اختبار خفيفة الوزن مصممة للضغط مباشرة على واجهات AMD's Linux GPU.
تعمل وحدات معالجة الرسوميات Radeon الحديثة على نظام Linux عادةً من خلال مجموعة برامج عميقة إلى حد ما مبنية على ROCm. تتحدث التطبيقات إلى مكتبات ROCm، والتي بدورها تتحدث إلى أوقات تشغيل مساحة المستخدم، وفي النهاية تتدفق الأوامر إلى برنامج تشغيل AMDGPU الخاص بالنواة. يقطع مشروع Elangovan جزءًا كبيرًا من تلك الكومة. يتصل كود Python مباشرة مع برنامج تشغيل kernel عبر عقد الجهاز مثل/dev/kfd و/dev/dri/render*. ومن هناك، يمكنه تخصيص ذاكرة وحدة معالجة الرسومات، وإنشاء قوائم انتظار حسابية، وإرسال حزم الأوامر، ومزامنة عمل وحدة المعالجة المركزية ووحدة معالجة الرسومات. وبعبارة أخرى، فإنه يصل إلى أدنى طبقة عامة من واجهة حساب AMD.
يبدو هذا أكثر دراماتيكية مما هو عليه الآن؛ لا يزال برنامج تشغيل kernel (الذي لم يتم استبداله أو تأثره هنا) يقوم بجميع المهام الثقيلة تقريبًا. تقوم طبقة Python ببساطة ببناء حزم الأوامر وإرسالها عبر واجهات برمجة تطبيقات kernel الموجودة. على سبيل القياس، يشبه الأمر استخدام جهاز كمبيوتر محمول لاستبدال وحدة التحكم في المحرك مؤقتًا في سيارة مشروعك. إنه ليس شيئًا يمكنك استخدامه على المدى الطويل، ولكنه أداة تشخيصية مفيدة جدًا. الهدف هو التفاعل مع الأجهزة بطريقة يتم التحكم فيها للغاية دون وجود بقية مجموعة برامج ROCm في المنتصف.
من الواضح أن هذا يجعل المشروع مفيدًا لتصحيح الأخطاء والتجريب. يمكن للمهندسين عزل الأخطاء في ROCm أو اختبار ميزات GPU محددة دون تجميع مشاريع C++ الضخمة. يتعامل النموذج الأولي بالفعل مع عدد قليل من المهام الواقعية، بما في ذلك إنشاء قائمة انتظار الأوامر، وتخصيص الذاكرة، وحزم إرسال الحوسبة، وأوليات مزامنة وحدة معالجة الرسومات. نظرًا لأنه مكتوب بلغة Python، فإن الكود صغير وسهل التعديل، مما يجعله مثاليًا لاختبار السيناريوهات حيث يكون الهدف هو إعادة إنتاج سلوك الأجهزة بسرعة.
مستوحاة من برنامج تشغيل AMD @__tinygrad__ لمساحة المستخدم، قمت بتغطية برنامج تشغيل مساحة المستخدم لإجراء بعض اختبارات التحمل لـ SDMA وتصحيح أخطاء الحوسبة/الاتصالات. لم أفتح المحرر مرة واحدة. الوكلاء هم المعادل الكبير في البرمجيات. والسرعة هي الخندق. https://t.co/pc9dDWKTnP4 مارس 2026
يظهر دليل آخر حول غرض المشروع في الكود نفسه. يذكر النموذج الأولي “بنية قابلة للتوصيل للواجهة الخلفية PCI (AM) المعدنية العارية في المستقبل.” تبدو هذه العبارة غريبة، لكنها تشير إلى نفس اتجاه بقية التصميم. ستتجاوز الواجهة الخلفية المعدنية العارية حتى برنامج تشغيل kernel وتتحدث مع وحدة معالجة الرسومات مباشرة عبر PCI. يُستخدم هذا النوع من الإعداد عادةً لعرض الأجهزة أو التشخيص أو بيئات الاختبار ذات المستوى المنخفض للغاية، بدلاً من البرامج الاستهلاكية؛ سيؤدي تجاوز برنامج تشغيل kernel إلى كسر كل ما يعتمد على الميزات التي يوفرها برنامج التشغيل هذا، مثل تعدد المهام وذاكرة GPU الافتراضية وإدارة الحقوق الرقمية.
بالنسبة لأي شخص يأمل أن يتحول هذا إلى برنامج تشغيل Radeon يعمل بنظام Python لأنظمة Linux اليومية، يؤسفني أن أقول إن هذا غير مرجح للغاية. تعد برامج تشغيل GPU الخاصة بالإنتاج عبارة عن مشاريع ضخمة تحتوي على مترجمين للتظليل ومديري الذاكرة وإدارة الطاقة وطبقات الأمان ودعم واجهات برمجة التطبيقات المعقدة مثل Vulkan وOpenGL. لا شيء من ذلك موجود في هذه التجربة. ما أظهره Elangovan بدلاً من ذلك هو أن واجهة Linux kernel الخاصة بـ AMD مفتوحة وموحدة بدرجة كافية بحيث يمكن لأي شخص الكتابة عليها من لغة عالية المستوى. وأعتقد أنه يحب كلود كود حقًا.
يتبع أجهزة توم على أخبار جوجل، أو أضفنا كمصدر مفضل، للحصول على آخر الأخبار والتحليلات والمراجعات في خلاصاتك.

التعليقات