Valve یک کامپایلر سایه زن جدید برای پردازنده های گرافیکی AMD باز کرده است

شرکت شیر پیشنهادی لیست پستی توسعه دهندگان Mesa دارای یک کامپایلر سایه زن جدید است ACO برای درایور Vulkan RADV، قابل موقعیت به عنوان جایگزینی برای کامپایلر سایه زن AMDGPU که در درایورهای OpenGL و Vulkan RadeonSI و RADV برای تراشه های گرافیکی AMD استفاده می شود.
پس از تکمیل آزمایش و نهایی شدن عملکرد، ACO برای گنجاندن در ترکیب اصلی Mesa برنامه ریزی شده است.

هدف کد پیشنهادی Valve ارائه کدی است که تا حد امکان برای سایه‌زنان برنامه‌های بازی و همچنین دستیابی به سرعت کامپایل بسیار بالا باشد. کامپایلر سایه زن مسا از اجزای LLVM استفاده می کند که سرعت کامپایل مطلوب را ارائه نمی دهد و امکان کنترل کامل جریان کنترل را نمی دهد که در گذشته باعث خطاهای جدی شده است. علاوه بر این، دور شدن از LLVM امکان پیاده‌سازی تجزیه و تحلیل ناهماهنگی تهاجمی‌تر و کنترل دقیق‌تر بار رجیستر را ممکن می‌سازد، که به شما امکان می‌دهد فایل‌های اجرایی کارآمدتری تولید کنید.

ACO به زبان C++ نوشته شده است و با در نظر گرفتن کامپایل JIT طراحی شده است و از ساختارهای داده تکراری سریع استفاده می کند و از ساختارهای مبتنی بر اشاره گر مانند لیست های پیوندی و زنجیره های غیرقابل استفاده اجتناب می کند. نمایش کد میانی کاملاً بر اساس است S.S.A. (Static Single Assignment) و امکان تخصیص رجیستر را با پیش محاسبه دقیق رجیستر بسته به سایه زن فراهم می کند.

در حال حاضر، تنها شیدرهای پیکسلی (قطعه) و محاسباتی در پردازنده‌های گرافیکی مجزای AMD (dGPU VI+) پشتیبانی می‌شوند. با این حال، ACO در حال حاضر به درستی سایه‌بان‌ها را برای همه بازی‌های آزمایش‌شده، از جمله شیدرهای پیچیده Shadow of the Tomb Raider و Wolfenstein II جمع‌آوری می‌کند. نمونه اولیه ACO که برای آزمایش پیشنهاد شده است، تقریباً دو برابر سریعتر از کامپایلر سایه زن AMDGPU از نظر سرعت کامپایل است و افزایش FPS را در برخی از بازی ها هنگام اجرا بر روی سیستم هایی با درایور RADV نشان می دهد.

Valve یک کامپایلر سایه زن جدید برای پردازنده های گرافیکی AMD باز کرده است

Valve یک کامپایلر سایه زن جدید برای پردازنده های گرافیکی AMD باز کرده است

منبع: opennet.ru

اضافه کردن نظر