00Amin

دلایل برتری DirectX 11 نسبت به نسخه های قبل ازان

Recommended Posts

قبل از هرچیزنگاه اجمالی به DirectX و تاریخچه تولید ان میاندازیم .


[size=18][color=green]DirectX[/color][/size]


[url=http://gallery.military.ir/albums/userpics/Directx.jpg][img]http://gallery.military.ir/albums/userpics/thumb_Directx.jpg[/img][/url]


مجموعه ای از رابط های برنامه نویسی یا API هاست (Application Programming Interfaces) که به منظور بهبود بخشیدن اجرای بازی ها, صفحات فعال وب و سایر برنامه های مالتی مدیایی که بر روی سیستم عامل های ویندوز اجرا می شوند ساخته شده است. این برنامه پلی است برای ارتباط برقرار کردن میان سخت افزار و نرم افزار. اجزای مختلف DirectX شامل DirectX Graphics, DirectInput, DirectPlay, DirectSound, DirectMusic, DirectSetup, DirectX Media Objects و... است، که همه با کلمه ی Direct شروع می شوند.


اولین نسخه از DirectX در اواخر سال 1995 برای تشویق سازندگان بازی برای ساخت بازی برای سیستم عامل های ویندوز منتشر شد. قبل از ظهور DirectX اکثر بازی های کامپییوتری برای MS-DOS نوشته می شدند. برای به دست آوردن سرعت مورد نظر برای انیمیشن های real time , تولید کنندگان کارت صدا و Display adapter مجبور بودند درایورهای مختلفی برای Display adapter های مختلف بنویسند که واقعا کار طاقت فرسا و سختی بود.

[size=18][color=green]تاریخچه [/color][/size]
DirectX رابطی را برای دسترسی به frame buffer و ویژگی های پیشرفته Display Adapter فراهم ساخت. این کار باعث بهبود عملکرد قابل توجه ای شد که در رابط استاندارد GDI گرافیکی ویندوزارائه نمی شد. زمانی که DirectX معرفی شد, فروشندگان Display adapter بلافاصله شروع به توسعه ی درایورهای DirectX کردند که توابع سطح پایین سخت افزار خود را در دسترس برنامه قرار می داد.

اگرچه هدف اصلی از ایجاد DirectX توسعه ی صنعت بازی سازی بود اما این مجموعه توانست در سایر زمینه های نرم افزاری نیز بسیار محبوب گردد. به خصوص, Direct3D در بخش مهندسی محبوب گشت و این را مدیون توانایش در ارائه ی گرافیک های سه بعدی با کارایی بالا است که به وسیله ی جدید ترین سخت افزارهای گرافیک سه بعدی ایجاد می شود.

سال تولید و سیستم عاملی را که نسخه های مختلف برای آنها ساخته شده اند:

[img]http://gallery.military.ir/albums/userpics/image-478C_4B0A3546.jpg[/img]



[size=18][color=blue]DirectX 11[/color][/size]
موارد زیر برخی از دلایل برتری DirectX 11 نسبت به نسخه قبل است:
1- [color=blue]بهبود موازی‌سازی[/color]
2- [color=blue]بهبود دقت و پردازش عدد صحیح[/color]
3-[color=blue] پیوستگی محکم بین سایه‌زن‌ها و خط لوله‌های پردازش[/color]
4- [color=blue]بهبود سهولت در برنامه‌نویسی و استفاده مؤثر از حافظه[/color]
[color=green] افزایش حافظه اشتراکی با بهبود دسترسی
بافرهای مصرفی/ الحاقی
نظریه‌های دسترسی مرتب UAV
Compute Dispatch غیرمستقیم
[/color]
[color=red]DIRECTX 10[/color]
http://gallery.military.ir/albums/userpics/i13431_DX10.jpg

[color=red]DIRECTX 11[/color]
http://gallery.military.ir/albums/userpics/i13432_DX11.jpg

بسیاری از ویژگی‌های محاسباتی DirectX 11 خیلی فنی و مربوط به برنامه‌نویسی هستند، بنابراین AMD با انتشار این راهنما درک عمومی از این ویژگی‌ها و اهمیت آن‌ها در کاربردهای مختلف را مشخص کرده است.

[color=green][size=18]محاسبات [/size][size=18]DirectX 11[/size][/color]
DirectX 11 آخرین نسخه استاندارد رابط برنامه‌ریزی از شرکت مایکروسافت است که امکان دسترسی به توانایی‌های پیشرفته نسل بعدی پردازنده‌های گرافیکی را فراهم می‌کند. DirectX 11 یکی از ویژگی‌های اصلی سیستم‌عامل ویندوز هفت است و مایکروسافت قصد دارد در آینده توسط یک به‌روزرسانی نرم‌افزاری آن را برای ویندوز ویستا نیز فراهم کند.

یکی از ویژگی‌های اصلی و جدید DirectX 11 پشتیبانی از حسابگر DirectX است که توسعه‌دهندگان را قادر می‌سازد تا از قدرت پردازش موازی پردازنده‌های گرافیکی امروزی استفاده کنند. این ویژگی به توسعه‌دهندگان برنامه‌های کاربردی اجازه می‌دهد تا محدوده وسیع‌تری از برنامه‌های خود را مبتنی بر پردازش پردازنده گرافیکی فراهم کنند. پیش‌تر بیشتر این برنامه‌ها تنها توسط پردازنده‌ها قابل اجرا بودند، اما اکنون با DirectX 11 توسعه‌دهندگان می‌توانند برنامه‌های خود را مبتنی بر قابلیت‌های پردازشی پردازنده‌های گرافیکی بنویسند تا آن‌ها با سرعت بیشتری توسط پردازنده‌های گرافیکی اجرا شوند (به عبارت ساده‌تر، DirectX 11 برای تکنیک‌های GPGPU بهبود یافته است). برای این منظور، توسعه‌دهندگان باید به برنامه‌ا‌ی که سایه‌زن حسابگر نامیده می‌شود و تنها روی پردازنده گرافیکی قابل اجرا است، دسترسی پیدا کنند. بنابراین آن‌ها می‌توانند از شگردهای فنی گرافیکی جدید مانند Independent Transparency (شفافیت مستقل)، Ray Tracing و اثرات Post-Processing پیشرفته یا تنوع وسیعی از برنامه‌های کاربردی غیرگرافیکی مانند هوش مصنوعی، شبیه‌سازی فیزیک بازی‌ها، Upscaling ویدئویی و Transcoding ویدیویی استفاده کنند.

پردازنده‌های گرافیکی امروزی (GPU) قدرت پردازش بیشتری نسبت به پردازنده‌های امروزی (‍CPU) از نظر قیمت یا قدرت دارند. با این وجود، پردازنده‌های گرافیکی نیز مانند پردازنده‌هایی که برای کاربرد‌های مشخص طراحی می‌شوند، فاقد انعطاف‌پذیری موجود در پردازنده‌های معمولی هستند. اما بیشتر پردازنده‌‌های گرافیکی اخیر دارای ویژگی‌های طراحی جدیدی هستند که موجب انعطاف‌پذیری بیشتر در آن‌ها شده است. در نتیجه در رقابت بین پردازنده‌های معمولی و پردازنده‌های گرافیکی به تدریج پردازنده‌های گرافیکی، برنده رقابت می‌شوند. مزیت دیگر حسابگر DirectX این است که می‌تواند با پردازنده‌های گرافیکی که دارای معماری‌های متفاوت و قابلیت‌های مختلف هستند، کار کند. در حقیقت، رابط برنامه‌ریزی DirectX 11 به وسیله مجموعه‌‌ای از پروفایل‌ها که نسخه‌های سایه‌زن (Shader Models) نامیده می‌شود، موجب این سازگاری می‌شود. هر یک از نسخه‌های سایه‌زن شامل مجموعه کاملی از ویژگی‌های نسخه‌های پایین‌تر هستند.

یکی از مزایای سایه‌زن حسابگر نسبت به دیگر نمونه‌‌ها برای پردازش موازی این هست که یک مجموعه دستورالعمل یکپارچه را با دیگر انواع سایه‌زن‌ها (مانند سایه‌زن‌های پیکسل و سایه‌زن‌های رأس که برای برنامه‌ریزی گرافیک استفاده می‌شوند) تقسیم می‌کند. بنابراین اگرچه سایه‌زن‌های حسابگر ویژگی جدید DirectX 11 هستند، اما برخی از نسخه‌‌های سایه‌زن می‌توانند روی سخت‌افزارهای قدیم اجرا شوند.

مانند:
سایه‌زن نسخه 4 پردازنده‌های گرافیکی مبتنی بر DirectX 10 یا پردازنده‌های گرافیکی جدیدتر
سایه‌زن نسخه 1/4 پردازنده‌های گرافیکی مبتنی بر DirectX 10.1 یا پردازنده‌های گرافیکی جدیدتر
سایه‌زن نسخه 5 فقط پردازنده‌های گرافیکی مبتنی بر DirectX 11

این مسئله باعث می‌شود تا توسعه‌دهندگان بتوانند بین حداکثر سازگاری (انتخاب یک سایه‌زن نسخه پایین‌تر) و ساده‌تر کردن پیشرفت و به حداکثر رساندن کارایی (انتخاب یک سایه‌زن نسخه بالاتر) انتخاب کنند.
بسیاری از شگردهای فنی و الگوریتم‌های قابل توجه فقط روی پردازنده‌های گرافیکی مبتنی بر DirectX 11 که از سایه‌زن نسخه پنج پشتیبانی می‌کند، به کار گرفته خواهند شد.

خلاصه‌ا‌ی از برتری‌های اساسی سایه‌زن نسخه پنج نسبت به نسخه چهار ارائه شده است.

[color=blue][size=18]بهبود موازی‌سازی : [/size][/color]
پردازنده‌های گرافیکی مبتنی بر DirectX 11 توسط ویژگی‌هایی که در ادامه به آن‌ها اشاره می‌شود، توانایی برنامه‌نویسان برای استفاده از ویژگی موازی‌سازی را به‌طور وسیعی افزایش می‌دهند.

اندازه گروه Thread و ارسال Threadهای سه‌بعدی افزایش یافته است.

یک گروه Thread، مجموعه‌ا‌ی از Threadها است که با هم عمل می‌کنند تا یک الگوریتم موازی داده به‌طور مؤثر اجرا شود. پردازنده‌های گرافیکی مبتنی بر DirectX 11 دسترسی به حافظه را به ‌طورمؤثربه وسیله اجازه دادن به تبادل اطلاعات بین Threadهای درون یک گروه، بهبود می‌بخشند. از ‌این رو، الگوریتم‌های موازی در زمان کمتری اجرا می‌شوند. این ویژگی علاوه بر افزایش سرعت پردازش، موجب بهبود توان به وسیله کار کردن با توان عملیاتی بالاتر با دسترسی کمتر به چیپ‌ست حافظه نیز می‌شود. سایه‌زن نسخه پنج از گروه‌های Thread انعطاف‌پذیرتر و بزرگ‌‌تر با فهرست‌سازی سه‌بعدی پشتیبانی می‌کند که این موضوع امکان می‌دهد تا برنامه‌نویسان با کنترل حوزه‌ا‌ی مشخص، الگوریتم خود را بهبود بخشند.

پشتیبانی از عملیات هسته‌‌ای (Atomic Operation). یکی از ویژگی‌های برجسته پردازنده‌ها است که برنامه‌نویسان خواستار اجرای آن روی پردازنده‌های گرافیکی بوده‌اند. عملیات هسته‌ا‌ی به‌طور مؤثرتر و دقیق‌تر موجب ترکیب عملیاتی می‌شوند که سعی در اصلاح آدرس‌های حافظه یکسان دارند. پردازنده‌های گرافیکی می‌توانند هزاران Thread یا گروهی از Threadها را به‌طور موازی اجرا کنند و اگر دو یا تعداد بیشتری از این Threadها سعی به دستکاری متغیرهای یکسان یا دستیابی به محل حافظه یکسان داشته باشند، عملیات هسته می‌تواند نتیجه‌گیری کند که داده‌ها صحیح نیستند. بدون عملیات هسته‌ا‌ی، برنامه‌نویسان باید الگوریتم‌های خود را برای اجتناب از این وضعیت‌ها تغییر دهند. در غیر این صورت، متغیرها یا محل‌های حافظه را مرتب کنند که این موضوع موجب می‌شود تا بسیاری از مزایای کارایی پردازش موازی و کنترل وضعیت‌ها به‌طور مناسبی حذف شوند.

پردازنده‌های گرافیکی امروزی از بلوک‌های سخت‌افزاری اختصاصی استفاده می‌کنند که به‌عنوان واحد‌های بافت شناخته می‌شوند. واحد‌های بافت، داده‌ها را به سرعت به هسته‌های پردازشی پردازنده‌های گرافیکی ارسال می‌کنند. این واحد‌ها برای پردازش گرافیکی بهینه شده‌اند، به‌طوری که شگردهای فنی شبیه Bilinear Filtering که به‌عنوان مثال برای بهبود کیفیت تصویر استفاده می‌شود، از این واحدها استفاده می‌کنند.

سایه‌زن‌های حسابگر اغلب از این واحد‌ها برای واکشی داده‌ها استفاده کرده و به‌طور کلی از قابلیت‌های ف ی ل ت رینگ این سایه‌زن‌ها استفاده نمی‌کنند. پردازنده‌های گرافیکی با سایه‌زن نسخه پنج این توانایی را دارند که از قابلیت واکشی اضافه با عملکرد Grather4 استفاده کنند که می‌تواند به‌طور همزمان چهار مقدار را واکشی کند و پهنای باند را به میزان چهار برابر افزایش دهد.


[size=18][color=blue]بهبود دقت و پردازش عدد صحیح : [/color] [/size]
DirectX 11 قادر است از دقت عملکرد نقاط شناور به میزان دو برابر (64 بیت) روی پردازنده‌های گرافیکی مطابق با استاندارد IEEE-754 پشتیبانی کند. تا پیش از معرفی DirectX 11 این سطح از دقت تنها روی پردازنده‌ها پشتیبانی می‌شد و در پردازنده‌های گرافیکی این دقت عملکرد به 32 بیت محدود بود. در حالی‌که این دقت برای بیشتر برنامه‌های کاربردی گرافیکی کافی است، اما می‌تواند برای برخی از شبیه‌سازها یا وظایف محاسباتی که نیازمند تعداد زیادی تکرار روی یک داده یا کار روی مقادیر خیلی بزرگ یا خیلی کوچک هستند، کافی نباشد. سایه‌زن نسخه پنج همچنین عملیات دستکاری بیت و عدد صحیح جدیدی را مانند شمردن مجموعه بیت‌ها، پیدا کردن اولین بیت، درج/اقتباس کردن حوزه‌های بیت، معکوس کردن بیت‌ها و عملیات تغییر مکان بیت جدید اضافه کرده است. برنامه‌های کاربردی مانند پردازش ویدئویی و رمزنویسی از عملیاتی شبیه به موارد فوق در همه جا استفاده می‌کنند. بنابراین این ویژگی موجب بهبود کارایی پردازنده‌های گرافیکی مبتنی بر DirectX 11 می‌شود.


[color=blue][size=18]پیوستگی محکم بین سایه‌زن‌ها و خط لوله‌های رندرینگ : [/size][/color]
اگر چه سایه‌زن‌های حسابگر با وظایف غیرگرافیکی سروکار دارند، اما از آن‌ها می‌توان اغلب برای افزایش کارایی یا ارتباط با یک خط لوله پردازش برای تأثیر روی آنچه به صفحه‌نمایش ارسال می‌شود، استفاده کرد. به‌عنوان مثال، برای وظایف شبیه‌سازی، شبیه فیزیک بازی‌ها یا هوش مصنوعی که می‌تواند حرکات و رفتار اشیاء را کنترل کند و کاراکترها را روی صفحه‌نمایش تکان دهد، فناوری مرتب‌سازی، شبیه آرایش شفافیت مستقل که پردازش تعداد وسیعی از اشیا را بهبود می‌بخشد و اثرات پس پردازشی، شبیه نقشه‌گذاری و عمق میدان که می‌تواند ف ی ل ت رهای مختلفی را برای اصلاح و بالابردن کیفیت یک تصویر بعد از آن‌که پردازش آن به پایان رسید، به کار گیرد. سایه‌زن حسابگر DirectX 11 یک مجموعه دستورالعمل‌عمومی را با دیگر انواع سایه‌زن DirectX 11 که برای پردازش استفاده می‌شود، تقسیم می‌کند (شامل رأس، قشر، قلمرو، ژئومتری و سایه‌زن پیکسل) و می‌تواند ساختار داده‌ها را برای اجرا کردن این شگردهای فنی در روش‌های خیلی کاربردی‌تر و مؤثرتر به اشتراک بگذارد.

[size=18][color=blue]بهبود سهولت در برنامه‌نویسی و استفاده مؤثر از حافظه :[/color][/size]
یک سخت‌افزار قدرتمند زمانی ارزش پیدا می‌کند که نرم‌افزارها بتوانند از قابلیت‌های آن استفاده کنند. به‌عنوان یک زبان محاسباتی، سایه‌زن نسخه پنج پیشرفت‌های قابل توجهی را فراهم کرده که توانایی برنامه‌نویسان را نسبت به برنامه‌ها و الگوریتم‌ها برای پردازنده‌های گرافیکی که سابقاً غیرعملی یا غیرممکن بود، افزایش می‌دهد. سایه‌زن نسخه پنج دارای تعدادی ویژگی مهم است که مشکلات محاسباتی روی پردازنده گرافیکی را برطرف می‌کند.

این ویژگی‌ها شامل:
[color=green]افزایش حافظه اشتراکی با بهبود دسترسی :[/color]
یکی از ویژگی‌های مهم سایه‌زن حسابگر DirectX 11 پشتیبانی از حافظه اشتراکی است که اجازه ارتباط بین Threadها را می‌دهد. سایه‌زن نسخه پنج مقدار حافظه اشتراکی قابل دسترس برای یک گروه Thread را به میزان دو برابر افزایش داده و از شانزده کیلوبایت به 32 کیلوبایت رسانده است. در مجموع حافظه اشتراکی بیشتر به پردازنده‌های گرافیکی مبتنی بر DirectX 11 اجازه می‌دهد تا فعالیت‌های خواندن و نوشتن به این حافظه را مرتب کند، در صورتی که پردازنده‌های گرافیکی قدیمی‌تر که مبتنی بر DirectX 10 و DirectX 10.1 بودند در دسترسی به نوشته‌های اختصاصی و خواندن‌های اشتراکی محدودیت داشتند. سایه‌زن حسابگر اجازه می‌دهد Threadها به‌طور مستقیم از/به حافظه اشتراکی خوانده/نوشته شده و همچنین کد‌های پردازنده را ساده می‌کند تا روی پردازنده گرافیکی اجرا شوند. ترکیب گروه‌های Thread بزرگ‌تر و حافظه اشتراکی بیشتر موجب می‌شود تا تعداد دسترسی به حافظه غیرمحلی که برای برخی از الگوریتم‌ها نیاز است، به‌طور وسیعی کاهش یابد که این موضوع موجب کاهش نیاز به پهنای باند حافظه و در نتیجه افزایش کارایی می‌شود.

[color=green]بافرهای مصرفی/ الحاقی :[/color]
سایه‌زن نسخه پنج از بافر‌های داده جدید که شبیه به یک انبار یا یک فهرست هستند، پشتیبانی می‌کند. مقادیر داده جدید در زمان تولید در انتهای این فهرست نوشته یا در زمان درخواست از انتهای آن خوانده می‌شوند. این موضوع برای اجرا کردن داده‌‌ها به صورت غیرترتیبی مفید است. اجرای غیرترتیبی داده‌ها نیازمند داده‌های متفاوت برای هر یک از عناصر یا برای تکنیک‌های سازگاری شبیه فشردگی جریان است که مقادیر متغیر پردازشی برای هر یک از عناصر انجام می‌‌گیرد. بافر الحاقی اجازه می‌دهد این فرآیندها در یک مرحله روی داده‌ها اجرا شوند، در عوض به چند مرحله نیاز است که البته سیکل‌های محاسبه و پهنای باند حافظه بیشتری را مصرف می‌کنند.

[color=green]نظریه‌های دسترسی مرتب UAV :[/color]
UAV بافری است که اجازه می‌دهد داده‌‌ها با یک ترتیب مشخص «نوشته شوند به» یا «خوانده شوند از» محل‌های اختیاری. این عملیات به‌عنوان عملیات جمع‌کننده/پخش‌کننده نیز شناخته می‌شود و انعطاف‌پذیری بسیار بالایی را که در پردازنده‌های گرافیکی قدیمی قابل دسترس نبود، فراهم می‌کنند. DirectX 11 این انعطاف‌پذیری را از آنچه که با پردازنده‌های ‌گرافیکی مبتنی بر DirectX 10 امکان‌پذیر بود، توسعه داده و به سایه‌زن‌های حسابگر اجازه داده تا به حداکثر هشت UAV مختلف به‌طور همزمان به جای یک UAV در DirectX 10 دسترسی پیدا کنند. رابط برنامه نویسی DirectX 11 اجازه می‌دهد تا این UAVها به وسیله سایه‌زن پیکسل قابل دسترس باشند که اطلاعات آسان‌تر بین سایه‌زن حسابگر و خط لوله پردازش تقسیم شود.

[color=green]Compute Dispatch غیرمستقیم :[/color]
این ویژگی باعث می‌شود نسل جدیدی از بار کاری به وسیله سایه‌زن حسابگر انجام شود، بدون آن‌که پردازنده دخالتی داشته باشد. این موضوع سبب می‌شود تا پردازنده کمتر زیر بار قرار گیرد و زمان پردازش بیشتری را برای وظایف دیگر داشته باشد.



بر گرفته از سایت اسپارکل و دیگرمنابع

منبع میلیتاری
[color=green][/color][color=green][/color][size=12][/size][size=12][/size][size=12][/size][size=12][/size][size=12][/size][size=12][/size][size=12][/size][size=12][/size][size=12][/size][size=12][/size][size=12][/size]

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
امین جان ممنون از مطلبت! همچنین خسته نباشی به خاطر ترجمه اش!

راستی یه سوال ! آیا دایرمت ایکس تو مسایل نظامی هم کاربرد داره؟!

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
قابلی نداشت.

Azarakhsh جان برای مثال در برنامه های شبیه ساز پرواز

اینم لینک دانلود دایرکس 11

http://letitbit.net/download/5703.ccf54f8484fea9151b5a4f5b5/DirectX_11_x64_by_Desings_2009_www.dl4all.com.rar.html

http://uploading.com/files/84b4f91d/DirectX_11_x86_by_Desings_2009_www.dl4all.com.rar/

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
مهمان
این موضوع نسبت به پاسخ بیشتر بسته شده است.

  • مرور توسط کاربر    0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.