یک توسعهدهنده با نام مستعار countervolts پروژه جالبی را معرفی کرده است. این پروژه با نام d4r که مخفف DLSS 4 Radeon است امکان اجرای کتابخانه رسمی DLSS Super Resolution انویدیا را روی پردازندههای گرافیکی AMD مبتنی بر معماری RDNA 3 در لینوکس و Proton فراهم میکند. همچنین مادسازی موفق شده فناوری DLSS 5 Neural Rendering را روی گرافیک مجتمع اینتل اجرا کند.
اجرای DLSS رسمی انویدیا روی کارتهای AMD Radeon با استفاده از ZLUDA و پروژه D4R
اگر اخبار اخیر را دنبال کرده باشید، احتمالاً به یاد دارید که مادسازها پشتیبانی از فناوری DLSS را به معماریهای قدیمیتر آورده بودند اما آن پروژهها روی سختافزار GeForce RTX اجرا میشدند. پروژه جدید نیز ایده مشابهی دارد، با این تفاوت که سختافزارهای AMD را هدف قرار داده است.
علاوه بر این برخلاف پروژههای اخیر که تلاش میکنند قابلیت Neural Rendering در DLSS 5 را به پردازندههای گرافیکی Radeon بیاورند، این پروژه روی قابلیت استاندارد ارتقای وضوح تصویر DLSS تمرکز دارد. این موضوع در شرایط فعلی احتمالاً برای اکثر گیمرها کاربردیتر است. D4R از مدل CNN در DLSS 3، ترنسفورمر DLSS 4 و ترنسفورمر DLSS 4.5 از طریق فایل اصلی nvngx_dlss.dll انویدیا پشتیبانی میکند. DLSS 5 بهطور رسمی پشتیبانی نمیشود.
در بازی SILENT HILL Townfall روی کارت RX 7700 XT با وضوح 2560×1440، پیشتنظیم E مدل CNN در DLSS 3 در حال حاضر سریعترین گزینه DLSS در حالتهای Quality، Balanced و Performance محسوب میشود. این فناوری در حالت Quality به نرخ 72.4 فریم بر ثانیه میرسد، در حالی که DLSS 4 K برابر با 69.4 فریم بر ثانیه و DLSS 4.5 M برابر با 51.5 فریم بر ثانیه عملکرد دارند.
DLSS 4 در حالت Ultra Performance سریعتر میشود و به 94.5 فریم بر ثانیه میرسد، در حالی که DLSS 3 به 88.9 فریم بر ثانیه دست پیدا میکند. توسعهدهنده توضیح میدهد که DLSS 4 تقریباً هزینه پردازشی ثابتی معادل 2.8 میلیثانیه دارد، زیرا شبکه آن بر اساس وضوح خروجی فعالیت میکند و نه وضوح ورودی. در مقابل DLSS 4.5 در حال حاضر حدود 7.5 میلیثانیه از زمان پردازش گرافیک را برای هر فریم مصرف میکند. FSR 4 نیز در تمام حالتهای آزمایششده همچنان سریعتر است.

این پروژه از ZLUDA استفاده میکند؛ یک لایه سازگاری که امکان اجرای برنامههای CUDA روی پردازندههای گرافیکی غیرانویدیا را فراهم میکند. ZLUDA کد PTX انویدیا را از طریق ROCm/HIP برای سختافزارهای AMD ترجمه میکند. D4R کتابخانه DLSS انویدیا را بدون تغییر نگه میدارد اما فراخوانیهای CUDA آن را از طریق یک پل Wine به ZLUDA هدایت میکند.
توسعهدهنده سپس تعدادی از سنگینترین کرنلهای DLSS 4 و DLSS 4.5 را با نسخههای اختصاصی برای RDNA 3 جایگزین کرده است. این کار تنها برای بهبود عملکرد ضروری نیست، زیرا ترنسفورمر DLSS 4 هنگام اجرا از طریق ZLUDA بهتنهایی خروجی نامعتبر تولید میکرد و در نتیجه DLSS نتیجه شبکه را کنار میگذاشت. تعداد مراحلی که این ماد برای اجرای DLSS روی سختافزار AMD پشت سر میگذارد بسیار زیاد است، با این حال همچنان عملکرد مناسبی ارائه میدهد.
D4R چگونه کار میکند؟
- بازی (D3D12)
- OptiScaler (ورودیهای DLSS)
- d4r_nvngx.dll (رابط NGX D3D12، فایل tools/d4r_nvngx_shim.cpp) ورودیها و خروجیها در VRAM باقی میمانند (vkd3d-proton Vulkan interop، تقسیم Command List در اطراف DLSS برای دریافت نتیجه در همان فریم)
- هسته رسمی NGX + nvngx_dlss.dll (مسیر CUDA آنها)
- nvcuda.dll (پل CUDA در Wine، فایل tools/wine_nvcuda_bridge.c)
- ZLUDA (patches/zluda: تبدیل PTX به AMDGPU، پشتیبانی WMMA و جایگزینی کرنلهای بومی)
- کرنلهای بومی RDNA 3 (kernels/: لایههای شبکه DLSS 4 و DLSS 4.5)
نسخه فعلی پروژه برای gfx1101 یا همان Navi 32 بهینه شده است. این تراشه در کارتهای Radeon RX 7700 XT، RX 7800 XT، RX 7700 و Radeon PRO W7700 استفاده میشود. توسعهدهنده تاکنون پروژه را تنها روی RX 7700 XT آزمایش کرده اما تمام این کارتها از هدف GFX1101 مشترک استفاده میکنند.

بنابراین کارتهای Navi 31 و Navi 33 میتوانند DLSS 3 را با عملکرد کامل اجرا کنند اما DLSS 4 در حال حاضر بدون ترنسفورمر آن اجرا میشود و DLSS 4.5 نیز به دلیل نبود کرنلهای بومی مخصوص این پردازندههای گرافیکی، تقریباً با نصف سرعت اجرا خواهد شد. به همین دلیل بهتر است این پروژه را یک ماد DLSS برای RDNA 3 ندانیم و آن را ماد DLSS مخصوص Navi 32 در نظر بگیریم.
البته این پروژه همچنان یک پروژه آزمایشی برای لینوکس و Proton محسوب میشود و به معنای پشتیبانی عمومی از DLSS روی کارتهای Radeon نیست. D4R در حال حاضر روی ویندوز کار نمیکند. اگر قصد دارید این پروژه را امتحان کنید، میتوانید راهنمای موجود در صفحه پروژه را دنبال کنید. در غیر این صورت میتوان منتظر ماند تا در آینده توسعهدهنده دیگری این پروژه را فورک کرده و آن را به یک ماد یا پلاگین رسمی برای OptiScaler تبدیل کند.








دیدگاهتان را بنویسید