بررسی سخت‌افزاری‌ها

اگر بخواهیم به جستجوی سازندگان چیپ‌های گرافیکی که از GPGPU پشتیبانی می‌کنند بپردازیم خیلی زود به جواب می‌رسیم. پاسخ کاملا واضح است فقط 2 شرکت AMD و nVIDIA چنین چیپ‌های گرافیکی تولید می‌کنند. اجازه بدهید هر یک از آنها را به صورت مجزا مورد بررسی قرار دهیم:

اگر بخواهیم به جستجوی سازندگان چیپ‌های گرافیکی که از GPGPU پشتیبانی می‌کنند بپردازیم خیلی زود به جواب می‌رسیم. پاسخ کاملا واضح است فقط 2 شرکت AMD و nVIDIA چنین چیپ‌های گرافیکی تولید می‌کنند. اجازه بدهید هر یک از آنها را به صورت مجزا مورد بررسی قرار دهیم:

اولین تلاش برای دستیابی به GPGPU توسط nVIDIA انجام شد.                                                                                                                            تماس باما

شواهدی وجود دارد که نشان می‌دهد این شرکت با چیپ‌های گرافیکی اولیه سری GeForce 256 که حتی فاقد قابلیت سایه‌زنی قابل برنامه‌ریزی (Programmable shaders) بودند هم سعی در پیاده‌سازی GPGPU داشته است. البته این تلاش‌ها زمانی نتیجه داد که DirectX 9 با قدرت انعطاف‌پذیری به مراتب بالاتر در معماری سایه‌زنی قابل برنامه‌ریزیش عرضه شد.

مدل‌هاي DirectX Shader جزئيات بسياري را جهت كنترل بر روي آنچه نمايش داده مي‌شود براي افراد خواستار  توسعه، ارائه مي‌دهند و مي‌توانند افكت‌هاي بسياري نظير سايه‌هاي پيچيده انعكاس نور، ايجاد مه و مانند آنها را بوجود آورند. مايكروسافت با ارائهShader Model  از ابتدا قدرت مانور زيادي را در اختيار توسعه دهندگان قرار داده است كه نتيجه آن ايجاد پتانسيل بالا جهت واقعي‌تر و ملموس‌تر كردن تصاوير بوده است.

 Shader Model IIنسخه‌اي است كه DirectX 9 در اختيار كاربران قرار مي‌دهد. براي به تصویر کشیدن صحنه‌های واقعی و باور نکردنی در گیم‌ها و خلق سایه‌های درست و دقیق استفاده مي‌شود. فعل و انفعالات پیچیده بین منابع نور، اشیاء و نشانه‌های گرافیکی شامل برنامه‌هایی می‌شود که جزئیات را با دقت بیشتری بررسی می‌کنند و در واقع در یک بازی، تمامی منابع نوری مرتبط به هر شئ باید مورد تجزیه و تحلیل قرار بگیرند. این بدین معناست که در سیستم‌هایی که از پردازنده‌های گرافیکی استفاده می‌کنند هر زمان که یک بازی یا یک برنامه کاربردی به بازسازی سایه‌ها بپردازد،Ultra Shadow ΙΙ  عملکرد نهایی کار را ارتقا می‌بخشد.

با استفاده از این تکنولوژی هر چه نیاز بیشتری به نورپردازی و محاسبه سایه‌ها در یک صفحه داشته باشیم بهبود قابل توجهی در نوع عملکرد حاصل خواهد شد و در حقیقت هر چه قدر ترکیبات پیچیده‌تر باشد، نتایج قابل ملاحظه و برجسته‌تری به دست خواهد آمد. در مجموع این تکنولوژی نسبت به نسخه قبلی می‌تواند میزان کارایی سایه‌زنی را تا چهار برابر افزایش دهد.
یکی دیگر از مزایای این تکنولوژی این است که به نویسندگان نرم‌افزارهاي گرافيكي این امکان را می‌دهد که سایه‌ها را با سرعت بسیار بالاتری از طریق حذف نواحی غیر ضروری بازسازی نمایند. در واقع با مشخص کردن پهنای باند یک صفحه و تمرکز بر روی نواحي‌ که بیشتر تحت تاثیر منابع نوری هستند، نرم‌افزارنویسان می‌توانند فرآیند پردازش سایه‌ها را به طور عمده‌ای تسریع نمایند. با به کارگیری سایه‌ها‌یی که امکان تنظیمات پارامتری را برای افزایش کارایی دارند، نویسندگان نرم‌افزارهاي گرافيكي می‌توانند تصاویر گرافیکی باور نکردنی که به واقعیت بسیار نزدیک می‌باشند را خلق نمایند.

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

