هفته‌ی پیش مقاله‌ای در خصوص دایرکت ایکس 12 و ماجرای عملکرد خوب AMD در برابر انویدیا در اولین بنچ‌مارک مبتنی بر دایرکت ایکس 12 منتشر کردم و علت احتمالی بروز مشکلات را تحلیل کردم. امروز بالاخره حدس‌ها تأیید شده و در ادامه خواهیم دید که علل بروز مشکل چیست.

علاقه‌مندان به فناوری: اینتوتک به جهت حذف تبلیغات، نیازمند حمایت مالی خوانندگان است. وجه دلخواه خود را به شماره کارت زیر واریز نمایید.

6219-8610-2728-0188

با تشکر از حمایت‌های گرم شما

انویدیا و بهانه‌های عجیب

انویدیا به بازی Ashes of the Singularity توجه نشان نداده و مدعی است که این بازی عملکرد کلی دایرکت ایکس 12 را آشکار نمی‌کند. انویدیا آنتی-الیاسینگ با الگوریتم MSAA در این بازی را ضعیف و پر از باگ گزارش کرده و معتقد است که باید آن را غیرفعال کرد.

آکسید گیمز ادعای انویدیا را رد کرده و معتقد است MSAA در این بازی مشکل خاصی ندارد. کدهای بازی توسط مایکروسافت، انویدیا و AMD بررسی شده و مایکروسافت مهر تأیید بر آن زده است. MSAA در دایرکت ایکس 11 و 12 از مسیر یکسانی دنبال می‌‎شود. بنابراین ادعای انویدیا قویاً رد می‌شود.

گزارش باگ و بهانه‌جویی به جای پذیرفتن تفاوت معماری تراشه‌ها!

روند اعتراضات انویدیا و AMD به عناوین و بنچ‌مارک‌های خاص در چند سال اخیر همواره ادامه داشته و متأسفانه تفاوتی که در معماری محصولات این دو کمپانی وجود دارد، کاری کرده که برخی عناوین توسط محصولات انویدیا و برخی دیگر توسط پردازنده‌های گرافیکی ای‌ام‌دی اجرای روان‌تر و بهتری داشته باشند. قطعاً بازی جالب آکسید گیمز هم با برخی معماری‌ها سازگاری بیشتری دارد اما اعتراض و نکوهش به سبک انویدیا، به نظر من صحیح نیست.

شاید بازی Ashes of the Singularity عنوان نوظهوری باشد اما یک بنچ‌مارک کامل است چرا که هنگام اجرای آن، جنبه‌های مختلف بازی مثل هوش مصنوعی، صدا، فیزیک و گرافیک در چند مرحله اجرا و ارزیابی می‌شود. داده‌های زیادی ذخیره و پردازش می‌شود و مشخص است که سازنده در طراحی بخش بنچ‌مارک، دقت بالایی به خرج داده است.

بخشی هم برای سنجش توانمندی پردازنده در نظر گرفته شده است و بنچ‌مارک خوبی برای پردازنده‌های مختلف خواهد بود.

و بخشی دیگر از حقایق و اصرار انویدیا برای اضافه کردن کدهای خاص

و اطلاعات جدیدی که توسط یکی از کارمندان آکسید گیم به دست آمده:

انویدیا درخواست حذف برخی تنظیمات بنچ‌مارک را کرده بود و زمانی که آکسید گیمز این درخواست را رد کرد، متهم به برخورد شخصی با انویدیا شد! ترافیک ایمیل‌های رد و بدل شده بین آکسید گیمز و انویدیا بیش از AMD است و این موضوع نشان می‌دهد که انویدیا با این کمپانی هم مثل دیگر کمپانی‌های ساخت بازی و بنچ‌مارک، همکاری نزدیکی داشته است و در حقیقت اگر بهینه‌سازی خاصی صورت گرفته باشد، برای محصولات انویدیاست و نه AMD!

تنها کدی که ویژه‌ی یکی از سازندگان کارت گرافیک به بنچ‌مارک Ashes of the Singularity اضافه شده، مربوط به انویدیاست و چیزی نیست جز مقوله‌ی بحث‌برانگیز محاسبه‌ی آسنکرون یا غیر‌هم‌زمان. فعال کردن این قابلیت ویژه که موجب افزایش سرعت رندر می‌شود، مفید است ولیکن در مورد محصولات انویدیا اثر بسیار بدی روی عملکرد می‌گذارد!

برای آشنایی با محاسبه‌ی غیر‌هم‌زمان در کارت گرافیک‌هایی با معماری GCN به مقاله‌ی تخصصی زیر مراجعه کنید:

پشتیبانی کامل از دایرکت ایکس 12 فریبی ظاهری!

دقت کنید که وجود موتور محاسباتی غیرهم‌زمان در حال حاضر جزء هیچ یک از سطح قابلیت‌های دایرکت ایکس 12 نیست! لذا محصولات AMD با پشتیبانی نکردن از سطح قابلیت‌های FL 12_1 ضعیف‌تر و قدیمی‌تر از مکسول انویدیا به نظر می‌رسند اما اگر از ACE به درستی استفاده شود، وضعیت دگرگون می‌شود، همان‌طور که در بنچ‌مارک Ashes شاهد بودیم.

