تبلیغات ۷۲۰ در ۹۰

منتل چیست و AMD با چه هدفی آن را معرفی کرده است؟

در برنامه‌نویسی و تولید بازی‌های کامپیوتری از واسطهای برنامه‌نویسی استفاده می‌شود. برای مطالعه‌ی بیشتر در خصوص واسط برنامه‌نویسی که یک مثال بسیار مهم و کاربردی آن DirectX است، به مقاله‌ی دانش‌نامه‌ای اینتوتک سری بزنید:

 

اما به Mantle بپردازیم. ای‌ام‌دی مدت‌هاست که به hUMA و HSA فکر می‌کند و می‌خواهد دسترسی به بخش‌های مختلف سخت‌افزار و ارتباط آنها با هم بهینه باشد. یکی از راهکارها معرفی منتل است.

Mantleبهینه است چرا که سطح دسترسی پایین‌تری دارد.

منتل برای دسترسی سطح پایین به سخت‌افزار که شامل پردازنده‌ی اصلی و گرافیکی و رم سیستم است طراحی شده، البته دسترسی سطح پایین کار برنامه‌نویس را کمی مشکل می‌کند ولیکن AMD به این مهم هم توجه زیادی داشته و کارها را برای سازنده‌ی بازی ساده کرده است. بازی سیویلایزیشن جدید یعنی Civilization: Beyond Earth یکی از عناوینی است که از منتل استفاده می‌کند. لذا تصمیم گرفتم به نتیجه‌ی بررسی این بازی و بنچ‌مارک‌هایی یکی از وب‌سایت‌های معتبر سری زده و در خصوص مقیاس‌پذیری منتل برایتان بنویسم.

منظورم از مقیاس‌پذیری در مورد بازی‌ و کارت گرافیک این است که ببینیم با استفاده از چند کارت گرافیک آیا عملکرد چند برابر می‌شود و یا درصد افزایش عملکرد بسیار کم است.

با دو کارت گرافیک، سرعت اجرای بازی دو برابر نمی‌شود!

به طور کلی وقتی از 2 کارت گرافیک استفاده کنیم، عملکرد سیستم دو برابر نمی‌شود! به هر حال برای تقسیم بار پردازشی بین دو کارت گرافیک به منابع سخت‌افزاری بیشتری نیاز داریم. از طرفی رم و پردازنده‌ی اصلی را نمی‌توان به طور کامل استفاده کرد. مثلاً پردازنده‌ی 8 هسته‌ای FX-8350 با وجود آنکه بسیار سریع است و 8 هسته‌ی قدرتمند دارد، نسبت به 4 هسته‌ای Core i7-4770K ناتوان ظاهر می‌شود. عموماً در بازی‌ها پردازنده‌های اینتلی بهتر هستند اما منتل در برخی بنچ‌مارک‌ها کاری می‌کند که 8 هسته‌ای‌های ای‌ام‌دی به اینتلی‌های 4 هسته‌ای نزدیک شده و حتی گاهی بهتر ظاهر شوند.

تقسیم کار بین کارت گرافیک‌ها

با AFR فریم‌ها بین دو کارت گرافیک تقسیم می‌شوند.

بیشتر بازی‌ها برای تقسیم کار بین چند پردازنده‌ی گرافیکی از روشی موسوم به رندر کردن تناوبی فریم یا AFR استفاده می‌کنند. در این روش فریم‌های متوالی بین پردازنده‌های مختلف تقسیم می‌شوند. مثلاً کارت گرافیک اصلی فریم‌های شماره‌ی 1، 3، 5 و 7 را رندر می‌کند و کارت گرافیک دوم، فریم‌های زوج را پردازش می‌کند. این روش تقسیم ساده است و معمولاً نتیجه‌ی خوبی و یکنواختی دارد؛ اما معمولاً نه همیشه! گاهی پدیده‌ی مایکرواستاتریک یا وقفه‌های گذرا بسیار شدید می‌شوند و اجرای روان بازی را ناممکن می‌کنند.

در SFR تکه‌های یک فریم بین کارت گرافیک‌ها تقسیم می‌شود.

Firaxis سازنده‌ی بازی سیویلازیشن: بیاند ارث سراغ یک روش دیگر رفته است: SFR یا کردن قطعات فریم. در این روش فریم که متشکل از بخش‌های کوچک مربعی است، به تکه‌های کوچک‌تر تقسیم شده و هر تکه‌ی کوچک توسط یکی از پردازنده‌های گرافیکی رندر می‌شود. در اولین روزهای معرفی SLI انویدیا و Crossfire ای‌ام‌دی، امکان انتخاب SFR یا AFR وجود داشت اما چند سال است که دیگر خبری از انتخاب نیست! حالت پیش‌فرض و در واقع تنها حالت AFR است چرا که عملکرد این روش بهتر است و سرعت اجرای بازی را بیشتر می‌کند.

بازی سیویلایزیشن از رندر کردن قطعات فریم توسط چند کارت گرافیک استفاده می‌کند

بازی سیویلایزیشن از رندر کردن قطعات فریم توسط چند کارت گرافیک استفاده می‌کند

اما Firaxis سراغ SFR رفته به این علت که موضوع تأخیر یا همان مایکرواستاترینگی که به آن اشاره کردم، یک معضل جدی است. منتل در تقسیم بهتر کار ایفای نقش می‌کند و باید دید که SFR در بازی سیویلایزشن: بیاند ارث و اجرا به کمک چند کارت گرافیک، چه عملکردی نشان می‌دهد؟

روش فعال کردن Mantle در بازی‌های مختلف

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

در بازی بتلفیلد تصویر زیر گویای همه‌چیز است:

فعال کردن منتل در بازی بتلفیلد 4

فعال کردن منتل در بازی بتلفیلد 4

در بازی Thief هم پیش از اجرا می‌بایست تیک گزینه‌ی Mantle را اضافه کرد:

فعال کردن منتل در بازی Thief

فعال کردن منتل در بازی Thief

در بازی سیویلازیشن بیاند ارث، در پوشه‌ی بازی فایلی به نام GraphicsSettings.ini وجود دارد. آن را باز کنید و عبارت mGPU = 0 را به mGPU = 1 تغییر دهید.