مشکلات دیگر آن بود که DirectX 9 بخشی از معماری چیپ گرافیکی را قفل کرده بود این بدان معنا است که پیاده‌سازی ویژگی‌هایی که برای انجام کارهای غیر گرافیکی لازم بود خارج از استاندارد DirectX شناخته می‌شد و پشتیبانی نمی‌شد.با وجود این‌ها به نظر می‌رسید که چیپ‌های گرافیکی کاندیدای مناسبی برای انجام پردازش‌هایی نظیر SIMD (اجرای یک دستورالعمل بر روی چند داده) و عملیات ممیز شناور محض باشند.

ان‌ویدیا‌‌ برای پیشرفت هر چه بیشتر GPGPU یک فریم‌ورک نرم‌افزاری جدید و کاربرپسند به نام CUDA 1.0 را طراحی کرد.

CUDA مخفف عبارت Compute Unified Device Architecture است. حالا برنامه‌نویسان قادر بودند که از زبان برنامه‌نویسی C در کنار امکاناتی که ان‌ویدیا برایشان بر اساس این زبان برنامه‌نویسی فراهم کرده بود استفاده کنند و برنامه‌های خود را بسازند. این روش خیلی راحت‌تر از روش برنامه‌نویسی بر اساس روش قبلی یعنی برنامه‌نویسی سایه‌ها است. به عبارت دیگر در این روش جدید برای نوشتن برنامه‌های عمومی نیازی به استفاده از کدهای گرافیکی نبود.

CUDA با چیپ‌های Geforce 8800 GTX و به بعد کار می‌کند. اما اولین نسل از چیپ‌های گرافیکی که اختصاصا بر اساس پردازش گرافیکی ساخته شدند Tesla 870 بودند.

ان‌ویدیا از زمان چیپ‌های 8800 سعی کرد که چیپ‌هایی بسازد که قابلیت GPGPU آنها کاربردی‌تر و بهتر باشد، هر چند به دنبال آن نبود که GPU را جایگزین CPU‌ کند. CPUها هنوز در پردازش خطی یا چند رشته‌ای برتری محسوسی داشتند هر چند GPUها این پتانسیل را دارند که در پردازش‌های حجیم که به صورت موازی بر روی صدها رشته عملیاتی (Thread) که بر روی داده‌های جداگانه ولی هم نوع انجام می‌شوند بازدهی بسیار بالایی را از خود نشان دهند. این روش برنامه‌نویسی بسیار مناسب کاربردهایی مثل محاسبات علمی و یا تحلیل‌های مالی است.

شاید این موضوع خیلی معنی‌دار باشد که ان‌ویدیا‌ آخرین معماری خود معروف به Fermi را به عنوان یک پلتفرم پردازش توسط گرافیک (GPU compute platform) معرفی کرده است و نه یک پردازنده گرافیکی (Graphics processor) !

معماری Fermi، پیشرفت‌های سخت‌افزاری قابل توجهی را به ارمغان آورد که در نتیجه این چیپ را برای پردازش‌های عمومی و نه صرفا گرافیکی بسیار ایده‌آل کرده است. از جمله این پیشرفت‌ها می‌توان به Atomic Memory Operations، Unified Memory Architecture و Context Switching بهتر و موارد دیگر اشاره کرد. از زمانی که Fermi‌ معرفی شد ان‌ویدیا‌ چندین بار پلتفرم نرم‌افزاری CUDA را آپدیت کرده است.

منبع:ماهنامه رایانه خبر

تماس باما

دیدگاه خود را بیان کنید