پیوستگی محکم بین سایهزنها و خط لولههای رندرینگ:اگر چه سایهزنهای حسابگر با وظایف غیرگرافیکی سروکار دارند، اما از آنها میتوان اغلب برای افزایش کارایی یا ارتباط با یک خط لوله پردازش برای تأثیر روی آنچه به صفحهنمایش ارسال میشود، استفاده کرد. بهعنوان مثال، برای وظایف شبیهسازی، شبیه فیزیک بازیها یا هوش مصنوعی که میتواند حرکات و رفتار اشیاء را کنترل کند و کاراکترها را روی صفحهنمایش تکان دهد، فناوری مرتبسازی، شبیه آرایش شفافیت مستقل که پردازش تعداد وسیعی از اشیا را بهبود میبخشد و اثرات پس پردازشی، شبیه نقشهگذاری و عمق میدان که میتواند فیلترهای مختلفی را برای اصلاح و بالابردن کیفیت یک تصویر بعد از آنکه پردازش آن به پایان رسید، به کار گیرد. سایهزن حسابگر DirectX 11 یک مجموعه دستورالعملعمومی را با دیگر انواع سایهزن DirectX 11 که برای پردازش استفاده میشود، تقسیم میکند (شامل رأس، قشر، قلمرو، ژئومتری و سایهزن پیکسل) و میتواند ساختار دادهها را برای اجرا کردن این شگردهای فنی در روشهای خیلی کاربردیتر و مؤثرتر به اشتراک بگذارد.
-بهبود سهولت در برنامهنویسی و استفاده مؤثر از حافظه: یک سختافزار قدرتمند زمانی ارزش پیدا میکند که نرمافزارها بتوانند از قابلیتهای آن استفاده کنند. بهعنوان یک زبان محاسباتی، سایهزن نسخه پنج پیشرفتهای قابل توجهی را فراهم کرده که توانایی برنامهنویسان را نسبت به برنامهها و الگوریتمها برای پردازندههای گرافیکی که سابقاً غیرعملی یا غیرممکن بود، افزایش میدهد. سایهزن نسخه پنج دارای تعدادی ویژگی مهم است که مشکلات محاسباتی روی پردازنده گرافیکی را برطرف میکند. این ویژگیها شامل:
-افزایش حافظه اشتراکی با بهبود دسترسی: یکی از ویژگیهای مهم سایهزن حسابگر DirectX 11 پشتیبانی از حافظه اشتراکی است که اجازه ارتباط بین Threadها را میدهد. سایهزن نسخه پنج مقدار حافظه اشتراکی قابل دسترس برای یک گروه Thread را به میزان دو برابر افزایش داده و از شانزده کیلوبایت به 32 کیلوبایت رسانده است. در مجموع حافظه اشتراکی بیشتر به پردازندههای گرافیکی مبتنی بر DirectX 11 اجازه میدهد تا فعالیتهای خواندن و نوشتن به این حافظه را مرتب کند، در صورتی که پردازندههای گرافیکی قدیمیتر که مبتنی بر DirectX 10 و DirectX 10.1 بودند در دسترسی به نوشتههای اختصاصی و خواندنهای اشتراکی محدودیت داشتند. سایهزن حسابگر اجازه میدهد Threadها بهطور مستقیم از/به حافظه اشتراکی خوانده/نوشته شده و همچنین کدهای پردازنده را ساده میکند تا روی پردازنده گرافیکی اجرا شوند. ترکیب گروههای Thread بزرگتر و حافظه اشتراکی بیشتر موجب میشود تا تعداد دسترسی به حافظه غیرمحلی که برای برخی از الگوریتمها نیاز است، بهطور وسیعی کاهش یابد که این موضوع موجب کاهش نیاز به پهنای باند حافظه و در نتیجه افزایش کارایی میشود.
-بافرهای مصرفی/ الحاقی: سایهزن نسخه پنج از بافرهای داده جدید که شبیه به یک انبار یا یک فهرست هستند، پشتیبانی میکند. مقادیر داده جدید در زمان تولید در انتهای این فهرست نوشته یا در زمان درخواست از انتهای آن خوانده میشوند. این موضوع برای اجرا کردن دادهها به صورت غیرترتیبی مفید است. اجرای غیرترتیبی دادهها نیازمند دادههای متفاوت برای هر یک از عناصر یا برای تکنیکهای سازگاری شبیه فشردگی جریان است که مقادیر متغیر پردازشی برای هر یک از عناصر انجام میگیرد. بافر الحاقی اجازه میدهد این فرآیندها در یک مرحله روی دادهها اجرا شوند، در عوض به چند مرحله نیاز است که البته سیکلهای محاسبه و پهنای باند حافظه بیشتری را مصرف میکنند.
-نظریههای دسترسی مرتب (UAV): UAV بافری است که اجازه میدهد دادهها با یک ترتیب مشخص «نوشته شوند به» یا «خوانده شوند از» محلهای اختیاری. این عملیات بهعنوان عملیات جمعکننده/پخشکننده نیز شناخته میشود و انعطافپذیری بسیار بالایی را که در پردازندههای گرافیکی قدیمی قابل دسترس نبود، فراهم میکنند. DirectX 11 این انعطافپذیری را از آنچه که با پردازندههای گرافیکی مبتنی بر DirectX 10 امکانپذیر بود، توسعه داده و به سایهزنهای حسابگر اجازه داده تا به حداکثر هشت UAV مختلف بهطور همزمان به جای یک UAV در DirectX 10 دسترسی پیدا کنند. رابط برنامه نویسی DirectX 11 اجازه میدهد تا این UAVها به وسیله سایهزن پیکسل قابل دسترس باشند که اطلاعات آسانتر بین سایهزن حسابگر و خط لوله پردازش تقسیم شود.
-Compute Dispatch غیرمستقیم: این ویژگی باعث میشود نسل جدیدی از بار کاری به وسیله سایهزن حسابگر انجام شود، بدون آنکه پردازنده دخالتی داشته باشد. این موضوع سبب میشود تا پردازنده کمتر زیر بار قرار گیرد و زمان پردازش بیشتری را برای وظایف دیگر داشته باشد.
برگرفته از شماره 91 دو هفته نامه عصر شبکه






پاسخ با نقل قول
Bookmarks