يدعم تطبيق Mesa's Rust لـ OpenCL الآن OpenCL 3.0

لقد نجح تطبيق OpenCL الجديد (rusticl)، المكتوب بلغة Rust، والذي يتم تطويره لمشروع Mesa، في اجتياز مجموعة اختبار CTS (Kronos Conformance Test Suite) التي يستخدمها اتحاد Khronos لتقييم التوافق مع مواصفات OpenCL 3.0. يتم تطوير المشروع بواسطة Karol Herbst من Red Hat، الذي يشارك في تطوير Mesa، وبرنامج التشغيل Nouveau، والمكدس المفتوح OpenCL. تجدر الإشارة إلى أن كارول اتصلت بـ Khronos بخصوص الشهادة الرسمية لدعم OpenCL 3.0 في Rusticl.

تم الانتهاء من الاختبارات على نظام مزود بوحدة معالجة الرسومات Intel من الجيل الثاني عشر (Alder Lake). تم تنفيذ العمل باستخدام برنامج تشغيل Mesa Iris، ولكن يجب أن يعمل المشروع أيضًا مع برامج تشغيل Mesa الأخرى التي تستخدم التمثيل الوسيط بدون كتابة (IR) لتظليل NIR. لا يزال طلب دمج Rusticle مع Mesa قيد المراجعة ولم يتم اتخاذ أي قرار بشأن تضمين كود Rust في Mesa. قبل قبول Rusticl في تكوين Mesa الرئيسي، يمكنك استخدام فرع منفصل للبناء، عند التجميع الذي يجب عليك تحديد معلمات البناء "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= حقيقي".

تعمل Rusicle كنظير لواجهة OpenCL الأمامية الخاصة بـ Mesa Clover وتم تطويرها أيضًا باستخدام واجهة Gallium المتوفرة في Mesa. لقد تم التخلي عن حصة Clover لفترة طويلة وتم وضع Rusticl كبديل لها في المستقبل. بالإضافة إلى تحقيق التوافق مع OpenCL 3.0، يختلف مشروع Rustical عن Clover في دعم امتدادات OpenCL لمعالجة الصور، لكنه لا يدعم حتى الآن تنسيق FP16.

لإنشاء روابط لـ Mesa وOpenCL، مما يسمح لك باستدعاء وظائف Rust من كود C والعكس، يتم استخدام Rust-bindgen في Rusticle. تمت مناقشة إمكانية استخدام لغة Rust في مشروع Mesa منذ عام 2020. من بين مزايا دعم Rust، يتم ذكر زيادة الأمان وجودة برامج التشغيل بسبب التخلص من المشكلات النموذجية عند العمل مع الذاكرة، فضلاً عن القدرة على تضمين تطورات الطرف الثالث في Mesa، مثل Kazan (تطبيق Vulkan) في الصدأ). تشمل العيوب التعقيد المتزايد لنظام البناء، والإحجام عن الارتباط بنظام حزمة الشحن، وتوسيع المتطلبات لبيئة البناء، والحاجة إلى تضمين مترجم Rust في تبعيات البناء المطلوبة لبناء مكونات سطح المكتب الرئيسية على Linux.

المصدر: opennet.ru

إضافة تعليق