در سال 2020 ایامدی معماری جدید خود یعنی RDNA 2 را عرضه کرد که از آن روز به اینور این معماری در دستگاههای مختلف و بسیار زیادی استفاده شده است. برای مثال کارتگرافیکهای سری 6000 ایامدی، کنسولهای نسل جدید ایکسباکس، کنسول استیم دک، گوشیهای سری S22 سامسونگ و… از این معماری در پردازندههای گرافیکی خود استفاده کردهاند.
از دلایل استفاده گسترده از این معماری میتوان به عملکرد قدرتمند در کنار دمای پایین و ابعاد کوچک و مصرف برق پایین آن اشاره کرد. این معماری نسبت به نسل قبل خود 65 درصد عمکلرد بیشتر در ازای مصرف برق یکسان دارد.
در این مقاله قصد داریم تا بخشهای مختلف این معماری RDNA 2 را برای شما به زبان ساده توضیح دهیم.
RDNA 2
Infinity Cache
کش چیست؟
قبل از آن که اینفینتی کش را توضیح دهیم، باید در ابتدا بدانیم کش چیست و چه تفاوتی با رم دارد. به صورت قاعده کلی هنگام ساخت یک حافظه هرچه قدر سرعت آن را بالاتر ببرید، هزینه ساخت آن به شدت بالاتر خواهد رفت. اما از طرفی هنگام پردازش، برخی اطلاعات نیاز است که سریعتر لود شوند چرا که سرعت حافظه تاثیری بهسزایی دارد.
در این مقاله ویرم را توضیح دادیم و تفاوتهای آن با رم را بیان کردیم.
برای رفع هر دو مشکل، کش ساخته شد، کش عملا یک حافظه رم با سرعت بسیار بالاتر (نزدیک ده تا صد برابر) و ظرفیت حافظه بسیار پایینتر است. همانطور که میدانید رمها در ابعاد چند گیگابایتی ساخته میشوند اما کشها به دلیل هزینه ساخت بالا، در نهایت به چند صد کیلوبایت میرسند.
در حالت کلی برای صرفه جویی در هزینه ساخت به همراه حفظ عملکرد بالای پردازنده، خود کش نیز به سه لایه مجزا تقسیم میشود. از لایه اول تا لایه سه به ترتیب سرعت کم اما ظرفیت بیشتر میشود.
اینفینیتی کش چیست؟
ایامدی در معماری RDNA 2، این سیستم را کمی تغییر داده و لایه جدیدی از کش را تعریف کرده است که آن را اینفینیتی کش نامگذاری کرد. این کش سرعتی برابر با لایه سوم کشها را دارد اما ظرفیت بسیار بیشتری دارد به صورتی که در کارتگرافیک 6900Xt از 128 مگابایت کش استفاده شده است!
استفاده از اینفینیتی کش باعث شده تا عملکرد کارتگرافیک بهشدت افزایش پیدا کند. یکی از مزایای نهفته آن، این است که چون پردازنده کارت، به ظرفیت و سرعت بیشتری از کش دسترسی دارد، تا حدی نیاز آن از ویرم کاهش پیدا میکند و به همین دلیل، ایامدی در ویرم کارتهای خود به جای استفاده از GDDR6X، از GDDR6 استفاده کرده تا هم هزینه کمتری در ساخت داشته باشد و هم با استفاده از این کش، از کارتهایی که تنها از GDDR6X استفاده میکنند، پیشی بگیرد.
Ray Tracing
ری تریسسنگ یک سیستم نورپردازی است که توسط انویدیا معرفی و عرضه شده است. این سیستم، نتایج واقعگرایانهتری نسبت به نورپردازیهای دیگر دارد و گرافیک بازی را بالاتر میبرد. اما این سیستم بهشدت کار پیچیده و سنگینی است که باعث شده تا هر کارتی نتواند آن را اجرا کند. برای همین انویدیا از هستههای اختصاصی استفاده میکند که تنها برای پردازش ری تریسینگ طراحی شدهاند.
بعد از گذشت مدتی، ری تریسبنگ بسیار محبوب و گسترده شده بود و نبود پشتیبانی آن در کارتگرافیکهای ایامدی نقص بزرگی بود. اختلاف عملکرد کارتگرافیکهای دو کمپانی به قدری بالا بود که در بسیاری از عناوین، با روشن کردن ری تریسنگ فریمریت کارتهای ایامدی به شدت کاهش مییافت و آن را غیرقابل بازی میکرد.
حالا ایامدی با عرضه معماری جدید RDNA 2 خود، قصد دارد تا این نقص را برطرف کند. در کنار هر واحد پردازشی، یک هسته اختصاصی برای ری تریسینگ در نظر گرفته شده است که گرچه هنوز نتوانسته به فرمانروایی انویدیا در این بخش پایان بخشد اما قدم بزرگی به این سمت بهحساب میآید و هماکنون فاصله بین آن دو کاهش یافته است.
برای آگاهی بیشتر درمورد این تکنولوژی به این مقاله مراحعه کنید.
Direct Storage
در طراحیهای گذشته، هنگام لود شدن اطلاعات، پردازنده کامپیوتر اطلاعات را از حافظه ذخیرهسازی برداشته و آن را به کارت گرافیک تحویل میداد. دایرکت استوریج موجود در RDNA 2 که تا حدی نام آن کارش را توضیح میدهد به گونهای عمل میکند که کارتگرافیک را مستقیما به حافظه وصل میکند تا خود کارت، اطلاعات را بردارد.
انتقال اطلاعات از حافظه به پردازنده و از پردازنده به کارتگرافیک فرآیندی زمانبر بوده و بهینه نیست. به همین علت استفاده از دایرکت استوریج در کنار افزایش عملکرد کارت، باعث کاهش لودینگها هنگام بازی کردن نیز خواهد شد.
DirectX 12 Ultimate
این معماری از آخرین ویژگیهای نرمافزاری دایرکت ایکس ساخته شده توسط مایکروسافت نیز پشتیبانی میکند. دایرکت ایکس بر روی کارت گرافیکهای انویدیا نیز پشتیبانی میشود اما چون دو کمپانی مایکروسافت و ایامدی هنگام ساخت کنسول ایکسباکس با یکدیگر همکاری داشتهاند، معماری RDNA 2 برای استفاده از دایرکت ایکس بهینه سازی شده و عملکرد بهتری نسبت به انویدیا خواهد داشت.
به همین دلیل در ادامه به معرفی ویژگیهای دایرکت ایکس 12 نسخه آلتیمیت میپردازیم.
Mesh Shaders
در بازیها معمولا وقتی در یک نقشه قرار دارید، تمام اجسام دور و بر شما توسط کارتگرافیک رندر گرفته میشود حتی اجسامی که پشت شما هستند و قابل دیدن نیستند. به صورت نرمال شما 70 درجه از دنیای بازی را نگاه میکنید اما تمام 360 درجه و هرچه در آن بخش از دنیای بازی وجود دارد، توسط کارتگرافیک رندر گرفته میشود که همانطور که حدس میزنید اتلاف منابع است.
برای ادامه لازم است تا درمورد ساختار اجسام سه بعدی در بازیها صحبت کنیم. هر آنچه که شما در تصویر خروجی مشاهده میکنید، توسط چند ضلعیهای دو بعدی بسیار ریزی ساخته شده است، حتی اشکال کروی، مانند یک توپ ساده نیز از چندضلعیهای ریز تشکیل شده است.
هرچه قدر تعداد چندضلعیها افزایش یابد جسم نهایی واقعیتر میشود اما رندر گرفتن آن نیز زمانبرتر خواهد شد. برای همین بازیسازان همواره در تلاشند تا با تکنیکهای بهینهسازی مختلف بتوانند چندضلعیهای بیشتری در اختیار تیم طراحی قرار بدهند تا گرافیک بازی واقعیتر شود.
کاری که تکنولوژی مش شیدرز انجام میدهد این است که تنها چندضلعیهایی که در زاویه دوربین قرار دارند را رندر میگیرد و بقیه آنها که در دوربین دیده نمیشوند را نادیده میگیرد. حتی اجسامی که در زاویه دوربین قرار دارند اما پشت یک جسم دیگر قرار دارند و دیده نمیشوند نیز نادیده گرفته میشوند.
این کار حجم بسیار زیادی از کارهای کارتگرافیک کم میکند و در نهایت باعث میشود تا به جای هدر رفتن قدرت کارتگرفیک در بخشهایی که قابل رویت نیستند، توانایی کارت بر روی تصویر خروجی متمرکز شود و چندضلعیهای بیشتری را خروجی دهد تا گرافیک بازی بهتر شود.
شرکت 3DMark که در زمینه بنچمارکها فعالیت میکند، اخیرا یک تست برای مش شیدرز طراحی کرده است که ما یک مثال آن را مطرح میکنیم تا به ابعاد بهینه سازی این تکنولوژی پی ببرید. کارتگرافیک 6800Xt بدون مش شیدرز توانست تست را با 31 فریم بر ثانیه رندر بگیرد. اما هنگامی مش شیدرز فعال میشوند این عدد به 480 فریمریت میرسد که به معنی بیش از 15 برابر عملکرد بهتر است!
توجه داشته باشید که این تکنولوژی در هر بازی اجرا نخواهد شد و باید استودیو سازنده بازی، از این تکنولوژی استفاده کنند. همچنین این تکنولوژی باید از مراحل اول ساخت بازی به کار گرفته شود به همین دلیل هنوز شاهد بازی عرضه شدهای نیستیم که از این فناوری استفاده کند.
DirectX Ray Tracing
در کنار هستههای پردازشی، کارتگرافیک به صورت نرمافزاری نیز باید ری تریسینگ را پشتیبانی کند. بخش ری تریسینگ دایرکتایکس به دست توسعه دهندگان بسیار بیشتری رسیده است تا آنان نیز به این جنبش نورپردازی جدید محلق شوند. این تکنولوژی بر روی کارتهای انویدیا نیز اجرا میشود اما به دلیل استفاده انویدیا از تکنولوژی خاص خود، به عملکرد بهتری دست مییابد.
VRS
تکنولوژی Variable Rate Shading در معماری RDNA 2 برخلاف مش شیدینگ، سعی میکند تا آنچه بر روی صفحه نمایش داده میشود را بهینهتر کند. فرض کنید دارید یک بازی ماشینی مانند فورزا هورایزن را بازی میکنید، احتمالا بیشتر مواقع تنها به وسط تصویر نگاه خواهید کرد و توجه خاصی به گوشههای تصویر خود نخواهید داشت.
این تکنولوژی توان پردازشی کارتگرافیک را در بخشهای مختلف تصویر تقسیم میکند. برای مثال گوشههای تصویر که به آن زیاد نگاه نخواهید کرد، با کیفیت کمی کمتر رندر گرفته خواهد شد و بخشهای که کانون توجه شما هستند دست نخورده باقی مانده یا حتی با کیفیت بیشتر رندر گرفته خواهند شد.
با توجه به گفتههای مایکروسافت هنگام عرضه تکنولوژی روی کنسولهای ایکسباکس، استفاده از تکنولوژی VRS 2.0 باعث میشود تا در سکانسهای مختلف حدود 10 الی 33 درصد افزایش عملکرد داشته باشیم.
Sampler Feedback Streaming
قبل از ادامه باید کمی درمورد نحوه کارکرد تکسچرها (بافتها) بدانیم. به صورت کلی اجسام در بازیها، بدون بافت و تک رنگ هستند که با افزودن تکسچر، ظاهر جسم کامل میشود.
تکسچرها به صورت تقریبی یک عکس هستند و برای هر جسم در بازی یک تکسچر طراحی شده و این باعث شده است تا با تعداد زیادی تکسچر مواجه شویم که هرکدام حجم بالایی دارند مخصوصا بازیهایی که کیفیت 4K دارند لازم هست که تکسچرهای 4K نیز داشته باشند. در کل میتوان گفت که اکثر حجم یک بازی مربوط به تکسچرهای آن است.
هنگامی که وارد یک بخش جدید از بازی میشوید، کارتگرافیک نیاز دارد تا تکسچرهای جدید را لود کند اما با توجه به حجم زیاد تکسچرها این کار کمی طول میکشد و همچنین در یک سکانس تعداد بسیار زیادی تکسچر با کیفیت بالا وجود دارد که منابع زیادی را از کارت استفاده میکنند.
یک تکنیکی که برای بهینه سازی بازیها از آن استفاده میشود این است که به جای یک تکسچر برای یک جسم، از چندین تکسچر در کیفیتهای مختلف استفاده میشود. هنگامی که دوربین به جسم نزدیک باشد، تکسچری که بالاترین کیفیت را دارد لود میشود و با فاصله گرفتن از آن، کیفیت تکسچر کاهش مییابد. این کار هیچ تاثیری روی کیفیت تصویر خروجی ندارد اما تاثیر بهسزایی روی میزان توان مصرفی از کارتگرافیک دارد.
اما یک مشکلی که در این تکنولوژی وجود دارد این است که تمام تکسچرهای یک جسم لود میشوند و هرکدام که لازم است به جسم اعمال میشود. درست است که بار زیادی از دوش کارتگرافیک برداشته شده است، اما همان مقدار بار به دوش حافظه و ویرم اضافه شده است. به گونهای که به جای یک تکسچر باید چندین تکسچر مختلف را لود کنند. این کار هم به حجم بیشتر ویرم و هم به سرعت ویرم و سرعت حافظه بیشتری نیاز دارد.
تکنولوژی Sampler Feedback Streaming یا به صورت خلاصه SFS، این مشکل را نیز حل میکند. این تکنولوژی باعث میشود که هر تکسچری که مورد نیاز است لود شود و تکسچرهایی که قرار نیست استفاده شوند سرعت و ظرفیت ویرم را اشغال نکند. این کار باعث میشود تا بازیسازان بتوانند از ویرم بیشتری استفاده کنند.
با توجه به تستهای نمایش داده شده توسط مایکروسافت در یک سکانس، بدون استفاده از تکنولوژی SFS، مقدار 1.56 گیگابایت از ویرم اشغال شده است و همان سکانس با دقیقا همان کیفیت خروجی با استفاده از SFS تنها 0.52 گیگابایت ویرم اشغال میشود که برابر با ادعای مایکروسافت مبنی بر کاهش دو سومی حجم لود شده است.
هنوز استودیویی نتوانسته از تمام این پتانسیلهای RDNA 2 استفاده کند چرا که معمولا این کار چند سالی زمان میبرد و تا آخرای نسل کنسولها همواره شاهد افزایش کیفیت بازیها خواهیم بود. اما تصور کارهایی که میتوان با این تکنولوژیها مخصوصا Mesh Shaders انجام داد، لذت بخش است.