رفتن به مطلب

بررسی دلایل ضعف انویدیا در DirectX 12


Core_i6
 اشتراک گذاری

Recommended Posts

بررسی دلایل ضعف انویدیا در DirectX 12:

کاهش نقش درایور.

درایور در DirectX 11 وظایف مهم و مختلفی بر عهده داره ( شکل 3 ). 
در DirectX 12 نقش و تاثیر درایور خیلی کمتر میشه ( شکل 1 و 2 ) و خود بازیساز باید این وظایف و عملکردها رو در انجین بازی اعمال کنه (شکل 4 ).

انویدیا که در DirectX 11 بهترین درایور رو داشت، حالا باید در DirectX 12 امیدش به سازنده ی بازی باشه تا این وظایف سابق درایور رو به خوبی در انجین بازی اعمال کنه.

(شکل 1)
EduxV.png

( شکل 2)
nCTHG.png

( شکل 3)
q8r1m.png

( شکل 4)
g5fni.png

 

DirectX 12 نیاز به بهینه سازی مجزا برای هر معماری دارد. (شکل 1 و 5 و 6 )

در کنفرانس مشترک انویدیا و AMD بارها و بارها تاکید شد که بخش‌های مختلف DirectX 12 نیاز به کدنویسی و بهینه سازی مجزا و مخصوص هر معماری دارند. 
معماری کارت‌های AMD و انویدیا متفاوته. در نتیجه یک code path یکسان در هر دو به خوبی جواب نمیده.

( شکل 1)
EduxV.png
( شکل 5)
U5WfV.png

( شکل 6)
WnMG7.png

 

پشتیبانی سخت افزاری ضعیف از برخی قابلیت ها. (شکل 7 )

Async Compute در مکسول و کپلر پشتیبانی نمیشه.
در بقیه‌ی ویژگی ها هم در برخی برتری با انویدیا  و در برخی برتری با AMD هستش.

( شکل 7)
9bvPk.png

 

سلطه‌ی AMD بر کنسول.

کاهش نقش درایور و نیاز بخش‌های مختلف DirectX 12 به بهینه سازی مجزا، مشکل AMD هم هست.
ولی چون API های low-level در بازی فقط در کنسول استفاده می‌شدند و فقط شرکت AMD گرافیک و cpu کنسول‌ها رو تامین می‌کنه،
پس هم برنامه‌نویس‌ها تجربه‌ی بیشتری دارند با سخت افزار AMD در سطح low-level و هم انجین‌های بازی از پایه و اساس بهینه شدن برای معماری GCN. 

در حالی که انویدیا باید از ابتدا آموزش بده به بازیسازها برای استفاده‌ی بهینه از معماریش و مطمئن بشه که انجین‌های بازی هر چه سریعتر بهینه بشند با مکسول و پاسکال.

در DirectX 11 این برتری AMD کمتر خودش رو نشون میداد، به دلیل high-level بودن DirectX 11 و محدود بودن بهینه سازی‌ به درایور.


پس به طور خلاصه در DirectX 12 نقش بازیساز در بهینه سازی خیلی بیشتر میشه و نقش انویدیا و AMD کمتر.

بازی DOOM رو مثال میزنم. از Vulkan استفاده کرده که low-level API به حساب میاد مثل DirectX 12 و بنچمارک‌های AMD خیلی بهتر بوده.
بازیساز نه تنها Async compute رو فقط در AMD فعال کرده، بلکه از Rendering Path بهینه با AMD و Shader Intrinsic مخصوص AMD استفاده کرده.

کلی بهینه سازی low-level مخصوص کارت‌های AMD توسط سازنده‌ی بازی انجام شده. چرا خبری از این بهینه سازی‌ها در انویدیا نیست؟ سلطه‌ی AMD بر کنسول!

در DirectX 12 میدان مبارزه‌ تغییر کرده و سرنوشت انویدیا گره خورده به سازندگان بازی.

اسلایدها از منابع زیر: 

Advanced Rendering with DirectX 11 and DirectX 12 (presented by NVIDIA) . فایل PDF.

