AMD و عرضهی واسط جدید برنامهنویسی Mantle برای 100 هزار ترسیم در یک فریم
اولین سوال این است که چرا Mantle به وجود آمده؟ چرا یک واسط جدید برنامهنویسی؟ این سوالی است که Guennadi Riguer در نشست اخیر AMD با سازندگان بازی به آن پاسخ میدهد. پاسخ او به صورت خلاصه این است که منتل دقیقاً همان واسطی است که یک سازندهی بازی لازم دارد، واسطی که اجازهی دسترسی کاملتر به سختافزار و مخصوصاً پردازندهی گرافیکی را به او میدهد. از نظر استفاده از پردازندهی اصلی نیز اوضاع بهبود مییابد.
در سالهای اخیر بازیهای کامپیوتری به شدت پیشرفت کرده و از نظر جزئیات گرافیکی، زیباتر و طبیعیتر شدهاند. اما یک اشکال اساسی این است که حالا یک بازیخور با خودش میگوید: "چه قدر بازیها شبیه هم شدهاند!" سازندگان بازی برای راحتی کار از APIهایی استفاده میکنند که سادهتر بوده و روشهای تکراریتری دارند و در نهایت با زحمت کمتر یک بازی جدید عرضه میشود.
حضور یک واسط نرمافزارنویسی یا به اختصار API جدید راه حل این مشکل است. در حقیقت منتل یک واسط نرمافزارنویسی جدید و سطح پایین است که نسبت به بسیاری از واسطهای موجود، از نظر اجازهی دسترسی سطح پایین به سختافزار، عمیقتر است. دسترسی سطح پایینتر به سختافزار، استفادهی بهینهتر از آن برای اجرای کدهای جالبتر و خلاقانهتر را به سازندگان میدهد و لذا میتوان منتل را چارهی کار سازندگان بازیهای خوب دانست.
روش اجرای دستورات در حال حاضر چیزی شبیه به تصویر زیر است:
در این روش نرمافزارهای مختلف دستورات را به صفهای گوناگونی که پیش روی پردازندهی گرافیکی تشکیل شده ارسال میکنند. یک صف تنها به پردازش گرافیک اختصاص دارد. صف دیگر تنها برای محاسبات تشکیل شده و بدین ترتیب سایر صفوف نیز به یک کار خاص مربوط میشوند.
به سمت 100,000 ترسیم در یک فریم
در واسط منتل بهینهسازیهای مختلفی صورت گرفته است، برخی برای معماری پردازندههای گرافیکی نسل جدید یعنی GCN و برخی دیگر برای هر معماری دیگری است. از نظر مصرف پردازندهی اصلی نیز اوضاع بهینه شده است.
طبق اسلاید زیر مشخص است که در منتل حافظهی پردازندهی گرافیکی از گزارهی اجرایی مستقل است و بیهوده مشغول نمیشود.
یکی از تفاوتهای بزرگ منتل در تعداد Draw یا ترسیمهاست. در حال حاضر در بیشتر بازیها در یک فریم حدود 3 تا 5 هزار ترسیم اتفاق میافتد. تنها برخی بازیها رکورد 10 هزار ترسیم را شکستهاند و این در حالی است که ایامدی برای 100 هزار ترسیم در یک فریم، دندان تیز کرده، آن هم با سرعت فریمی در حد منطقی و معمول، این کمپانی حتی مدعی شده که سازندگان بازی با انجام سایر بهینهسازیها میتوانند به ارقام بالاتر هم برسند.
اما تعداد ترسیمها چه اثری روی بازیهای پیسی دارد؟ افزایش تعداد ترسیمها موجب عرضهی نرمافزارهایی سریعتر با جلوههای تصویری جالبتر و گرافیک واقعیتر میشود. محیط پیرامون کاملتر شده و گرافیک زیباتر خواهد شد. مخصوصاً اگر سختافزار مبتنی بر معماری GCN باشد.
با توجه به اینکه پردازندههای گرافیکی دو کنسول ایکسباکس وان و پلیاستیشن 4 نیز مثل کارت گرافیکهای جدید ایامدی از معماری GCN استفاده میکنند، میتوان بازیهای مشترک پیسی و کنسول را برای این معماری خاص بهینه کرد از تکنیکهای خلاقانه و جدید استفاده نمود.
به عنوان مثال به تصویر زیر دقت کنید:
میتوان در فضای آدرس پردازندهی گرافیکی دستکاری کرد بدین صورت که فضایی مجازی برای دادهها در نظر گرفت (Virtual Allocation) و سپس با استفاده از جدول Remapping Table مجدداً آدرسها را تعیین موقعیت کرد. در این روش فضای آدرس، دادههای تکراری کمتری را شامل میشود.
یکی دیگر از مزایای منتل در مورد پردازندههای اصلی چند هستهای مصداق دارد. در حال حاضر پردازندههای 4، 6 و 8 هستهای زیادی در بازار وجود دارد، اما در بیشتر نرمافزارها و مخصوصاً نرمافزارهای گرافیکی، تنها چند هسته مورد استفاده قرار میگیرند. یکی از مشکلات مدیریت استفاده از حافظه است چرا که در کنسولهای بازی با حافظهی کمتر، به طور معمول میتوان کارایی بالاتری را تجربه کرد. لذا مشکل مدیریت حافظه در پیسی باید حل شود.
کارایی Mantle
منتل برای سیستمهای معمولیتر و کممصرفتر در نظر گرفته شده است. در سیستمهای کممصرفی به شکل تبلت و اولترابوک، به راهی بهینه برای استفاده از پردازندهی اصلی و گرافیکی نیاز داریم. به همین منظور است که منتل در یک موقعیت ویژه جای میگیرد تا از این سیستمها بهترین استفاده را ببرد.
استدیوی بازیسازی Oxide Games تجربه کار با منتل را در نشست AMD برای حضار توضیح داد. منتل در انجام امور دستهای نتایج جالبی داشته است، در واقع به غیر از ترسیمهای یک فریم، هر نوع دستور دیگری که به پردازندهی گرافیکی ارسال شود، در تعداد بالاتری قابل اجراست. این تیم انتظار دارد که در سال 2015 مرز 300 هزار فرمان دستهای و در سال 2018 مرز 1 میلیون فرمان دستهای را با سرعت 60 فریم بر ثانیه پشت سر بگذارد.
ارتباط همزمان نرمافزار با دو پردازندهی گرافیکی در تصویر زیر نمایش داده شده است:
AMD و عرضهی واسط جدید برنامهنویسی Mantle برای 100 هزار ترسیم در یک فریم
به کمک منتل رابطهی پردازندهی اصلی و گرافیکی راحتتر شده و راه برای فراخوانی کدها بین پردازندهی اصلی و گرافیکی هموار شده است.
منتل از نظر هزینه هم ارزان است. بزرگترین مزیت منتل قیمت ثابت آن است. تنها کاری که باید انجام داد، انتقال واسط درایوری است و پس از آن نیازی به انجام مراحل اضافی برای پشتیبانی از منتل نیست. AMD از اینکه صنعت با استفاده از تکنیکها و واسطهای جدید برنامهنویسی قدمی رو به جلو بر میدارد، ابزار خشنودی کرده است.
تأخیر کمتر
به کمک منتل نرمافزارها و بازیهایی که با سرعت کمتری اجرا میشوند هم به نظر سریعتر میآیند چرا که تأخیر وضعیت بهتری پیدا میکند. حتی استفاده از جلوههای بصری خاصی مثل ماتی صحنه در اثر حرکت و سایر افکتهای فیلمی که قبلاً با توجه به کاهش سرعت اجرا مشکل و بعید به نظر میرسید هم حالا امکانپذیر است.
در این نشست یک پیشنمایش از کشتیهای جنگی به نمایش درآمد که در آن صدها کشتی با توپهای لیزری به هم شلیک میکردند. تمام صحنه به صورت آنی رندر شده و کاملاً روان اجرا میشد.
در نهایت باید این نکته را مجدداً ذکر کرد که منتل یک API خاص برای محصولات ایامدی و معماری دو کنسول نسل بعدی نیست بلکه برای تمام تراشههای گرافیکی که انویدیا و ایامدی تولید کردهاند، کاربرد دارد. این تکنولوژی متن باز است و همه میتوانند از آن بهره ببرند.
نظرات