كشفت Valve عن مترجم تظليل جديد لوحدات معالجة الرسومات AMD

شركة الصمامات اقترحت مترجم تظليل جديد في القائمة البريدية لمطوري ميسا ACO لسائق RADV Vulkan ، المتمركزة كبديل لمجمع تظليل AMDGPU المستخدم في برامج تشغيل RadeonSI و RADV OpenGL و Vulkan لرقائق رسومات AMD.
بعد اكتمال الاختبار وتنقيح الوظيفة ، من المخطط تقديم ACO لإدراجها في التكوين الرئيسي لـ Mesa.

تهدف التعليمات البرمجية المقترحة من Valve إلى التأكد من أن إنشاء الكود هو الأمثل قدر الإمكان لتظليل تطبيقات الألعاب ، فضلاً عن تحقيق سرعات تجميع عالية جدًا. يستخدم مترجم تظليل Mesa مكونات LLVM التي لا تحقق سرعة التجميع المطلوبة ولا تسمح بالتحكم الكامل في التدفق ، مما تسبب بالفعل في أخطاء خطيرة في الماضي. بالإضافة إلى ذلك ، فإن الابتعاد عن LLVM يسمح بتحليل تناقض أكثر قوة وتحكمًا أكثر دقة في تحميل السجل ، مما يسمح بإنشاء ملفات تنفيذية أكثر كفاءة.

تمت كتابة ACO بلغة C ++ ، وتم تصميمها مع مراعاة تجميع JIT ، وتستخدم هياكل بيانات سريعة التكرار ، وتجنب الهياكل القائمة على المؤشر مثل القوائم المرتبطة وسلاسل def-use. تمثيل الكود الوسيط يعتمد كليا على SSA (تعيين فردي ثابت) ويسمح لك بإجراء تخصيص التسجيل عن طريق حساب السجل بدقة اعتمادًا على التظليل.

حاليًا ، يتم دعم وحدات البكسل (جزء) وتظليل الحساب فقط في وحدات معالجة الرسومات AMD المنفصلة (dGPU VI +). ومع ذلك ، يقوم ACO بالفعل ببناء تظليلات بشكل صحيح لجميع الألعاب المختبرة ، بما في ذلك التظليل المعقد من Shadow of the Tomb Raider و Wolfenstein II. النموذج الأولي ACO المقترح للاختبار يكاد يكون أسرع بمرتين من مترجم AMDGPU shader ويظهر زيادة في FPS في بعض الألعاب عند تشغيلها على أنظمة مع برنامج تشغيل RADV.

كشفت Valve عن مترجم تظليل جديد لوحدات معالجة الرسومات AMD

كشفت Valve عن مترجم تظليل جديد لوحدات معالجة الرسومات AMD

المصدر: opennet.ru

إضافة تعليق