Practical DirectX 12 - Programming Model and Hardware Capabilities . فایل PDF.
کنفرانس مشترک انویدیا و AMD

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs . فایل PDF

 

آپدیت 1:

در سایت انویدیا در بخش Developer اطلاعات تازه‌ای قرار داده شده در مورد DirectX 12.
به طور خلاصه، انویدیا برنامه‌نویسان بازی رو مسئول عملکرد بد DirectX 12 در بازی‌های اخیر می‌دونه.

لینک اول : https://developer.nvidia.com/dx12-dos-donts-updated

نقل قول

As DX12 is still a hardware abstraction, admittedly at a lower level than DX11, the driver still needs to map the DX12 API to the underlying hardware, as not all DX12 API usage patterns run great on all hardware. It is therefore necessary to cater for the strength and weaknesses of different hardware vendors.

انویدیا به ضرورت بهینه سازی مجزا در DirectX 12 اشاره می‌کنه به دلیل معماری متفاوت انویدیا و AMD و توجه به نقاظ ضعف و قدرت هر معماری.


لینک دومhttps://developer.nvidia.com/dx12-dos-and-donts

نقل قول

The DX12 API places more responsibilities on the programmer than any former DirectX API.

مسئولیت برنامه‌نویس در DirectX 12 بیشتر شده.

نقل قول

Likewise illegal API usage won’t be caught or corrected by the DX-runtime or the driver

نقش درایور در DirectX 12 کاهش پیدا کرده.

نقل قول

We have seen redundant barriers and associated wait for idle operations as a major performance problem for DX11 to DX12 ports.

نقل قول

Minimize the use of barriers and fences.
The DX11 driver is doing a great job of reducing barriers – now under DX12 you need to do it.
Any barrier or fence can limit parallelism.

انویدیا یکی از بزرگترین عوامل عملکرد بد DirectX 12 در بازی‌های اخیر رو استفاده‌ی بیش از اندازه‌ی برنامه‌نویسان از barriers و fences می‌دونه.

وظیفه‌ی barrier و fence در DirectX:
 http://www.gamedev.net/topic/671719-d3d12-barriers-and-fences/?view=findpost&p=5251948

در پایان صفحه هم جدول مقایسه‌ی پشتیبانی سخت‌افزاری کارت‌های انویدیا از DirectX 12 قرار داده شده:

G2MHA.png

ویرایش شده توسط Core_i6
لینک به دیدگاه
Share on other sites

  • 4 هفته بعد...
در در 1395/08/15, 20:47:26، Core_i6 گفته است :

بررسی دلایل ضعف انویدیا در DirectX 12:

کاهش نقش درایور.

درایور در DirectX 11 وظایف مهم و مختلفی بر عهده داره ( شکل 3 ). 
در DirectX 12 نقش و تاثیر درایور خیلی کمتر میشه ( شکل 1 و 2 ) و خود بازیساز باید این وظایف و عملکردها رو در انجین بازی اعمال کنه (شکل 4 ).

انویدیا که در DirectX 11 بهترین درایور رو داشت، حالا باید در DirectX 12 امیدش به سازنده ی بازی باشه تا این وظایف سابق درایور رو به خوبی در انجین بازی اعمال کنه.

(شکل 1)
EduxV.png

( شکل 2)
nCTHG.png

( شکل 3)
q8r1m.png

( شکل 4)
g5fni.png

 

DirectX 12 نیاز به بهینه سازی مجزا برای هر معماری دارد. (شکل 1 و 5 و 6 )

در کنفرانس مشترک انویدیا و AMD بارها و بارها تاکید شد که بخش‌های مختلف DirectX 12 نیاز به کدنویسی و بهینه سازی مجزا و مخصوص هر معماری دارند. 
معماری کارت‌های AMD و انویدیا متفاوته. در نتیجه یک code path یکسان در هر دو به خوبی جواب نمیده.

( شکل 1)
EduxV.png
( شکل 5)
U5WfV.png

( شکل 6)
WnMG7.png

 

پشتیبانی سخت افزاری ضعیف از برخی قابلیت ها. (شکل 7 )