در بنچ‌مارک Ashes تخمین فعلی این است که حدود 20 درصد فرآیند پردازشی به کمک شیدرهای محاسباتی صورت می‌گیرد و قرار است در نسخه‌ یا نسخه‌های بعدی، این رقم به بیش از 50 درصد برسد و حتی ممکن است تا 5 سال بعد، تمام فرآیند توسط شیدرهای محاسباتی انجام شود!

در درایور کارت گرافیک‌های انویدیا، استفاده از ACE مجاز و امکان‌پذیر عنوان شده است و انویدیا اعلام کرده که کارت گرافیک‌های سری 900 با معماری مکسول 2 دارای 1 صف پردازش گرافیک و 31 صف محاسباتی هستند. در معماری GCN هشت واحد ACE وجود دارد و هر یک 8 صف محاسباتی را پردازش می‌کنند. بنابراین در کنار یک صف محاسبه‌ی گرافیک، 64 صف محاسباتی وجود دارد. متأسفانه انویدیا در مورد جزئیات پیاده‌سازی ACE صحبتی نکرده و مشخص نیست که دسترسی به آنها چگونه است و چه مقدار در عملکرد کلی تأثیر می‌گذارد.

مکسول 2 هم از ACE پشتیبانی می‌کند

رابرت هالوک سخن‌گوی کمپانی AMD زمانی اعلام کرده بود که مکسول از محاسبه‌ی غیرهم‌زمان پشتیبانی نمی‌کند و پس از آن اغلب کاربران حرفه‌ای، منتقدین و تحلیل‌گران بر این باور بودند که انویدیا ضعف مکسول را پنهان کرده است. از طرفی در صفحه‌ی 23 راهنمای معماری مکسول برای توسعه‌دهندگان به اولویت‌بندی و سوییچ هم‌زمان اشاره شده است و انویدیا هم اخیراً به وب‌سایت‌های تخصصی تذکر داده که مکسول 2 قطعاً از ACE پشتیبانی می‌کند.

و آزمایش ساده‌ی یکی از کدنویسان فروم بیاند‌تری‌دی، وی برای بررسی صحت ادعای انویدیا و مقایسه با محصولات ای‌ام‌دی کد ساده‌ای نوشته که صف محاسبه و گرافیک را پر می‌کند و زمان اجرای دستورات را اندازه می‌گیرد. شاید کد ساده‌ای که وی تهیه کرده، گویای سرعت واقعی کارت گرافیک‌های مختلف نباشد اما برای تشخیص صحت ادعای انویدیا، کافی است.

اگر ACE به درستی پیاده‌سازی شده باشد، اجرای 31 دستور محاسباتی و 1 دستور گرافیکی به صورت هم‌زمان و بدون تأخیر افزایشی صورت می‌گیرد و اگر ACE در کار نباشد، اضافه کردن هر دستور جدید به صف دستور، موجب افزایش زمان اجرا خواهد شد. فرآیند ایجاد صف بزرگ دستورات، خود به صورت سریال پیاده‌سازی شده و این یکی از اشکالات بنچ‌مارک است.

در محصولات AMD و در حقیقت دو مدل رده اول R9 390X و R9 Fury X انتظار داریم که 64 دستور اول با سرعت یکسان اجرا شوند و پس از آن زمان پایان اجرای دستورات بیشتر می‌شود و پله‌ی دوم شکل می‌گیرد.

در مکسول 2 و در حقیقت کارت گرافیک قدرتمند GTX 980 Ti تا زمانی که تعداد دستورات کمتر از 31 باشد، زمان اجرای دستورات تقریباً ثابت است، با اضافه شدن تعداد دستورات، زمان اجرا افزایش پیدا کرده و تقریباً تا مرز 62 دستور، پله‌ی دوم را تشکیل می‌دهد. پله‌های بعدی هم نتیجه‌ی اضافه کردن واحدهای 32 تایی دستور هستند:

سرعت اجرای صف دستورات توسط GTX 980 Ti

سرعت اجرای صف دستورات توسط GTX 980 Ti

مدت زمان اجرای دستورات در پله‌ی آخر یعنی 128 دستور، حدود 60 میلی‌ثانیه است و در پله‌ی اول فقط 29 میلی‌ثانیه.

کارت گرافیک R9 Fury X دستورات را به صورت موازی و مستقل اجرا کرده و مدت زمان اجرای دستور اول تا دستور 128 تقریباً 50 میلی‌ثانیه و ثابت است.

کارت گرافیک R9 390X هم 128 دستور اول را در زمان 52 میلی‌ثانیه اجرا می‌کند.

افزایش مدت زمان اجرا پس از 64 دستور اول، بسیار کم است.

بنابراین اگر تعداد دستورات بسیار زیاد باشد و در حقیقت اگر از پله‌ی سوم یعنی 96 درصد فراتر برویم، برتری GCN روشن می‌شود. در بازی‌های سنگین، تعداد دستورات به مراتب بیشتر از بنچ‌مارک ساده‌ای است که مطرح شد، بنابراین کارت گرافیک‌های AMD و معماری GCN از نظر محاسبات غیرهم‌زمان برتری دارند. حتی اگر انویدیا مشکلات موجود در درایور و بنچ‌مارک Ashes را شناسایی و برطرف کند هم GCN با موتورهای محاسباتی بیشتر، موفق‌تر است.