Async Compute در مکسول و کپلر پشتیبانی نمیشه.
در بقیه‌ی ویژگی ها هم در برخی برتری با انویدیا  و در برخی برتری با AMD هستش.

( شکل 7)
9bvPk.png

 

سلطه‌ی AMD بر کنسول.

کاهش نقش درایور و نیاز بخش‌های مختلف DirectX 12 به بهینه سازی مجزا، مشکل AMD هم هست.
ولی چون API های low-level در بازی فقط در کنسول استفاده می‌شدند و فقط شرکت AMD گرافیک و cpu کنسول‌ها رو تامین می‌کنه،
پس هم برنامه‌نویس‌ها تجربه‌ی بیشتری دارند با سخت افزار AMD در سطح low-level و هم انجین‌های بازی از پایه و اساس بهینه شدن برای معماری GCN. 

در حالی که انویدیا باید از ابتدا آموزش بده به بازیسازها برای استفاده‌ی بهینه از معماریش و مطمئن بشه که انجین‌های بازی هر چه سریعتر بهینه بشند با مکسول و پاسکال.

در DirectX 11 این برتری AMD کمتر خودش رو نشون میداد، به دلیل high-level بودن DirectX 11 و محدود بودن بهینه سازی‌ به درایور.


پس به طور خلاصه در DirectX 12 نقش بازیساز در بهینه سازی خیلی بیشتر میشه و نقش انویدیا و AMD کمتر.

بازی DOOM رو مثال میزنم. از Vulkan استفاده کرده که low-level API به حساب میاد مثل DirectX 12 و بنچمارک‌های AMD خیلی بهتر بوده.
بازیساز نه تنها Async compute رو فقط در AMD فعال کرده، بلکه از Rendering Path بهینه با AMD و Shader Intrinsic مخصوص AMD استفاده کرده.

کلی بهینه سازی low-level مخصوص کارت‌های AMD توسط سازنده‌ی بازی انجام شده. چرا خبری از این بهینه سازی‌ها در انویدیا نیست؟ سلطه‌ی AMD بر کنسول!

در DirectX 12 میدان مبارزه‌ تغییر کرده و سرنوشت انویدیا گره خورده به سازندگان بازی.

اسلایدها از منابع زیر: 

Advanced Rendering with DirectX 11 and DirectX 12 (presented by NVIDIA) . فایل PDF.

Practical DirectX 12 - Programming Model and Hardware Capabilities . فایل PDF.
کنفرانس مشترک انویدیا و AMD

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs . فایل PDF

سلام و خیته نباشی برادر  دمت گرم

لینک به دیدگاه
Share on other sites

در 36 دقیقه قبل، behnamalizade69 گفته است :

سلام و خیته نباشی برادر  دمت گرم

دوست خوبم

متن اول تاپیک رو با کلی عکس نقل قول نکن !!!

توی pc مشکلی نیست ( گرچه بازم جالب نیست )  اما توی گوشی باید چند بار صفحه گوشی رو لمس کنی تا آخرش بتونی یه جمله بخونی !!!

 

مرسی

لینک به دیدگاه
Share on other sites

در ۱ ساعت قبل، behnamalizade69 گفته است :

سلام و خیته نباشی برادر  دمت گرم

 

در 21 دقیقه قبل، big VULTURE گفته است :

دوست خوبم

متن اول تاپیک رو با کلی عکس نقل قول نکن !!!

توی pc مشکلی نیست ( گرچه بازم جالب نیست )  اما توی گوشی باید چند بار صفحه گوشی رو لمس کنی تا آخرش بتونی یه جمله بخونی !!!

 

مرسی

بله 

اساسا نیازی نیست پست اول نقل قول بشه. چون آغاز گر تاپیک معمولا تاپیک رو دنبال می کنه.

...........

سپاس از آغاز گر تاپیک

آیا دایرکت اکس 12 و اصولا دایرکت اکس جایی جز بازی هم کاربرد داره؟

در برخی از برنامه هایی که استفاده کرده ام لازم بوده دایرکت اکس نصب بشه.

لینک به دیدگاه
Share on other sites

در 26 دقیقه قبل، سعید بهمنیان گفته است :

 

بله 

اساسا نیازی نیست پست اول نقل قول بشه. چون آغاز گر تاپیک معمولا تاپیک رو دنبال می کنه.

...........

سپاس از آغاز گر تاپیک

آیا دایرکت اکس 12 و اصولا دایرکت اکس جایی جز بازی هم کاربرد داره؟

در برخی از برنامه هایی که استفاده کرده ام لازم بوده دایرکت اکس نصب بشه.

بله. همونطور که فرمودید برنامه های دیگه هم استفاده می کنن از API های مختلفش.

ویکیپدیا مفصل توضیح داده در مورد DirectX.
https://en.wikipedia.org/wiki/DirectX

DirectX از قسمتهای مختلفی تشکیل میشه:
Direct3D (D3D): for drawing 3D graphics.
Direct2D: for 2D graphics.
DirectWrite: for fonts.
DirectX Media: multimedia playback and streaming media
XACT3 higher-level audio API
XAudio2: low-level API for audio

 

لینک به دیدگاه
Share on other sites

  • 2 هفته بعد...

آپدیت:

در سایت انویدیا در بخش Developer اطلاعات تازه‌ای قرار داده شده در مورد DirectX 12.
به طور خلاصه، انویدیا برنامه‌نویسان بازی رو مسئول عملکرد بد DirectX 12 در بازی‌های اخیر می‌دونه.

لینک اول : https://developer.nvidia.com/dx12-dos-donts-updated

نقل قول

As DX12 is still a hardware abstraction, admittedly at a lower level than DX11, the driver still needs to map the DX12 API to the underlying hardware, as not all DX12 API usage patterns run great on all hardware. It is therefore necessary to cater for the strength and weaknesses of different hardware vendors.

انویدیا به ضرورت بهینه سازی مجزا در DirectX 12 اشاره می‌کنه به دلیل معماری متفاوت انویدیا و AMD و توجه به نقاظ ضعف و قدرت هر معماری.


لینک دومhttps://developer.nvidia.com/dx12-dos-and-donts

نقل قول

The DX12 API places more responsibilities on the programmer than any former DirectX API.

مسئولیت برنامه‌نویس در DirectX 12 بیشتر شده.

نقل قول

Likewise illegal API usage won’t be caught or corrected by the DX-runtime or the driver

نقش درایور در DirectX 12 کاهش پیدا کرده.

نقل قول

We have seen redundant barriers and associated wait for idle operations as a major performance problem for DX11 to DX12 ports.

نقل قول

Minimize the use of barriers and fences.
The DX11 driver is doing a great job of reducing barriers – now under DX12 you need to do it.
Any barrier or fence can limit parallelism.

انویدیا یکی از بزرگترین عوامل عملکرد بد DirectX 12 در بازی‌های اخیر رو استفاده‌ی بیش از اندازه‌ی برنامه‌نویسان از barriers و fences می‌دونه.

وظیفه‌ی barrier و fence در DirectX:
 http://www.gamedev.net/topic/671719-d3d12-barriers-and-fences/?view=findpost&p=5251948

در پایان صفحه هم جدول مقایسه‌ی پشتیبانی سخت‌افزاری کارت‌های انویدیا از DirectX 12 قرار داده شده:

G2MHA.png

لینک به دیدگاه
Share on other sites

سلام

در در 1395/09/09, 00:49:56، big VULTURE گفته است :

دوست خوبم

متن اول تاپیک رو با کلی عکس نقل قول نکن !!!

توی pc مشکلی نیست ( گرچه بازم جالب نیست )  اما توی گوشی باید چند بار صفحه گوشی رو لمس کنی تا آخرش بتونی یه جمله بخونی !!!

 

مرسی

سلام ، مرسی از تذکر زیباتون ، رعایت مس شه . ممنون

لینک به دیدگاه
Share on other sites

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
ارسال پست در این تاپیک...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

 اشتراک گذاری

×
  • اضافه کردن...