SlideShare a Scribd company logo
‫صفحه‬1
‫صفحه‬2
GPGPU
: ‫محقق‬
‫امجدی‬ ‫امین‬ ‫ّد‬‫م‬‫مح‬
00343888
‫دان‬‫کرمان‬ ‫باهنر‬ ‫شهید‬ ‫شگاه‬
‫فنی‬ ‫دانشکده‬
‫کامپیوتر‬ ‫مهندسی‬ ‫بخش‬
‫افزار‬ ‫سخت‬ ‫گرایش‬
‫راهنما‬ ‫استاد‬:
‫صفاپو‬ ‫پروین‬ ‫مهندس‬‫ر‬
‫سال‬ ‫نیم‬‫سال‬ ‫دوم‬09
‫صفحه‬3
‫مطالب‬ ‫فهرست‬
...................................................................................................................... ‫چکیده‬..........................................................4
‫مقدمه‬.................................................................................................................................................................................5
GPGPU............................................................. ‫صنعت‬ ‫و‬................................................................................................6
......................................... ‫مدرن‬ ‫گرافیکی‬ ‫های‬ ‫پردازنده‬ ‫های‬ ‫ویژگی‬..................................................................................8
‫توانایی‬ ‫مقایسه‬‫پردازنده‬ ‫های‬‫پردازنده‬ ‫با‬ ‫گرافیکی‬‫مرکزی‬.........................................................................................................9
‫پردازنده‬‫پردازنده‬ ‫از‬ ‫گرافیکی‬‫سریع‬ ‫مرکزی‬‫است‬ ‫تر‬...............................................................................................................01
‫ابزار‬‫برنامه‬ ‫های‬‫نویسی‬GPGPU.........................................................................................................................................00
‫کاربرد‬‫پردازنده‬ ‫غیرگرافیکی‬ ‫های‬‫گرافیکی‬.........................................................................................................................01
‫پردازنده‬ ‫کاربرد‬‫تصویر‬ ‫پردازش‬ ‫در‬ ‫گرافیکی‬......................................................................................................................04
‫متداو‬ ‫مشکالت‬....................................................................................................................... ‫ل‬..........................................04
‫کتابخانه‬OpenVIDIA‫و‬GPUCV.......................................................................................................................................05
‫آینده‬GPGPU...................................................................................................................................................................01
.................................................................................. ‫خالصه‬.............................................................................................08
................................................................................................................ ‫مأخذ‬ ‫و‬ ‫منابع‬........................................................10
............................................................................................ ‫ضمائم‬.....................................................................................11
‫صفحه‬4
‫چکیده‬
‫پردازنده‬ ‫امروزه‬‫گ‬ ‫هاي‬‫ـ‬‫که‬ ‫رافیكي‬‫کارت‬ ‫روي‬ ‫بر‬‫گرافیك‬‫گران‬ ‫هاي‬‫مي‬ ‫نصب‬ ‫قیمت‬‫خارق‬ ‫پردازشي‬ ‫توان‬ ‫شوند‬‫العاده‬‫اي‬
‫نسب‬ ‫را‬‫ـ‬‫پردازنده‬ ‫به‬ ‫ت‬‫مي‬ ‫ارائه‬ ‫مرکزي‬ ‫هاي‬‫کاربرد‬ ‫گسترش‬ ‫موجب‬ ‫موضوع‬ ‫اين‬ ،‫دهند‬‫پردازنده‬ ‫اين‬ ‫هاي‬‫حوزه‬ ‫در‬ ‫ها‬‫هايي‬
‫ف‬‫ـ‬‫ب‬ ‫از‬ ‫راتر‬‫ـ‬‫ازي‬‫ک‬ ‫هاي‬‫ـ‬‫امپیوت‬‫ـ‬‫گشت‬ ‫ري‬‫ـ‬‫پ‬ ،‫است‬ ‫ه‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫مع‬ ‫با‬ ‫مدرن‬ ‫گرافیكي‬ ‫هاي‬‫پردازنده‬ ‫خود‬ ‫موازي‬ ‫ماري‬‫بسیار‬ ‫هاي‬
‫مي‬ ‫شمار‬ ‫به‬ ‫سريعي‬‫مي‬ ‫عرضه‬ ‫کمتري‬ ‫مصرفي‬ ‫توان‬ ‫و‬ ‫قیمت‬ ‫با‬ ‫حال‬ ‫عین‬ ‫در‬ ،‫روند‬‫پیاده‬ ‫جهت‬ ‫و‬ ‫شوند‬‫الگوريتم‬ ‫سازي‬‫و‬ ‫ها‬
‫ب‬‫ـ‬‫رن‬‫ـ‬‫بین‬ ‫هاي‬ ‫امه‬‫ـ‬‫پ‬ ‫و‬ ‫ماشین‬ ‫ايي‬‫ـ‬‫تص‬ ‫ردازش‬‫ـ‬‫مي‬ ‫طلب‬ ‫بیشتر‬ ‫فريم‬ ‫نرخ‬ ‫به‬ ‫رسیدن‬ ‫جهت‬ ‫را‬ ‫زيادي‬ ‫پردازشي‬ ‫بار‬ ‫که‬ ‫وير‬،‫کنند‬
‫ي‬‫ـ‬‫راه‬ ‫ك‬‫مي‬ ‫شمار‬ ‫به‬ ‫کارآمد‬ ‫و‬ ‫اقتصادي‬ ‫کار‬‫واسط‬ ‫فراگیري‬ ‫به‬ ‫نیاز‬ ‫بدون‬ ‫نويس‬ ‫برنامه‬ ‫که‬ ‫طوري‬ ،‫رود‬‫نويسي‬ ‫برنامه‬ ‫هاي‬
‫کتابخانه‬ ‫کمك‬ ‫به‬ ‫گرافیكي‬‫اين‬ ‫براي‬ ‫موجود‬ ‫هاي‬‫مي‬ ‫کار‬‫مرکزي‬ ‫پردازنده‬ ‫از‬ ‫سادگي‬ ‫به‬ ‫را‬ ‫خود‬ ‫برنامه‬ ‫پردازشي‬ ‫بار‬ ‫تواند‬
‫کند‬ ‫منتقل‬ ‫گرافیكي‬ ‫پردازنده‬ ‫به‬.
‫صفحه‬5
‫مقدمه‬
‫اشتی‬‫ـ‬‫اق‬‫ف‬‫ـ‬‫ط‬ ‫راوان‬‫ـ‬‫بازي‬ ‫رفداران‬‫بازي‬ ‫به‬ ‫کامپیوتري‬ ‫هاي‬‫طبیعي‬ ‫و‬ ‫زيبا‬ ‫هاي‬‫به‬ ‫موجب‬ ،‫تر‬‫در‬ ‫متعددي‬ ‫تحوالت‬ ‫آمدن‬ ‫وجود‬
‫کارت‬‫گ‬‫ـ‬‫رافی‬‫ـ‬‫ك‬‫فن‬ ‫و‬ ‫ها‬‫آوري‬‫کارت‬ ‫که‬ ‫طوري‬ ‫به‬ ‫شده‬ ‫آن‬ ‫به‬ ‫وابسته‬ ‫هاي‬‫گرافیك‬‫مي‬ ‫مدرن‬ ‫هاي‬‫سرطان‬ ‫درمان‬ ‫به‬ ‫توانند‬
‫ر‬ ‫سانفرانسیسكو‬ ‫شهر‬ ‫در‬ ‫برزگي‬ ‫لرزه‬ ‫زمین‬ !‫کنند‬ ‫کمك‬‫پیش‬ ‫ا‬‫فراهم‬ ‫با‬ ‫و‬ ‫کنند‬ ‫بیني‬‫پ‬ ‫توان‬ ‫آوردن‬‫ـ‬‫خ‬ ‫ردازشي‬‫ـ‬‫ارق‬‫العاده‬،
‫مس‬‫ـ‬‫ائ‬‫ـ‬‫بسی‬ ‫ل‬‫ـ‬‫پ‬ ‫ار‬‫ـ‬‫یچ‬‫ـ‬‫مح‬ ‫یده‬‫ـ‬‫اسب‬‫ـ‬‫ات‬‫ـ‬‫ري‬ ‫و‬ ‫ي‬‫ـ‬‫اض‬‫ـ‬‫ب‬ ‫را‬ ‫ي‬‫ـ‬‫س‬ ‫ه‬‫ـ‬‫ادگ‬‫ـ‬‫ح‬ ‫ي‬‫ـ‬‫کرده‬ ‫فكر‬ ‫موضوع‬ ‫اين‬ ‫به‬ ‫کنون‬ ‫تا‬ ‫آيا‬ .‫کنند‬ ‫ل‬‫که‬ ‫ايد‬
‫کارت‬‫گرافی‬‫ـ‬‫ك‬‫ه‬‫ـ‬‫چن‬ ‫اي‬‫ـ‬‫بازي‬ ‫از‬ ‫غیر‬ ‫به‬ ‫توماني‬ ‫هزار‬ ‫دصد‬‫کاربرد‬ ‫چه‬ ‫در‬ ‫کامپیوتري‬ ‫هاي‬‫ها‬‫مي‬ ‫درد‬ ‫به‬ ‫ديگري‬ ‫ي‬‫خورد؟‬
‫سال‬‫اس‬ ‫ها‬‫ـ‬‫اف‬ ‫که‬ ‫ت‬‫ـ‬‫اف‬ ‫روز‬ ‫زايش‬‫ـ‬‫کارت‬ ‫عملكرد‬ ‫زون‬‫گرافیك‬‫بهره‬ ‫فكر‬ ‫به‬ ‫را‬ ‫محققین‬ ،‫ها‬‫در‬ ‫آنها‬ ‫پردازشي‬ ‫توان‬ ‫از‬ ‫گیري‬
‫نام‬ ‫به‬ ‫کامپیوتر‬ ‫علوم‬ ‫در‬ ‫جديدي‬ ‫شاخه‬ ‫راستا‬ ‫همین‬ ‫در‬ .‫است‬ ‫انداخته‬ ‫غیرگرافیكي‬ ‫کاربردهاي‬GPGPU‫که‬ ‫گشته‬ ‫ايجاد‬
‫ه‬‫ـ‬‫نه‬ ‫دف‬‫ـ‬‫فع‬ ‫ايي‬‫ـ‬‫ا‬ ‫االن‬‫بهره‬ ‫عرصه‬ ‫ين‬‫گی‬‫ـ‬‫کارت‬ ‫از‬ ‫ري‬‫گرافی‬‫ـ‬‫عن‬ ‫به‬ ‫ك‬‫ـ‬‫ي‬ ‫وان‬‫ـ‬‫پردازنده‬ ‫کمك‬ ‫ك‬‫برنامه‬ ‫در‬ ‫محاسباتي‬‫هاي‬
‫برنامه‬ ‫و‬ ‫غیرگرافیكي‬‫است‬ ‫عمومي‬ ‫هاي‬.
‫هم‬ ‫در‬‫ـ‬‫ايش‬SuperComputing 2006‫شهر‬ ‫در‬ ‫که‬Tampa‫کارولینا‬ ‫دانشگاه‬ ‫محققین‬ ،‫شد‬ ‫برگزار‬ ‫فلوريدا‬ ‫ايالت‬
‫نت‬‫ـ‬‫اي‬‫ـ‬‫آزماي‬ ‫ج‬‫ـ‬‫ش‬‫گست‬ ‫هاي‬‫ـ‬‫در‬ ‫را‬ ‫خود‬ ‫رده‬‫مق‬ ‫مورد‬‫ـ‬‫پ‬ ‫عملكرد‬ ‫ايسه‬‫ـ‬‫ردازنده‬‫گرافیكي‬(GPU)‫پردازنده‬ ‫با‬‫مرکزي‬(CPU)
‫من‬‫ـ‬‫تش‬‫ـ‬‫کردند‬ ‫ر‬‫پردازنده‬ ،‫گرافی‬‫ـ‬‫نوع‬ ،‫كي‬‫ـ‬‫پردازنده‬ ‫ي‬‫م‬‫ـ‬‫گرافی‬ ‫کارت‬ ‫روي‬ ‫بر‬ ‫که‬ ‫است‬ ‫وازي‬‫ـ‬‫ك‬‫ه‬‫ـ‬‫(شكل‬ ‫دارد‬ ‫قرار‬ ‫ا‬1).
‫اي‬‫ـ‬‫پ‬ ‫ن‬‫ـ‬‫ص‬ ‫به‬ ‫ردازنده‬‫ـ‬‫اخت‬ ‫کامال‬ ‫ورت‬‫ـ‬‫محیط‬ ‫گرافیكي‬ ‫پردازش‬ ‫براي‬ ‫صاصي‬‫هاي‬‫سه‬‫بازي‬ ‫و‬ ‫بعدي‬‫طراحي‬ ‫کامپیوتري‬ ‫هاي‬
‫ش‬‫ـ‬‫ط‬ ‫که‬ ‫است‬ ‫ده‬‫ـ‬‫سال‬ ‫ي‬‫گ‬ ‫هاي‬‫ـ‬‫ت‬ ‫ذشته‬‫ـ‬‫وس‬‫ـ‬‫صن‬ ‫ط‬‫ـ‬‫چن‬ ‫عت‬‫ـ‬‫بازي‬ ‫دالري‬ ‫بیلیون‬ ‫د‬‫که‬ ‫يافته‬ ‫تحول‬ ‫چنان‬ ‫آن‬ ‫کامپیوتري‬ ‫هاي‬
‫ام‬‫ـ‬‫ن‬ ‫از‬ ‫روزه‬‫ـ‬‫ک‬ ‫ظر‬‫ـ‬‫ب‬ ‫ارايي‬‫ـ‬‫پ‬ ‫ا‬‫ـ‬‫ردازنده‬‫ي‬ ‫که‬ ‫مرکزي‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫مي‬ ‫شمار‬ ‫به‬ ‫منظوره‬ ‫همه‬ ‫ردازنده‬‫مي‬ ‫رقابت‬ ‫رود‬‫گیري‬ ‫بكار‬ .‫کند‬
‫پردازند‬‫ه‬‫کارت‬ ‫براي‬ ‫جديدي‬ ‫جايگاه‬ ‫عمومي‬ ‫محاسبات‬ ‫در‬ ‫گرافیكي‬‫گرافیك‬‫که‬ ‫جايي‬ ،‫است‬ ‫کرده‬ ‫ايجاد‬ ‫قدرتمند‬ ‫هاي‬
‫پردازنده‬ ‫از‬‫گرافی‬‫ـ‬‫دي‬ ‫كي‬‫ـ‬‫بازي‬ ‫گرافیكي‬ ‫محاسبات‬ ‫پردازش‬ ‫براي‬ ‫گر‬‫هاي‬‫نمي‬ ‫استفاده‬ ‫کامپیوتري‬‫نقش‬ ‫در‬ ‫عوض‬ ‫در‬ ،‫شود‬
‫ي‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫ب‬ ،‫کمكي‬ ‫ردازنده‬‫ـ‬‫ت‬ ‫يا‬ ‫خشي‬‫ـ‬‫ب‬ ‫مامي‬‫ـ‬‫مح‬ ‫ار‬‫ـ‬‫اسب‬‫ـ‬‫پ‬ ‫اتي‬‫ـ‬‫رداز‬‫ن‬‫ـ‬‫ده‬‫سرعت‬ ‫پردازش‬ ‫عملیات‬ ‫به‬ ‫و‬ ‫کرده‬ ‫تقبل‬ ‫را‬ ‫مرکزي‬
‫مي‬‫بخشد‬.
‫شكل‬1-‫پردازنده‬ ‫يك‬ ‫از‬ ‫نمايي‬‫گرافیكي‬
‫مدرن‬
‫صفحه‬6
GPGPU‫صنعت‬ ‫و‬
NVIDIA‫و‬ATI‫عن‬ ‫به‬‫ـ‬‫پردازنده‬ ‫بزرگ‬ ‫تولیدکننده‬ ‫دو‬ ‫به‬ ‫وان‬‫هاي‬‫ايده‬ ‫اين‬ ‫از‬ ،‫گرافیكي‬‫کرده‬ ‫استقبال‬ ‫نوين‬ ‫ي‬‫براي‬ ‫و‬ ‫اند‬
‫گست‬‫ـ‬‫ف‬ ‫رش‬‫ـ‬‫مح‬ ‫روش‬‫ـ‬‫خ‬ ‫صوالت‬‫ـ‬‫ود‬‫ب‬ ‫در‬‫ـ‬‫ف‬ ‫ازارهايي‬‫ـ‬‫ب‬ ‫از‬ ‫راتر‬‫ـ‬‫ب‬ ‫ازار‬‫ـ‬‫ازي‬‫ک‬ ‫هاي‬‫ـ‬‫فن‬ ،‫امپیوتري‬‫آوري‬‫به‬ ‫براي‬ ‫جديدي‬ ‫هاي‬
‫پردازنده‬ ‫کارگیري‬‫گرافی‬‫ـ‬‫ک‬ ‫در‬ ‫كي‬‫ـ‬‫اربرد‬‫کرده‬ ‫ارائه‬ ‫غیرگرافیكي‬ ‫هاي‬‫عرضه‬ ‫با‬ ‫همزمان‬ .‫اند‬Geforce 8800‫شرکت‬ ،
Nvidia‫برنامه‬ ‫توسعه‬ ‫محیط‬ ‫اولین‬‫هاي‬GPGPU‫کامپايلر‬ ‫بر‬ ‫مبتني‬ ‫را‬C‫به‬ ‫موسوم‬ ،CUDA‫کمك‬ ‫به‬ ‫که‬ ‫کرده‬ ‫معرفي‬
‫اي‬‫ـ‬‫فن‬ ‫ن‬‫بهره‬ ‫آوري‬‫ب‬‫ـ‬‫پ‬ ‫از‬ ‫رداري‬‫ـ‬‫ردازنده‬‫گرافی‬‫ـ‬‫برن‬ ‫در‬ ‫كي‬‫ـ‬‫امه‬‫ه‬‫ـ‬‫عم‬ ‫اي‬‫ـ‬‫بسی‬ ‫ومي‬‫ـ‬‫آسان‬ ‫ار‬‫ارشد‬ ‫مدير‬ ‫گفته‬ ‫به‬ .‫شد‬ ‫خواهد‬ ‫تر‬
‫ش‬‫ـ‬‫رک‬‫ـ‬‫ت‬NVIDIA‫ح‬ ‫در‬‫ـ‬‫مح‬ ‫وزه‬‫ـ‬‫اسب‬‫ـ‬‫پ‬ ‫ات‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫آق‬ ، ‫كي‬‫ـ‬‫اي‬andy keane‫معم‬ ،‫ـ‬‫ک‬ ‫اري‬‫ـ‬‫ام‬‫ـ‬‫در‬ ‫جديدي‬ ‫ال‬
‫پ‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ـ‬‫راف‬‫ـ‬‫ی‬‫ـ‬‫ه‬ ‫كي‬‫ـ‬‫ن‬ ‫اي‬‫ـ‬‫س‬‫ـ‬‫ش‬ ‫هشتم‬ ‫ل‬‫ـ‬‫حافظه‬ ‫کردن‬ ‫اضافه‬ ‫با‬ ‫آن‬ ‫در‬ ‫که‬ ‫شده‬ ‫گرفته‬ ‫کار‬ ‫به‬ ‫رکت‬‫ک‬‫ـ‬‫اش‬‫ـ‬‫اس‬ ،‫ه‬‫ـ‬‫از‬ ‫تفاده‬
‫پ‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫م‬ ‫دو‬ ‫در‬ ‫كي‬‫ـ‬‫گرافی‬ ‫د‬‫ـ‬‫گرافی‬ ‫غیر‬ ‫و‬ ‫كي‬‫ـ‬‫سه‬ ‫به‬ ‫كي‬‫ـ‬‫ام‬ ‫ولت‬‫ـ‬‫است‬ ‫پذير‬ ‫كان‬:«‫پردازنده‬ ‫اکنون‬ ‫هم‬‫گرافیكي‬
‫شب‬‫ـ‬‫پ‬ ‫به‬ ‫بسیاري‬ ‫اهت‬‫ـ‬‫ردازنده‬‫و‬ ‫است‬ ‫کرده‬ ‫پیدا‬ ‫مرکزي‬CUDA‫ساده‬ ‫و‬ ‫پذير‬ ‫انعطاف‬ ‫مسیر‬‫کارايي‬ ‫به‬ ‫دستیابي‬ ‫براي‬ ‫را‬ ‫اي‬
‫شگفت‬‫پردازنده‬ ‫در‬ ‫شده‬ ‫نهفته‬ ‫انگیز‬‫برنامه‬ ‫براي‬ ‫گرافیكي‬‫مي‬ ‫ارمغان‬ ‫به‬ ‫نويسان‬‫آورد‬».
‫تج‬‫ـ‬‫ربه‬‫بسی‬ ‫هاي‬‫ـ‬‫پروژه‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫موفق‬ ‫ار‬Folding@Home‫بودن‬ ‫کاربردي‬ ‫بر‬ ‫تايیدي‬ ‫مهر‬ ،‫َنفورد‬‫ت‬‫ِس‬‫ا‬ ‫دانشگاه‬
‫سب‬ ‫اين‬‫ـ‬‫ج‬ ‫ك‬‫ـ‬‫د‬‫ي‬‫ـ‬‫برنامه‬ ‫د‬‫پروژه‬ ‫اين‬ ‫در‬ ، ‫است‬ ‫ها‬‫ع‬ ‫ي‬‫ـ‬‫سال‬ ‫که‬ ‫مومي‬‫کامپیوتر‬ ‫شده‬ ‫آغاز‬ ‫هاست‬‫سراسر‬ ‫از‬ ‫نفر‬ ‫هزاران‬ ‫هاي‬
‫همدي‬ ‫با‬ ‫دنیا‬‫ـ‬‫ط‬ ‫از‬ ‫گر‬‫ـ‬‫اين‬ ‫ريق‬‫ـ‬‫متص‬ ‫ترنت‬‫ـ‬‫م‬ ‫ل‬‫ـ‬‫ي‬‫پردازنده‬ ‫پردازشي‬ ‫توان‬ ‫کمك‬ ‫به‬ ‫تا‬ ‫گردد‬‫پروتئین‬ ،‫خود‬ ‫هاي‬ ‫مرکزي‬‫هاي‬
‫بیماري‬ ‫ايجاد‬ ‫در‬ ‫موثر‬‫بیماري‬ ‫و‬ ‫سرطاني‬ ‫هاي‬‫را‬ ‫غددي‬ ‫هاي‬‫شبیه‬‫روش‬ ‫يافتن‬ ‫در‬ ‫را‬ ‫محققین‬ ‫و‬ ‫کرده‬ ‫سازي‬‫آنها‬ ‫درمان‬ ‫هاي‬
‫م‬ ‫چند‬ .‫کنند‬ ‫ياري‬‫ـ‬‫همك‬ ‫با‬ ‫پیش‬ ‫اه‬‫ـ‬‫شرکت‬ ‫اري‬ATI‫نرم‬ ‫از‬ ‫آزمايشي‬ ‫نسخه‬ ،‫پردازش‬ ‫توان‬ ‫از‬ ‫آن‬ ‫در‬ ‫که‬ ‫شد‬ ‫عرضه‬ ‫افزاري‬
‫کارت‬‫شده‬ ‫متصل‬ ‫همديگر‬ ‫به‬ ‫اينترنت‬ ‫طريق‬ ‫از‬ ‫که‬ ‫کامپیوترهايي‬ ‫گرافیك‬‫پردازنده‬ ‫از‬ ‫استفاده‬ ‫جاي‬ ‫به‬ ‫اند‬‫م‬‫در‬ ‫آنها‬ ‫رکزي‬
‫شبی‬‫ـ‬‫ه‬‫سازي‬‫مي‬ ‫استفاده‬ ‫ها‬‫جهش‬ ‫آزمايش‬ ‫اين‬ ‫از‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫نتايج‬ ‫آخرين‬ .‫کند‬29‫الي‬49‫را‬ ‫پروژه‬ ‫رشد‬ ‫نرخ‬ ‫درصدي‬
‫نش‬‫ـ‬‫مي‬ ‫ان‬‫آرايه‬ ،‫دهد‬‫از‬ ‫اي‬536‫کارت‬‫پردازنده‬ ‫با‬ ‫گرافیك‬‫گرافیكیي‬Radeon X1900‫ط‬ ‫که‬‫ـ‬‫پروژه‬ ‫اين‬ ‫به‬ ‫ماه‬ ‫چند‬ ‫ي‬
‫پی‬‫ـ‬‫با‬ ‫اند‬ ‫وسته‬35‫مح‬ ‫تريلیون‬‫ـ‬‫اسبه‬‫بی‬ ‫پردازشي‬ ‫سرعت‬ ،‫ثانیه‬ ‫در‬‫ـ‬‫از‬ ‫ش‬18475‫پردازنده‬‫پلتفورم‬ ‫با‬ ‫کننده‬ ‫شرکت‬ ‫مرکزي‬
linux‫ب‬‫ـ‬‫ح‬ ‫ا‬‫ـ‬‫داکثر‬21‫مح‬ ‫تريلیون‬‫ـ‬‫کرده‬ ‫ارائه‬ ‫ثانیه‬ ‫در‬ ‫اسبه‬‫پردازنده‬ ‫بكارگیري‬ ‫از‬ ‫حاصل‬ ‫عملكرد‬ ‫افزايش‬ .‫اند‬‫گرافیكي‬
‫ب‬ ‫در‬‫ـ‬‫رن‬‫ـ‬‫امه‬‫غیرگرافی‬ ‫هاي‬‫ـ‬‫محققی‬ ،‫كي‬‫ـ‬‫دانشمن‬ ‫و‬ ‫ن‬‫ـ‬‫عل‬ ‫دان‬‫ـ‬‫مج‬ ‫را‬ ‫کامپیوتر‬ ‫وم‬‫ـ‬‫خ‬ ‫ذوب‬‫ـ‬‫ک‬ ‫ود‬‫ـ‬‫ب‬ ‫رده‬‫ـ‬‫روز‬ ‫به‬ ‫روز‬ ‫که‬ ‫طوري‬ ‫ه‬
‫صفحه‬8
‫ت‬ ‫بر‬‫ـ‬‫تحقی‬ ‫و‬ ‫مقاالت‬ ‫عداد‬‫ـ‬‫ق‬‫ـ‬‫ح‬ ‫ات‬‫ـ‬‫وزه‬GPGPU‫اف‬‫ـ‬‫مي‬ ‫زوده‬،‫شود‬Denish Manocha‫تحقیقاتي‬ ‫تیم‬ ‫اساتید‬ ‫از‬ ‫يكي‬
Gamma‫مي‬ ‫مورد‬ ‫اين‬ ‫در‬ ،‫کارولینا‬ ‫دانشگاه‬ ‫در‬‫گويد‬:
«‫پردازنده‬ ‫پردازشي‬ ‫توان‬ ‫حداکثر‬‫گرافی‬‫ـ‬‫س‬ ‫هر‬ ‫ها‬ ‫كي‬‫ـ‬‫اله‬2‫مي‬ ‫رشد‬ ‫برابر‬‫کند‬‫بازي‬ ‫صنعت‬ ‫که‬ ‫چرا‬ ،‫انگیزه‬ ‫کامپیوتري‬ ‫هاي‬
‫است‬ ‫کرده‬ ‫فراهم‬ ‫را‬ ‫رشد‬ ‫اين‬ ‫اقتصادي‬».
‫همچ‬‫ـ‬‫نی‬‫ـ‬‫هم‬ ‫به‬ ‫ايشان‬ ‫ن‬‫ـ‬‫هم‬ ‫راه‬‫ـ‬‫خ‬ ‫كار‬‫ـ‬‫دانش‬ ‫در‬ ‫ود‬‫ـ‬‫عل‬ ‫كده‬‫ـ‬‫کامپی‬ ‫وم‬‫ـ‬‫دانشگ‬ ‫وتر‬‫ـ‬‫ک‬ ‫اه‬‫ـ‬‫مدت‬ ،‫ارولینا‬‫برگزاري‬ ‫به‬ ‫اقدام‬ ‫هاست‬
‫دوره‬‫ه‬‫ـ‬‫آم‬ ‫اي‬‫ـ‬‫وي‬ ‫وزشي‬‫ـ‬‫مح‬ ‫ژه‬‫ـ‬‫ع‬ ‫اسبات‬‫ـ‬‫م‬‫ـ‬‫کم‬ ‫به‬ ‫ومي‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ـ‬‫رافی‬‫ـ‬‫كي‬‫کرده‬‫ا‬‫مي‬ ‫را‬ ‫آن‬ ‫نويد‬ ‫امر‬ ‫اين‬ .‫ند‬‫که‬ ‫دهد‬
‫بهره‬‫گی‬‫ـ‬‫پ‬ ‫از‬ ‫ري‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫مح‬ ‫در‬ ‫كي‬‫ـ‬‫اسب‬‫ـ‬‫عم‬ ‫ات‬‫ـ‬‫يك‬ ‫به‬ ‫ومي‬‫ـ‬‫مح‬ ‫استاندارد‬ ‫دروس‬ ‫از‬ ‫ي‬‫ـ‬‫آک‬ ‫افل‬‫ـ‬‫شود‬ ‫تبديل‬ ‫ادمیك‬.
‫گ‬‫ـ‬‫روه‬‫ـ‬‫مح‬ ‫از‬ ‫ي‬‫ـ‬‫ق‬‫ـ‬‫قی‬‫ـ‬‫ب‬ ‫ن‬‫ـ‬‫اي‬ ‫ر‬‫ـ‬‫ب‬ ‫ن‬‫ـ‬‫سوپر‬ ‫باالي‬ ‫بسیار‬ ‫پردازشي‬ ‫قدرت‬ ‫که‬ ‫اورند‬‫توان‬ ‫از‬ ‫برداري‬ ‫بهره‬ ‫با‬ ‫کامپیوترها‬‫پردازشي‬
‫پردازنده‬‫بازي‬ ‫صنعت‬ ‫براي‬ ‫که‬ ‫گرافیكیهايي‬‫يافته‬ ‫توسعه‬ ‫کامپیوتري‬ ‫هاي‬‫گفته‬ ‫به‬ .‫است‬ ‫دستیابي‬ ‫قابل‬ ،‫اند‬Vijay Pande
‫پروژه‬ ‫مدير‬Folding@Home«‫بهره‬ ‫با‬‫ت‬ ‫از‬ ‫برداري‬‫ـ‬‫پ‬ ‫وان‬‫ـ‬‫ردازش‬‫ـ‬‫پ‬ ‫ي‬‫ـ‬‫ردازنده‬‫واقعي‬ ‫انقالب‬ ‫يك‬ ‫شاهد‬ ‫ما‬ ‫ها‬ ‫گرافیكي‬
‫نمي‬ ‫تصور‬ ‫قابل‬ ‫هرگز‬ ‫که‬ ‫بوديم‬‫بود‬».
‫د‬‫مق‬ ‫اين‬ ‫ر‬‫ـ‬‫کاربرد‬ ‫به‬ ‫اله‬‫کارت‬ ‫هاي‬‫گرافیك‬‫برنامه‬ ‫در‬‫کاربرد‬ ‫اين‬ ‫در‬ ‫که‬ ‫شده‬ ‫اشاره‬ ‫عمومي‬ ‫هاي‬‫به‬ ‫گرافیكي‬ ‫پردازنده‬ ‫ها‬
‫عن‬‫ـ‬‫کم‬ ‫يك‬ ‫وان‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫مح‬ ‫ردازنده‬‫ـ‬‫اسب‬‫ـ‬‫ق‬ ‫اتي‬‫ـ‬‫ب‬ ‫درتمند‬‫ـ‬‫خ‬ ‫ه‬‫ـ‬‫گرف‬ ‫دمت‬‫ـ‬‫ت‬‫ـ‬‫مي‬ ‫ه‬‫ع‬ ،‫شود‬‫ـ‬‫الوه‬‫مقايسه‬ ‫اين‬ ‫بر‬‫پردازنده‬ ‫میان‬ ‫اي‬
‫گ‬‫ـ‬‫رافیك‬‫ـ‬‫پ‬ ‫و‬ ‫ي‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫م‬‫ـ‬‫رک‬‫ـ‬‫صور‬ ‫زي‬‫گرف‬ ‫ت‬‫ـ‬‫ت‬‫ـ‬‫ت‬ ‫ه‬‫ـ‬‫ب‬ ‫ا‬‫ـ‬‫رت‬‫ـ‬‫ري‬‫نسب‬ ‫هاي‬‫ـ‬‫پردازنده‬ ‫ي‬‫به‬ ‫سپس‬ ‫گردد‬ ‫مشخص‬ ‫گرافیكي‬ ‫هاي‬
‫روش‬‫مت‬ ‫هاي‬‫ـ‬‫برنامه‬ ‫داول‬‫نويس‬‫ـ‬‫عم‬ ‫ي‬‫ـ‬‫پردازن‬ ‫ومي‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫ک‬ ‫کوتاهي‬ ‫اشاره‬ ‫كي‬‫ـ‬‫کاربرد‬ ‫از‬ ‫برخي‬ ‫انتها‬ ‫در‬ ‫و‬ ‫رده‬‫روش‬ ‫هاي‬
‫برنامه‬‫برنامه‬ ‫در‬ ‫مذکور‬ ‫نويسي‬‫است‬ ‫شده‬ ‫بررسي‬ ‫ماشین‬ ‫بینايي‬ ‫و‬ ‫تصوير‬ ‫پردازش‬ ‫هاي‬.
‫صفحه‬7
‫ويژگي‬‫پردازندههاي‬ ‫هاي‬‫گرافیکي‬‫مدرن‬
‫پردازنده‬‫داده‬ ‫از‬ ‫زيادي‬ ‫بسیار‬ ‫حجم‬ ‫که‬ ‫است‬ ‫متعددي‬ ‫محاسباتي‬ ‫واحدهاي‬ ‫داراي‬ ‫گرافیكي‬‫کوتاه‬ ‫در‬ ‫ها‬‫طور‬ ‫به‬ ‫زمان‬ ‫ترين‬
‫پ‬ ‫موازي‬‫ـ‬‫مي‬ ‫ردازش‬‫ط‬ .‫کند‬‫ـ‬‫پن‬ ‫ي‬‫ـ‬‫ج‬‫س‬‫ـ‬‫گذشت‬ ‫ال‬‫ـ‬‫استقب‬ ‫ه‬‫ـ‬‫مشت‬ ‫ال‬‫ـ‬‫بازي‬ ‫اقان‬‫کارت‬ ‫از‬ ‫کامپیوتري‬ ‫هاي‬‫گرافیك‬‫و‬ ‫مدرن‬ ‫هاي‬
‫قدتم‬‫ند‬‫پردازنده‬ ‫تا‬ ‫شده‬ ‫موجب‬ ،‫گرافی‬‫ـ‬‫ه‬ ‫كي‬‫ـ‬‫ع‬ ‫به‬ ‫ا‬‫ـ‬‫ن‬‫ـ‬‫هس‬ ‫وان‬‫ـ‬‫ت‬‫ـ‬‫ه‬‫اص‬ ‫ي‬‫ـ‬‫پ‬ ‫لي‬‫ـ‬‫گ‬ ‫ردازش‬‫ـ‬‫راف‬‫ـ‬‫کامپیوتر‬ ‫در‬ ‫یكي‬‫سرعت‬ ‫به‬ ‫ها‬
‫ت‬‫ـ‬‫چ‬ .‫يابند‬ ‫وسعه‬‫ـ‬‫ه‬‫ـ‬‫ن‬ ‫ار‬‫ـ‬‫ك‬‫ـ‬‫اس‬ ‫ته‬‫ـ‬‫اس‬‫ـ‬‫پ‬ ‫با‬ ‫رابطه‬ ‫در‬ ‫ي‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گراف‬‫ـ‬‫م‬ ‫یكیهاي‬‫ـ‬‫وج‬ ‫درن‬‫ـ‬‫ق‬ ‫که‬ ‫دارد‬ ‫ود‬‫ـ‬‫ابلیت‬‫ه‬‫ـ‬‫آن‬ ‫اي‬‫ـ‬‫ه‬‫ـ‬‫ب‬ ‫را‬ ‫ا‬‫ـ‬‫ه‬
‫خ‬‫ـ‬‫مي‬ ‫ترسیم‬ ‫وبي‬‫کند‬.
،‫اول‬‫پردازنده‬‫هاي‬‫پردازنده‬ ،‫خود‬ ‫موازي‬ ‫معماري‬ ‫لطف‬ ‫به‬ ‫گرافیكي‬‫هستند‬ ‫سريعي‬ ‫بسیار‬ ‫هاي‬.
‫هستند‬ ‫ارزان‬ ،‫قیمت‬ ‫به‬ ‫کارايي‬ ‫مالك‬ ‫به‬ ‫توجه‬ ‫با‬ ،‫دوم‬.
‫پردازنده‬ ‫به‬ ‫نسبت‬ ‫کمتري‬ ‫بسیار‬ ‫مصرفي‬ ‫توان‬ ‫آنها‬ ،‫وات‬ ‫به‬ ‫کارايي‬ ‫مالك‬ ‫به‬ ‫توجه‬ ‫با‬ ،‫سوم‬‫تعجب‬ ‫شايد‬ .‫دارند‬ ‫ها‬ ‫مرکزي‬
‫باشی‬ ‫کرده‬‫ـ‬‫سو‬ ‫اين‬ ‫و‬ ‫د‬‫پردازنده‬ ‫اگر‬ ‫که‬ ‫باشد‬ ‫شده‬ ‫ايجاد‬ ‫شما‬ ‫ذهن‬ ‫در‬ ‫ال‬‫ارزان‬ ،‫سريعتر‬ ‫ها‬ ‫گرافیكي‬‫از‬ ‫تر‬ ‫مصرف‬ ‫کم‬ ‫و‬ ‫تر‬
‫پردازنده‬‫مرکزيه‬‫ـ‬‫برنامه‬ ‫تمامي‬ ‫آنها‬ ‫از‬ ‫يكي‬ ‫کمك‬ ‫به‬ ‫کامپیوتر‬ ‫چرا‬ ‫هستند‬ ‫ا‬‫نمي‬ ‫اجرا‬ ‫را‬ ‫خود‬ ‫هاي‬‫کند‬‫!؟‬
‫محدوديت‬ ‫که‬ ‫است‬ ‫نهفته‬ ‫نكته‬ ‫چهارمین‬ ‫در‬ ‫سوال‬ ‫اين‬ ‫پاسخ‬‫پردازنده‬ ‫هاي‬‫گرافیكي‬‫اختصاصي‬ ‫پردازنده‬ ‫يك‬ ‫عنوان‬ ‫به‬ ‫را‬
‫مي‬ ‫بیان‬‫کند‬.
‫پردازنده‬‫هاي‬‫گرافی‬‫ـ‬‫ك‬‫ـ‬‫برنامه‬ ‫سريع‬ ‫پردازش‬ ‫به‬ ‫قادر‬ ‫تنها‬ ‫ي‬‫بازي‬ ‫يك‬ ‫همانند‬ ‫که‬ ‫هستند‬ ‫هايي‬‫پیچیده‬ ‫محاسبات‬ ،‫کامپیوتري‬
‫سن‬ ‫و‬‫ـ‬‫گی‬‫ـ‬‫نم‬ ‫شما‬ ‫بنابراين‬ .‫دارند‬ ‫همزماني‬ ‫ن‬‫ـ‬‫ي‬‫برنامه‬ ‫توانید‬Word‫مجموعه‬Office‫پردازنده‬ ‫يك‬ ‫کمك‬ ‫به‬ ‫را‬‫گرافیكي‬
‫برنامه‬ ‫گونه‬ ‫اين‬ ‫که‬ ‫چرا‬ !‫ببريد‬ ‫لذت‬ ‫آن‬ ‫عملكرد‬ ‫افزايش‬ ‫از‬ ‫و‬ ‫کرده‬ ‫اجرا‬‫دستگاه‬ ‫سوي‬ ‫از‬ ‫بیشتر‬ ‫ها‬‫خروجي‬ ‫و‬ ‫ورودي‬ ‫هاي‬
‫شده‬ ‫محدود‬‫برنامه‬ ‫کلي‬ ‫طور‬ ‫به‬ ،‫پردازنده‬ ‫سوي‬ ‫از‬ ‫تا‬ ‫اند‬‫آنها‬ ‫در‬ ‫خروجي‬ ‫و‬ ‫ورودي‬ ‫نرخ‬ ‫به‬ ‫نسبت‬ ‫محاسبات‬ ‫نرخ‬ ‫که‬ ‫هايي‬
‫ب‬‫ـ‬‫س‬‫ـ‬‫ی‬‫ـ‬‫ب‬ ‫ار‬‫ـ‬‫ب‬ ‫زرگ‬‫ـ‬‫چ‬ ‫داراي‬ ‫و‬ ‫وده‬‫ـ‬‫گ‬‫ـ‬‫ال‬‫ـ‬‫م‬ ‫ي‬‫ـ‬‫ح‬‫ـ‬‫اس‬‫ـ‬‫ب‬‫ـ‬‫ات‬‫ـ‬‫ي‬(Arithmetic Intensity)‫ب‬‫ـ‬‫االي‬‫ـ‬‫ب‬ ‫ي‬‫ـ‬‫اش‬‫ـ‬‫ن‬‫ـ‬‫ب‬ ‫د‬‫ـ‬‫توسط‬ ‫خوبي‬ ‫ه‬
‫پ‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ـ‬‫پ‬ ‫رافیكي‬‫ـ‬‫ردازش‬‫ش‬‫ـ‬‫اف‬ ‫و‬ ‫ده‬‫ـ‬‫ع‬ ‫زايش‬‫ـ‬‫م‬‫ـ‬‫سازي‬ ‫پیاده‬ ‫به‬ ‫نسبت‬ ‫محسوسي‬ ‫لكرد‬‫پردازنده‬ ‫پايه‬ ‫بر‬‫خواهند‬ ‫مرکزي‬
‫داشت‬.
‫صفحه‬0
‫اکث‬‫ـ‬‫ب‬ ‫ر‬‫ـ‬‫رنامه‬‫عن‬ ‫به‬ ،‫هستند‬ ‫دسته‬ ‫این‬ ‫از‬ ‫علمی‬ ‫های‬‫ـ‬‫ح‬ ‫برنامه‬ ‫مثال‬ ‫وان‬‫ـ‬‫دست‬ ‫ل‬‫ـ‬‫مع‬ ‫گاه‬‫ـ‬‫خط‬ ‫ادالت‬‫ـ‬‫برن‬ ،‫ی‬‫ـ‬‫امه‬‫چند‬ ‫که‬ ‫است‬ ‫ای‬
‫مع‬‫ـ‬‫س‬ ‫ادله‬‫ـ‬‫دریاف‬ ‫ورودی‬ ‫از‬ ‫اده‬‫ـ‬‫ساعت‬ ‫است‬ ‫ممکن‬ ‫که‬ ‫پیچیده‬ ‫محاسبات‬ ‫سری‬ ‫یك‬ ‫اعمال‬ ‫از‬ ‫بعد‬ ‫و‬ ‫کرده‬ ‫ت‬،‫ببرد‬ ‫زمان‬ ‫ها‬
‫چن‬‫ـ‬‫ج‬ ‫د‬‫ـ‬‫می‬ ‫ارسال‬ ‫خروجی‬ ‫به‬ ‫واب‬‫کند‬.‫برنامه‬ ‫دسته‬ ‫این‬‫سنگین‬ ‫محاسبات‬ ،‫آنها‬ ‫ارتباطات‬ ‫نرخ‬ ‫بودن‬ ‫کم‬ ‫بر‬ ‫عالوه‬ ‫که‬ ‫ها‬‫ی‬
‫پردازنده‬ ‫توسط‬ ،‫دارند‬ ‫تکراری‬ ‫جنبه‬ ‫آنها‬ ‫محاسبات‬ ‫اغلب‬ ‫و‬ ‫داشته‬‫می‬ ‫پردازش‬ ‫خوبی‬ ‫به‬ ‫گرافیکی‬‫شوند‬.
‫توانايي‬ ‫مقايسه‬‫پردازنده‬ ‫هاي‬‫پردازنده‬ ‫با‬ ‫گرافيكي‬‫مركزي‬
‫شرکت‬AMD‫ک‬‫ـ‬‫اخی‬ ‫ه‬‫ـ‬‫ش‬ ‫را‬‫ـ‬‫رکت‬ATI‫خ‬ ‫را‬‫ـ‬‫ریده‬‫ت‬ ،‫است‬‫ـ‬‫پردازنده‬ ‫خام‬ ‫پردازشی‬ ‫وان‬‫پردازنده‬ ‫با‬ ‫را‬ ‫گرافیکی‬ ‫های‬‫های‬
‫م‬‫ـ‬‫رک‬‫مع‬ ‫زی‬‫ـ‬‫خ‬ ‫اصر‬‫ـ‬‫سال‬ ‫طی‬ ‫ود‬‫ب‬ ، ‫است‬ ‫کرده‬ ‫مقایسه‬ ‫اخیر‬ ‫های‬‫ـ‬‫اس‬ ‫ر‬‫ـ‬‫نت‬ ‫اس‬‫ـ‬‫ای‬‫ـ‬‫ای‬ ‫ج‬‫ـ‬‫(شکل‬ ‫تحقیق‬ ‫ن‬1‫ت‬ )‫ـ‬‫پ‬ ‫وان‬‫ـ‬‫ردازش‬‫ـ‬‫ی‬
‫پ‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫ه‬‫ـ‬‫گ‬ ‫ای‬‫ـ‬‫پردازنده‬ ‫به‬ ‫نسبت‬ ‫زیادی‬ ‫رشد‬ ‫رافیکی‬‫است‬ ‫داشته‬ ‫اخیر‬ ‫سال‬ ‫چندین‬ ‫طی‬ ‫مرکزی‬ ‫های‬.
‫ش‬ ‫در‬‫ـ‬‫کل‬1‫ک‬‫ـ‬‫پردازنده‬ ‫ارایی‬‫ه‬‫ـ‬‫گ‬ ‫ای‬‫ـ‬‫رافی‬‫ـ‬‫ک‬‫ـ‬‫ی‬ATI‫مق‬ ‫در‬‫ـ‬‫ای‬‫ـ‬‫س‬‫ـ‬‫پ‬ ‫با‬ ‫ه‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫م‬‫ـ‬‫رک‬‫ـ‬‫ه‬ ‫زی‬‫ـ‬‫ای‬AMD‫اب‬ ‫از‬‫ـ‬‫ت‬‫ـ‬‫ت‬ ‫دای‬‫ـ‬‫ول‬‫ـ‬‫د‬
‫پ‬‫ـ‬‫ردازنده‬‫ن‬ ‫گرافیکیها‬‫ـ‬‫ش‬‫ـ‬‫واحد‬ ‫با‬ ‫خام‬ ‫پردازشی‬ ‫توان‬ ،‫شده‬ ‫داده‬ ‫ان‬Gigaflops‫مشاهده‬ ‫که‬ ‫همانطور‬ ،‫است‬ ‫شده‬ ‫سنجیده‬
‫می‬‫پ‬ ‫توان‬ ‫کنید‬‫ـ‬‫ردازش‬‫ـ‬‫خ‬ ‫ی‬‫ـ‬‫پ‬ ‫ام‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گرافیکی‬‫سریع‬ ‫از‬ ‫بیشتر‬ ‫بسیار‬ ‫ها‬‫پردازنده‬ ‫ترین‬‫بوده‬ ‫ها‬ ‫مرکزی‬‫فاصله‬ ‫رفته‬ ‫رفته‬ ‫و‬
‫می‬ ‫بیشتر‬ ‫دو‬ ‫این‬ ‫میان‬‫شود‬‫ای‬ ‫با‬ .‫ـ‬‫ف‬ ‫ن‬‫ـ‬‫می‬ ‫رض‬‫ت‬‫ـ‬‫ت‬ ‫وان‬‫ـ‬‫پ‬ ‫وان‬‫ـ‬‫فوق‬ ‫خام‬ ‫ردازشی‬‫العاده‬‫پا‬ ‫و‬ ‫دست‬ ‫دالر‬ ‫هزار‬ ‫از‬ ‫کمتر‬ ‫با‬ ‫را‬ ‫ای‬
‫سال‬ ‫که‬ ‫حالی‬ ‫در‬ ‫کرد‬‫ک‬ ‫اجاره‬ ،‫پیش‬ ‫ها‬‫ـ‬‫یك‬ ‫ردن‬Gigaflops‫سوپرکامپیوتر‬ ‫در‬ ‫پردازشی‬ ‫توان‬Boewulf‫ن‬‫ـ‬‫به‬ ‫زدیك‬
11‫داشت‬ ‫هزینه‬ ‫دالر‬ ‫هزار‬.
‫ب‬‫پردازنده‬ ‫کاغذ‬ ‫روی‬ ‫بر‬ ‫اینکه‬ ‫ا‬‫خارق‬ ‫پردازشی‬ ‫توان‬ ‫گرافیکیها‬‫العاده‬‫دارد‬ ‫وجود‬ ‫متعددی‬ ‫عوامل‬ ‫واقعیت‬ ‫در‬ ‫اما‬ ،‫دارند‬ ‫ای‬
‫عمل‬ ‫که‬‫ـ‬‫کرد‬‫نه‬‫ـ‬‫می‬ ‫محدود‬ ‫را‬ ‫آنها‬ ‫ایی‬‫کند‬‫همی‬ ‫به‬ .‫ـ‬‫خ‬ ‫ن‬‫ـ‬،‫مقایسه‬ ‫اطر‬‫معیار‬ ‫اساس‬ ‫بر‬ ‫تنها‬Gigaflops‫گمراه‬ ‫حدودی‬ ‫تا‬
‫است‬ ‫کننده‬‫پردازنده‬ ‫عمل‬ ‫در‬ ‫اما‬ ،‫سریع‬ ‫چقدر‬ ‫ها‬ ‫گرافیکی‬‫پردازنده‬ ‫از‬ ‫تر‬‫هستند؟‬ ‫ها‬ ‫مرکزی‬
‫شکل‬1-‫پردازنده‬ ‫خام‬ ‫پردازشی‬ ‫توان‬‫گرافیکی‬
‫پردازنده‬ ‫با‬ ‫مقایسه‬ ‫در‬‫مرکزی‬
‫صفحه‬19
‫تحقیقاتی‬ ‫تیم‬Gamma‫گرافیکی‬ ‫پردازنده‬ ‫آزمایشگاهی‬ ‫محیط‬ ‫یك‬ ‫در‬ ‫کارولینا‬ ‫دانشگاه‬ ‫به‬ ‫وابسته‬Geforce 7900
GTX‫ب‬ ‫را‬‫ـ‬‫ق‬ ‫پردازنده‬ ‫دو‬ ‫ا‬‫ـ‬‫در‬‫تمن‬‫ـ‬‫د‬Xeon 3.6GHz‫و‬Opteron 280‫مق‬‫ـ‬‫ک‬ ‫ایسه‬‫ـ‬‫رده‬‫ان‬‫ـ‬‫د‬‫اعض‬ .‫ـ‬‫ای‬ ‫ای‬‫ـ‬‫تی‬ ‫ن‬‫ـ‬‫از‬ ‫که‬ ‫م‬
‫پی‬‫ـ‬‫شت‬‫ـ‬‫ازان‬GPGPU‫شم‬ ‫به‬‫ـ‬‫می‬ ‫ار‬‫روند‬‫برنامه‬ ‫سه‬ ‫در‬ ،«‫سازی‬ ‫مرتب‬»،«‫یا‬ ‫سریع‬ ‫فوریه‬ ‫تبدیل‬FFT»‫و‬«‫ماتریسی‬ ‫ضرب‬»
‫نتیج‬‫ـ‬‫آزم‬ ‫ه‬‫ـ‬‫ایش‬‫ـ‬‫م‬ ‫را‬ ‫خود‬ ‫ات‬‫ـ‬‫نمودند‬ ‫نتشر‬‫ای‬ ،‫ـ‬‫نت‬ ‫ن‬‫ـ‬‫ای‬‫ـ‬‫ن‬ ‫ج‬‫ـ‬‫ش‬‫ـ‬‫م‬ ‫ان‬‫ـ‬‫ی‬‫ک‬ ‫دهد‬‫ـ‬‫ه‬‫نسخ‬‫ـ‬‫به‬ ‫ه‬‫ـ‬‫ین‬‫ـ‬‫ش‬ ‫ه‬‫ــ‬‫ای‬ ‫ده‬‫ـ‬‫س‬ ‫ن‬‫ـ‬‫برن‬ ‫ه‬‫ـ‬‫امه‬‫ب‬ ‫ها‬‫ـ‬‫رای‬
‫پ‬‫ـ‬‫ردازنده‬‫گرافیکی‬1‫الی‬5‫نسخه‬ ‫از‬ ‫برابر‬‫پردازنده‬ ‫از‬ ‫که‬ ‫آنها‬ ‫استاندارد‬ ‫های‬‫خود‬ ‫پیچیده‬ ‫محاسبات‬ ‫پردازش‬ ‫برای‬ ‫مرکزی‬
‫می‬ ‫استفاده‬‫سریع‬ ‫کنند‬‫است‬ ‫تر‬.
‫پردازنده‬‫پردازنده‬ ‫از‬ ‫گرافيكي‬‫سريع‬ ‫مركزي‬‫است‬ ‫تر‬
‫ای‬ ‫پاسخ‬‫ـ‬‫یك‬ ‫در‬ ‫سوال‬ ‫ن‬‫خ‬ ‫کلمه‬‫ـ‬‫م‬ ‫الصه‬‫ـ‬‫ی‬:‫شود‬«‫موازی‬‫سازی‬.»‫برنامه‬ ‫مدل‬‫برنامه‬ ‫نویسی‬‫پردازنده‬ ‫برای‬ ‫که‬ ‫هایی‬‫مرکزی‬
‫می‬ ‫نوشته‬‫ی‬ ‫اصل‬ ‫در‬ ‫شوند‬‫ـ‬‫کد‬ ‫شبه‬ ‫که‬ ‫معنی‬ ‫این‬ ‫به‬ ‫است‬ ‫سریال‬ ‫مدل‬ ‫ك‬‫به‬ ‫باال‬ ‫از‬ ‫ترتیب‬ ‫به‬ ‫برنامه‬ ‫یك‬ ‫دهنده‬ ‫تشکیل‬ ‫های‬
‫پ‬‫ـ‬‫اجرا‬ ،‫ترجمه‬ ‫از‬ ‫پس‬ ‫و‬ ‫شده‬ ‫خوانده‬ ‫ایین‬‫از‬ ‫ندرت‬ ‫به‬ ‫آن‬ ‫در‬ ‫و‬ ‫شده‬«‫موازی‬‫سازی‬»‫پ‬ ‫در‬‫ـ‬‫داده‬ ‫ردازش‬‫ه‬‫ـ‬‫می‬ ‫استفاده‬ ‫ا‬‫شود‬.
‫م‬‫ـ‬‫عم‬‫ـ‬‫برای‬ ‫شده‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ‫اری‬‫پردازنده‬‫پایه‬ ‫مدل‬ ‫این‬ ‫مبنای‬ ‫بر‬ ‫نیز‬ ‫مرکزی‬‫قابلیت‬ ‫و‬ ‫است‬ ‫شده‬ ‫ریزی‬‫برای‬ ‫چندانی‬ ‫های‬
‫اج‬‫ـ‬‫چ‬ ‫رای‬‫ـ‬‫ن‬‫ـ‬‫دی‬‫ـ‬‫دست‬ ‫ن‬‫ـ‬‫ورال‬‫ـ‬‫ع‬‫ـ‬‫م‬‫ـ‬‫مش‬ ‫ل‬‫ـ‬‫اب‬‫ـ‬‫ب‬ ‫را‬ ‫ه‬‫ـ‬‫ص‬ ‫ه‬‫ـ‬‫ه‬ ‫ورت‬‫ـ‬‫م‬‫ـ‬‫ن‬ ‫زمان‬‫ـ‬‫دارد‬‫ح‬ ‫در‬ .‫ـ‬‫ک‬ ‫الی‬‫ـ‬‫ب‬ ‫مدل‬ ‫ه‬‫ـ‬‫رنامه‬‫ن‬‫ـ‬‫ویس‬‫ـ‬‫برنامه‬ ‫ی‬‫های‬
‫پ‬‫ـ‬‫ردازنده‬‫گ‬‫ـ‬‫که‬ ‫رافیکی‬Stream‫ن‬‫ـ‬‫دارد‬ ‫ام‬‫اص‬ ‫در‬ ،‫ـ‬‫ی‬ ‫ل‬‫ـ‬‫م‬ ‫ك‬‫ـ‬‫م‬ ‫دل‬‫ـ‬‫اس‬ ‫وازی‬‫ـ‬‫ق‬ ‫و‬ ‫ت‬‫ـ‬‫ابلی‬‫ـ‬‫ب‬ ‫ت‬‫ـ‬‫ه‬‫ـ‬‫تکنیك‬ ‫از‬ ‫گیری‬ ‫ره‬‫های‬
«‫موازی‬‫سازی‬»‫پردازنده‬ ‫هرچند‬ ،‫است‬ ‫شده‬ ‫گنجانده‬ ‫آن‬ ‫در‬‫قابلیت‬ ‫با‬ ‫جدید‬ ‫مرکزیهای‬‫نظیر‬ ‫هایی‬HyperThreading،
SSE،3D Now‫بکارگی‬ ‫و‬‫ـ‬‫ری‬‫مع‬‫ـ‬‫ماری‬‫ه‬‫ـ‬‫چن‬ ‫ای‬‫ـ‬‫د‬‫هسته‬‫نوید‬ ‫ای‬«‫موازی‬‫سازی‬»‫می‬ ‫را‬ ‫بیشتر‬‫موازی‬ ‫نرخ‬ ‫اما‬ ،‫دهند‬‫سازی‬
‫پردازنده‬ ‫یك‬ ‫از‬ ‫کمتر‬ ‫بسیار‬ ‫آنها‬‫با‬ ‫گرافیکی‬111‫است‬ ‫پردازشی‬ ‫واحد‬.
‫ب‬‫ـ‬‫خ‬ ‫ر‬‫ـ‬‫پ‬ ‫الف‬‫ـ‬‫ردازنده‬‫گرافی‬‫ـ‬‫پردازنده‬ ‫برای‬ ‫شده‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ‫حافظه‬ ‫زیرسیستم‬ ،‫کی‬‫به‬ ‫نیاز‬ ‫که‬ ‫کاربردهایی‬ ‫برای‬ ‫مرکزیها‬
‫دست‬‫ـ‬‫ح‬ ‫به‬ ‫رسی‬‫ـ‬‫ت‬ ‫با‬ ‫افظه‬‫ـ‬‫دارن‬ ‫کم‬ ‫اخیر‬‫ـ‬‫اس‬ ‫شده‬ ‫بهینه‬ ‫د‬‫ـ‬‫برنامه‬ ‫برای‬ ‫نه‬ ‫ت‬‫با‬ ،‫دارند‬ ‫نیاز‬ ‫وسیعی‬ ‫حافظه‬ ‫باند‬ ‫پهنای‬ ‫به‬ ‫که‬ ‫هایی‬
‫پردازنده‬ ‫سریال‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫به‬ ‫توجه‬‫بخش‬ ،‫مرکزی‬‫مرجع‬ ‫باید‬ ‫برنامه‬ ‫یك‬ ‫های‬‫افتادن‬ ‫جریان‬ ‫به‬ ‫برای‬ ‫را‬ ‫حافظه‬ ‫های‬
‫ق‬‫ـ‬‫سم‬‫ـ‬‫ب‬ ‫ت‬‫ـ‬‫ب‬ ‫عدی‬‫ـ‬‫رنامه‬‫ب‬ ‫سرعت‬ ‫به‬ ،‫ـ‬‫رگ‬‫ـ‬‫در‬ ‫دلیل‬ ‫همین‬ ‫به‬ ،‫است‬ ‫حافظه‬ ‫به‬ ‫دسترسی‬ ‫در‬ ‫کم‬ ‫تاخیر‬ ‫امر‬ ‫این‬ ‫الزمه‬ ‫که‬ ‫ردانند‬
‫حافظه‬ ‫مراتب‬ ‫سلسله‬‫پردازنده‬ ‫ی‬‫برساند‬ ‫حداقل‬ ‫به‬ ‫را‬ ‫تاخیر‬ ‫این‬ ‫تا‬ ‫شده‬ ‫گنجانده‬ ‫نهان‬ ‫حافظه‬ ‫الیه‬ ‫چندین‬ ‫مرکزی‬.
‫صفحه‬11
‫مق‬ ‫در‬‫ـ‬‫م‬ ‫در‬ ،‫ابل‬‫ـ‬‫ب‬ ‫دل‬‫ـ‬‫رنامه‬‫ن‬‫ـ‬‫ویسی‬Stream‫برن‬ ‫که‬‫ـ‬‫امه‬‫پردازنده‬ ‫های‬‫گ‬‫ـ‬‫رافی‬‫ـ‬‫کی‬‫چ‬ ‫در‬‫ـ‬‫هارچ‬‫ـ‬‫وب‬‫ن‬ ‫آن‬‫ـ‬‫م‬ ‫وشته‬‫ـ‬‫ی‬‫شوند‬،
‫گست‬ ‫حافظه‬ ‫به‬ ‫دسترسی‬ ‫باند‬ ‫پهنای‬‫ـ‬‫رده‬‫ت‬‫ـ‬‫اهمی‬ ‫ر‬‫ـ‬‫بیشت‬ ‫ت‬‫ـ‬،‫مدل‬ ‫این‬ ‫در‬ ‫که‬ ‫چرا‬ ،‫دارد‬ ‫حافظه‬ ‫به‬ ‫دسترسی‬ ‫تاخیر‬ ‫به‬ ‫نسبت‬ ‫ری‬
‫برنامه‬‫پردازنده‬ ‫های‬‫اج‬ ‫موازی‬ ‫صورت‬ ‫به‬ ‫گرافیکی‬‫ـ‬‫ش‬ ‫را‬‫ـ‬‫واب‬ ‫و‬ ‫ده‬‫ـ‬‫ست‬‫ـ‬‫چن‬ ‫گی‬‫ـ‬‫می‬ ‫دانی‬‫ـ‬‫ان‬‫ن‬ ‫وجود‬ ‫آنها‬‫ـ‬‫دلی‬ ‫همین‬ ‫به‬ .‫دارد‬‫ـ‬‫ل‬
‫ب‬‫ـ‬‫رنامه‬‫پهنای‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫هایی‬‫حافظه‬ ‫باند‬‫پردازنده‬ ‫با‬ ،‫دارند‬ ‫زیادی‬‫گرافیکی‬‫سریع‬‫پردازنده‬ ‫از‬‫مرکزی‬‫می‬ ‫اجرا‬‫شوند‬.
‫پ‬‫ـ‬‫ردازنده‬‫مرکزی‬‫می‬ ‫را‬ ‫پردازشی‬ ‫و‬ ‫محاسباتی‬ ‫عملیات‬ ‫نوع‬ ‫هر‬ ‫که‬ ‫است‬ ‫عمومی‬ ‫کامال‬ ‫پردازنده‬ ‫یك‬‫داد‬ ‫انجام‬ ‫آن‬ ‫با‬ ‫توان‬
‫ام‬‫ـ‬‫پردازنده‬ ‫ا‬‫گرافی‬‫ـ‬‫ی‬ ‫کی‬‫ـ‬‫پردازن‬ ‫ك‬‫در‬ ‫دلیل‬ ‫همین‬ ‫به‬ ،‫شده‬ ‫طراحی‬ ‫گرافیکی‬ ‫پردازش‬ ‫ویژه‬ ‫که‬ ‫است‬ ‫اختصاصی‬ ‫کامال‬ ‫ده‬
‫نویسی‬ ‫برنامه‬ ‫مدل‬Stream‫م‬ ‫از‬ ‫دنیایی‬‫ـ‬‫حدودی‬‫ـ‬‫ت‬‫وج‬ ‫ها‬‫ـ‬‫مق‬ ‫در‬ ‫و‬ ‫دارد‬ ‫ود‬‫ـ‬‫ترفند‬ ‫از‬ ‫دیگری‬ ‫دنیایی‬ ‫آن‬ ‫ابل‬‫شده‬ ‫ایجاد‬ ‫ها‬
‫برن‬ ‫به‬ ‫که‬‫ـ‬‫نوی‬ ‫امه‬‫ـ‬‫ام‬ ‫س‬‫ـ‬‫اج‬ ‫کان‬‫ـ‬‫غیرگرافی‬ ‫برنامه‬ ‫یك‬ ‫رای‬‫ـ‬‫کم‬ ‫به‬ ‫کی‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫ردازنده‬‫گر‬‫می‬ ‫را‬ ‫افیکی‬‫محدودیت‬ ‫این‬ .‫دهد‬‫ها‬
‫موج‬‫ـ‬‫تا‬ ‫اند‬ ‫شده‬ ‫ب‬GPGPU‫شاخه‬ ‫در‬ ‫تنها‬‫خارج‬ ‫عوامل‬ ‫این‬ ‫تك‬ ‫تك‬ ‫بررسی‬ ‫که‬ ‫کند‬ ‫پیدا‬ ‫کاربرد‬ ‫علوم‬ ‫از‬ ‫خاصی‬ ‫های‬
‫است‬ ‫مقاله‬ ‫این‬ ‫حوصله‬ ‫از‬.
‫ابزار‬‫برنامه‬ ‫هاي‬‫نويسي‬GPGPU
‫ب‬ ‫زبان‬‫ـ‬‫رنامه‬‫ن‬‫ـ‬‫ویسی‬C++‫هم‬‫ـ‬‫چن‬‫ـ‬‫تم‬ ‫بر‬ ‫ان‬‫ـ‬‫ابزار‬ ‫امی‬‫نویسی‬ ‫برنامه‬ ‫های‬‫و‬ ‫گرافیکی‬GPGPU‫حکم‬‫می‬ ‫فرمایی‬‫کلیه‬ ‫و‬ ‫کند‬
‫اب‬‫ـ‬‫زار‬‫ب‬ ‫های‬‫ـ‬‫رنامه‬‫ای‬ ‫نویسی‬‫ـ‬‫مشتق‬ ‫جمله‬ ‫از‬ ‫حوزه‬ ‫ن‬‫می‬ ‫شمار‬ ‫به‬ ‫آن‬ ‫های‬‫ن‬ ‫به‬ ‫و‬ ‫روند‬‫ـ‬‫گ‬ ‫وعی‬‫ـ‬‫با‬ ‫را‬ ‫آن‬ ‫اصلی‬ ‫دستورات‬ ‫و‬ ‫رامر‬
‫برنامه‬ ‫برای‬ ‫کلی‬ ‫طور‬ ‫به‬ .‫دارند‬ ‫همراه‬ ‫به‬ ‫خود‬‫نویسی‬GPGPU‫می‬ ‫اشاره‬ ‫آنها‬ ‫به‬ ‫ترتیب‬ ‫به‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫روش‬ ‫سه‬‫ک‬‫نیم‬:
0-API‫گرافیکی‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬ ‫و‬ ‫ها‬
‫ای‬‫ـ‬‫ابت‬ ‫در‬ ‫که‬ ‫روش‬ ‫ن‬‫ـ‬‫بسی‬ ‫آن‬ ‫از‬ ‫دا‬‫ـ‬‫استف‬ ‫ار‬‫ـ‬‫می‬ ‫اده‬‫مش‬ ‫کامال‬ ،‫شد‬‫ـ‬‫نوی‬ ‫برنامه‬ ‫ابه‬‫ـ‬‫س‬‫ـ‬‫ای‬ ‫به‬ ،‫است‬ ‫گرافیکی‬ ‫ی‬‫ـ‬‫م‬ ‫ن‬‫ـ‬‫ع‬‫ـ‬‫ک‬ ‫نا‬‫ـ‬‫ه‬
‫برن‬‫ـ‬‫ن‬ ‫امه‬‫ـ‬‫وی‬‫ـ‬‫ف‬ ‫با‬ ‫س‬‫ـ‬‫آش‬ ‫رض‬‫ـ‬‫از‬ ‫یکی‬ ‫به‬ ‫بودن‬ ‫نا‬API‫مانند‬ ‫گرافیکی‬ ‫های‬DirectX‫یا‬OpenGL‫گرفتن‬ ‫نظر‬ ‫در‬ ‫و‬
‫تم‬‫ـ‬‫م‬ ‫امی‬‫ـ‬‫حدودی‬‫ـ‬‫ت‬‫م‬ ‫های‬‫ـ‬‫م‬ ‫در‬ ‫وجود‬‫ـ‬‫ب‬ ‫دل‬‫ـ‬‫رن‬‫ـ‬‫ن‬ ‫امه‬‫ـ‬‫وی‬‫ـ‬‫س‬‫ـ‬‫ی‬Stream‫گرافیکی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫غیرگرافیکی‬ ‫برنامه‬ ،
‫شبیه‬‫می‬ ‫دنبال‬ ‫را‬ ‫آن‬ ‫سازی‬ ‫پیاده‬ ‫مراحل‬ ‫و‬ ‫کرده‬ ‫سازی‬‫برنامه‬ ‫این‬ ‫بر‬ ‫عالوه‬ .‫کند‬‫می‬ ‫نویس‬‫بودن‬ ‫آشنا‬ ‫صورت‬ ‫در‬ ‫تواند‬
‫ب‬‫ـ‬‫ب‬ ‫زبان‬ ‫ه‬‫ـ‬‫نویسی‬ ‫رنامه‬Cg‫ک‬‫ـ‬‫ت‬ ‫ه‬‫ـ‬‫ش‬ ‫وسط‬‫ـ‬‫رکت‬NVIDIA‫ت‬‫ـ‬‫ش‬ ‫داده‬ ‫وسعه‬‫ـ‬‫اس‬ ‫ده‬‫ـ‬‫در‬ ‫را‬ ‫خود‬ ‫غیرگرافیکی‬ ‫برنامه‬ ،‫ت‬
‫دهد‬ ‫توسعه‬ ‫محیط‬ ‫این‬.
‫صفحه‬12
‫ای‬ ‫الزمه‬‫ـ‬‫آشن‬ ‫روش‬ ‫ن‬‫ـ‬‫برنامه‬ ‫محیط‬ ‫با‬ ‫کامل‬ ‫ایی‬‫نویسی‬‫محدودیت‬ ‫و‬ ‫گرافیکی‬‫برنامه‬ ‫های‬‫نویسی‬GPGPU‫می‬‫به‬ ‫باشد‬
‫همی‬‫ـ‬‫دلی‬ ‫ن‬‫ـ‬‫برن‬ ‫ل‬‫ـ‬‫امه‬‫ن‬‫ـ‬‫ب‬ ‫ویس‬‫ـ‬‫ب‬ ‫یشتر‬‫ـ‬‫پیاده‬ ‫نحوه‬ ‫روی‬ ‫بر‬ ‫اید‬‫مرتفع‬ ‫و‬ ‫سازی‬‫محدودیت‬ ‫کردن‬‫بر‬ ‫تا‬ ‫باشد‬ ‫داشته‬ ‫تمرکز‬ ‫ها‬
‫الگوریتم‬ ‫روی‬‫خود‬ ‫برنامه‬ ‫های‬.
1-‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬GPGPU‫ها‬ ‫کتابخانه‬ ‫و‬
‫پیچی‬ ‫به‬ ‫توجه‬ ‫با‬‫ـ‬‫برنامه‬ ‫سازی‬ ‫پیاده‬ ،‫اول‬ ‫روش‬ ‫دگی‬‫زبان‬ ‫دلیل‬ ‫همین‬ ‫به‬ ‫است‬ ‫مشکل‬ ‫بسیار‬ ‫آن‬ ‫توسط‬ ‫بزرگ‬ ‫های‬‫های‬
‫برن‬‫ـ‬‫نوی‬ ‫امه‬‫ـ‬‫س‬‫ـ‬‫خاص‬ ‫ی‬GPGPU‫نظر‬ ‫در‬ ‫با‬ ‫که‬ ‫اند‬ ‫شده‬ ‫ابداع‬‫محدودیت‬ ‫گرفتن‬‫برنامه‬ ‫مدل‬ ‫های‬‫نویسی‬Stream‫به‬
‫برن‬‫ـ‬‫امه‬‫نوی‬‫ـ‬‫می‬ ‫امکان‬ ‫س‬‫دهن‬‫ـ‬‫الگوریتم‬ ‫روی‬ ‫بر‬ ‫بیشتری‬ ‫تمرکز‬ ‫تا‬ ‫د‬‫همچنی‬ ،‫باشد‬ ‫داشته‬ ‫خود‬ ‫برنامه‬ ‫های‬‫ـ‬‫ای‬ ‫ن‬‫ـ‬‫زبان‬ ‫ن‬‫ها‬
‫برنامه‬ ‫مستقیم‬ ‫تعامل‬‫با‬ ‫نویس‬API‫برده‬ ‫بین‬ ‫از‬ ‫را‬ ‫گرافیکی‬‫برنامه‬ ‫و‬ ‫اند‬‫پ‬ ‫جهت‬ ‫آنها‬ ‫با‬ ‫آشنایی‬ ‫به‬ ‫نیازی‬ ‫نویس‬‫یاده‬‫سازی‬
‫برن‬ ‫زبان‬ ‫دو‬ ‫کنون‬ ‫تا‬ .‫ندارد‬ ‫خود‬ ‫برنامه‬‫ـ‬‫نویسی‬ ‫امه‬GPGPU‫از‬ ‫عبارتند‬ ‫زبان‬ ‫دو‬ ‫این‬ ‫که‬ ‫شده‬ ‫معرفی‬Brook‫و‬Sh.
‫برن‬ ‫زبان‬‫ـ‬‫ن‬ ‫امه‬‫ـ‬‫ویسی‬Brook‫ت‬‫ـ‬‫تی‬ ‫وسط‬‫ـ‬‫ت‬ ‫استنفورد‬ ‫دانشگاه‬ ‫م‬‫ـ‬‫کاربردی‬ ‫جمله‬ ‫از‬ ‫زبان‬ ‫این‬ ،‫یافته‬ ‫وسعه‬‫زبان‬ ‫ترین‬‫های‬
‫برن‬‫ـ‬‫ام‬‫ـ‬‫ن‬ ‫ه‬‫ـ‬‫وی‬‫ــ‬‫س‬‫ـ‬‫ی‬GPGPU‫ب‬‫ـ‬‫ش‬ ‫ه‬‫ـ‬‫م‬‫ـ‬‫ار‬‫م‬‫ـ‬‫ی‬‫ن‬ ‫در‬ ‫که‬ ‫رود‬‫ـ‬‫س‬‫ـ‬‫خ‬‫ـ‬‫ب‬ ‫ه‬‫ـ‬‫ه‬‫ـ‬‫ین‬‫ـ‬‫ش‬ ‫ه‬‫ـ‬‫ب‬ ‫ده‬‫ـ‬‫رن‬‫ـ‬‫ام‬‫ـ‬‫ه‬Folding@Home‫ب‬‫ـ‬‫رای‬
‫پ‬‫ـ‬‫ردازنده‬‫برنامه‬ ‫زبان‬ .‫است‬ ‫شده‬ ‫گرفته‬ ‫بهره‬ ‫آن‬ ‫از‬ ‫نیز‬ ‫گرافیکیها‬‫نویسی‬Sh‫یافته‬ ‫توسعه‬ ‫واترلو‬ ‫دانشگاه‬ ‫تیم‬ ‫توسط‬ ‫نیز‬
‫ت‬ ‫و‬‫ـ‬‫پروژه‬ ‫کنون‬ ‫ا‬‫کتابخانه‬ ‫این‬ ‫بر‬ ‫عالوه‬ .‫است‬ ‫شده‬ ‫اجرا‬ ‫آن‬ ‫با‬ ‫زیادی‬ ‫های‬‫متعددی‬ ‫های‬‫برنامه‬ ‫امکان‬ ‫که‬ ‫دارند‬ ‫وجود‬
‫نویسی‬GPGPU‫پلتفورم‬ ‫در‬ ‫را‬.Net‫یا‬VC++ 6.0‫ف‬‫ـ‬‫راه‬‫ـ‬‫کرده‬ ‫م‬‫ان‬‫ـ‬‫جم‬ ‫از‬ ‫د‬‫ـ‬‫مع‬ ‫له‬‫ـ‬‫روف‬‫کت‬ ‫این‬ ‫ترین‬‫ـ‬‫اب‬‫ـ‬‫خ‬‫ـ‬‫ان‬‫ـ‬‫ه‬،‫ها‬
Accelerator‫است‬ ‫یافته‬ ‫توسعه‬ ‫مایکروسافت‬ ‫توسط‬ ‫که‬ ‫دارد‬ ‫نام‬.
‫کتابخانه‬‫پردازش‬ ‫اختصاصی‬ ‫های‬‫شده‬ ‫عرضه‬ ‫معقوله‬ ‫این‬ ‫در‬ ‫نیز‬ ‫متعددی‬ ‫تصویر‬‫به‬ ‫توان‬ ‫می‬ ‫آنها‬ ‫مهمترین‬ ‫از‬ ‫که‬ ‫اند‬
GPUCV‫و‬OpenVIDIA‫کتابخانه‬ ‫این‬ ‫کمك‬ ‫به‬ .‫کرد‬ ‫اشاره‬‫می‬ ‫ها‬‫الگوریتم‬ ‫توان‬‫و‬ ‫تصویر‬ ‫پردازش‬ ‫های‬
‫بینایی‬‫پردازنده‬ ‫توسط‬ ‫پردازش‬ ‫جهت‬ ‫را‬ ‫ماشین‬‫داد‬ ‫توسعه‬ ‫گرافیکی‬.
‫صفحه‬13
1-‫تجاری‬ ‫های‬ ‫پلتفورم‬
‫متداول‬‫برن‬ ‫روش‬ ‫ترین‬‫ـ‬‫امه‬‫نویسی‬GPGPU‫روش‬ ‫همان‬ ‫کنون‬ ‫تا‬‫چند‬ ‫طی‬ ‫اما‬ ‫است‬ ‫دوم‬‫پلتفورم‬ ‫اخیر‬ ‫ماه‬‫تجاری‬ ‫های‬
‫ارائ‬‫ـ‬‫ش‬ ‫ه‬‫ـ‬‫ب‬ ‫نوید‬ ‫که‬ ‫ده‬‫ـ‬‫رنامه‬‫ساده‬ ‫نویسی‬‫تن‬ ‫نه‬ ‫تر‬‫ـ‬‫پردازنده‬ ‫برای‬ ‫ها‬‫ص‬ ‫به‬ ‫بلکه‬ ‫گرافیکی‬‫ـ‬‫ک‬ ‫ورت‬‫ـ‬‫پ‬ ‫برای‬ ‫لی‬‫ـ‬‫ردازنده‬‫های‬
‫پ‬‫ـ‬‫رسرع‬‫ـ‬‫ق‬ ‫با‬ ‫ت‬‫ـ‬‫ابلی‬‫ـ‬‫م‬ ‫ت‬‫ـ‬‫وازی‬‫س‬‫ـ‬‫ن‬ ‫ازی‬‫ـ‬‫ظ‬‫ـ‬‫پ‬ ‫یر‬‫ـ‬‫ردازنده‬Cell‫می‬ ‫را‬‫دس‬ ‫این‬ ‫از‬ .‫دهند‬‫ـ‬‫پ‬ ‫دو‬ ‫ته‬‫ـ‬‫لتفورم‬PeakStream
‫و‬RapidMind‫م‬ ‫را‬‫ـ‬‫ی‬‫ن‬ ‫توان‬‫ـ‬‫ام‬‫ب‬ ،‫برد‬‫ـ‬‫رخ‬‫ـ‬‫الف‬PeakStream‫ک‬‫ـ‬‫ن‬ ‫ه‬‫ـ‬‫س‬‫ـ‬‫خ‬‫ـ‬‫ت‬ ‫ه‬‫ـ‬‫ج‬‫ـ‬‫ع‬ ‫آن‬ ‫اری‬‫ـ‬‫رض‬‫ـ‬‫ش‬ ‫ه‬‫ـ‬‫است‬ ‫ده‬،
RapidMind‫می‬ ‫سر‬ ‫به‬ ‫آزمایشی‬ ‫مراحل‬ ‫در‬ ‫هنوز‬‫برد‬.
‫كاربرد‬‫پردازنده‬ ‫غيرگرافيكي‬ ‫هاي‬‫گرافيكي‬
‫برنامه‬ ‫ساختار‬‫پردازنده‬ ‫توسط‬ ‫خوبی‬ ‫به‬ ‫که‬ ‫غیرگرافیکی‬ ‫های‬‫گرافیکی‬‫می‬ ‫پردازش‬‫ابتدای‬ ‫در‬ ‫مختصر‬ ‫صورت‬ ‫به‬ ‫شوند‬
‫نمونه‬ ‫شد‬ ‫داده‬ ‫توضیح‬ ‫مقاله‬‫کاربرد‬ ‫این‬ ‫از‬ ‫ای‬‫از‬ ‫عبارتند‬ ‫گرفته‬ ‫صورت‬ ‫تاکنون‬ ‫که‬ ‫ها‬:
·‫برنامه‬‫برداری‬ ‫و‬ ‫ماتریسی‬ ‫ضرب‬ ‫پیچیده‬ ‫های‬
·‫روش‬‫دیفرانسل‬ ‫معادالت‬ ‫دستگاه‬ ‫و‬ ‫خطی‬ ‫معادالت‬ ‫دستگاه‬ ‫حل‬ ‫های‬
·‫برنامه‬‫شبیه‬ ‫های‬‫س‬ ‫سازی‬‫پروتئین‬ ‫اختار‬
·‫برنامه‬‫نور‬ ‫شعاع‬ ‫مسیریابی‬ ‫های‬( Ray Tracing)
·‫برنامه‬‫شبیه‬ ‫های‬‫تصادم‬ ‫یا‬ ‫سیال‬ ‫جریان‬ ‫سازی‬ ‫شبیه‬ ‫مانند‬ ‫فیزیکی‬ ‫سازی‬
·‫برنامه‬‫گراف‬ ‫تولید‬ ‫و‬ ‫پیمایش‬ ‫های‬
·‫برنامه‬‫تصویر‬ ‫یا‬ ‫صوت‬ ‫پردازش‬ ‫های‬
·‫برنامه‬‫ماشین‬ ‫بینایی‬ ‫های‬
·‫برنامه‬‫های‬‫سریع‬ ‫فوریه‬ ‫تبدیل‬ ‫محاسبه‬(FFT)
‫صفحه‬14
‫پردازنده‬ ‫كاربرد‬‫تصوير‬ ‫پردازش‬ ‫در‬ ‫گرافيكي‬
‫بهره‬‫گی‬‫ـ‬‫ق‬ ‫از‬ ‫ری‬‫ـ‬‫ابلی‬‫ـ‬‫ت‬‫پ‬ ‫های‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ـ‬‫الگوریتم‬ ‫در‬ ‫رافیکی‬‫دست‬ ‫جهت‬ ‫تصویر‬ ‫پردازش‬ ‫و‬ ‫ماشین‬ ‫بینایی‬ ‫های‬‫سه‬ ‫به‬ ‫یابی‬
‫ه‬‫ـ‬‫مط‬ ‫کلی‬ ‫دف‬‫ـ‬‫عملکرد‬ ‫به‬ ‫شدن‬ ‫نائل‬ ‫اول‬ ‫هدف‬ ،‫است‬ ‫شده‬ ‫رح‬Real-Time‫به‬ ‫نیاز‬ ‫بدون‬‫الگوریتم‬ ‫پیچیدگی‬ ‫کاهش‬
‫ه‬ ،‫است‬‫ـ‬‫الگوریتم‬ ‫پردازشی‬ ‫عملیات‬ ‫از‬ ‫مرکزی‬ ‫پردازنده‬ ‫بارکاری‬ ‫کاهش‬ ‫دوم‬ ‫دف‬‫به‬ ‫آن‬ ‫اختصاص‬ ‫و‬ ‫ماشین‬ ‫بینایی‬ ‫های‬
‫س‬‫ـ‬‫ب‬ ‫ایر‬‫ـ‬‫رن‬‫ـ‬‫امه‬‫برنامه‬ ‫محاسبات‬ ‫سرعت‬ ‫افزایش‬ ‫نیز‬ ‫سوم‬ ‫هدف‬ ‫و‬ ‫باشد‬ ‫می‬ ‫ها‬‫راه‬ ‫یك‬ ‫کمك‬ ‫به‬ ‫تصویر‬ ‫پردازش‬ ‫های‬‫به‬ ‫کار‬
‫است‬ ‫اقتصادی‬ ‫صرفه‬.
‫الگ‬‫ـ‬‫وریت‬‫ـ‬‫م‬‫ه‬‫ـ‬‫بین‬ ‫ای‬‫ـ‬‫ای‬‫ـ‬‫م‬ ‫ی‬‫ـ‬‫اشی‬‫ـ‬‫مع‬ ‫طور‬ ‫به‬ ‫ن‬‫ـ‬‫سخت‬ ‫از‬ ‫کوس‬‫می‬ ‫استفاده‬ ‫گرافیکی‬ ‫افزار‬‫پردازنده‬ ‫که‬ ‫چرا‬ ‫کنند‬‫در‬ ‫گرافیکی‬
‫داده‬ ‫مبنای‬ ‫بر‬ ‫بعدی‬ ‫سه‬ ‫تصویر‬ ‫ترسیم‬ ‫به‬ ‫موظف‬ ‫خود‬ ‫متداول‬ ‫کاربردهای‬‫کننده‬ ‫توصیف‬ ‫ریاضی‬ ‫آنالیزهای‬ ‫و‬ ‫عددی‬ ‫های‬
‫تص‬ ‫آن‬‫ـ‬‫م‬ ‫ویر‬‫ـ‬‫ی‬‫ح‬ ‫در‬ ‫باشد‬‫ـ‬‫کاربرد‬ ‫در‬ ‫که‬ ‫الی‬‫بینایی‬ ‫های‬‫داده‬ ‫گرافیکی‬ ‫پردازنده‬ ‫به‬ ‫فریم‬ ‫یك‬ ‫از‬ ‫بخشی‬ ‫یا‬ ‫تصویر‬ ،‫ماشین‬
‫می‬‫همی‬ ‫به‬ .‫شود‬ ‫استخراج‬ ‫عددی‬ ‫آنالیزهای‬ ‫آن‬ ‫از‬ ‫تا‬ ‫شود‬‫ـ‬‫خ‬ ‫ن‬‫ـ‬‫الگوریتم‬ ‫اطر‬‫به‬ ‫نسبت‬ ‫تصویر‬ ‫پردازش‬ ‫و‬ ‫ماشین‬ ‫بینایی‬ ‫های‬
‫الگوریتم‬‫سخت‬ ‫از‬ ‫معکوس‬ ‫طور‬ ‫به‬ ، ‫کامپیوتری‬ ‫گرافیك‬ ‫های‬‫می‬ ‫استفاده‬ ‫گرافیکی‬ ‫افزار‬‫کنند‬.
‫ت‬ ‫با‬‫ـ‬‫وج‬‫ـ‬‫پشتیب‬ ‫به‬ ‫ه‬‫ـ‬‫پ‬ ‫انی‬‫ـ‬‫ردازنده‬‫ن‬ ‫استاندارد‬ ‫از‬ ‫جدید‬ ‫گرافیکی‬ ‫های‬‫ـ‬‫مای‬‫ـ‬‫اعداد‬ ‫ش‬11‫م‬ ‫بیت‬‫ـ‬‫م‬‫ـ‬‫ی‬‫ـ‬‫شن‬ ‫ز‬‫ـ‬‫اور‬IEEE 754،
‫دق‬‫ـ‬‫ج‬ ‫الزم‬ ‫ت‬‫ـ‬‫ه‬‫ـ‬‫پی‬ ‫ت‬‫ـ‬‫اده‬‫الگوریت‬ ‫سازی‬‫ـ‬‫م‬‫نمی‬ ‫عملکرد‬ ‫دقت‬ ‫نظر‬ ‫از‬ ‫لذا‬ ‫است‬ ‫گشته‬ ‫فراهم‬ ‫تصویر‬ ‫پردازش‬ ‫دقیق‬ ‫های‬‫توان‬
‫پیاده‬ ‫با‬ ‫آن‬ ‫میان‬ ‫تفاوتی‬‫سازی‬‫متداول‬ ‫های‬‫الگوریتم‬‫پردازنده‬ ‫روی‬ ‫بر‬ ‫تصویر‬ ‫پردازش‬ ‫های‬‫کرد‬ ‫مشاهده‬ ‫مرکزی‬.
‫متداول‬ ‫مشكالت‬
‫ع‬‫ـ‬‫مت‬ ‫وامل‬‫ـ‬‫پیاده‬ ‫هنگام‬ ‫که‬ ‫دارند‬ ‫وجود‬ ‫عددی‬‫پردازش‬ ‫الگوریتم‬ ‫یك‬ ‫سازی‬‫پردازنده‬ ‫روی‬ ‫بر‬ ‫تصویر‬‫اهداف‬ ‫به‬ ‫نیل‬ ‫از‬ ‫مانع‬ ‫گرافیکی‬
‫می‬ ‫شده‬ ‫ذکر‬‫می‬ ‫عوامل‬ ‫این‬ ‫جمله‬ ‫از‬ ‫شوند‬‫محدود‬ ‫باند‬ ‫پهنای‬ ‫به‬ ‫توان‬‫کارت‬ ‫و‬ ‫اصلی‬ ‫حافظه‬ ‫میان‬‫کرد‬ ‫اشاره‬ ‫کامپیوتر‬ ‫گرافیك‬.
‫ی‬ ‫در‬‫ـ‬‫پردازنده‬ ‫توسط‬ ‫است‬ ‫قرار‬ ‫که‬ ‫فریمی‬ ‫از‬ ‫بخشی‬ ‫یا‬ ‫تصویر‬ ‫ابتدا‬ ‫تصویر‬ ‫پردازش‬ ‫الگوریتم‬ ‫ك‬‫حافظه‬ ‫از‬ ،‫شود‬ ‫پردازش‬ ‫گرافیکی‬
‫اص‬‫ـ‬‫کارت‬ ‫حافظه‬ ‫به‬ ‫کامپیوتر‬ ‫لی‬‫می‬ ‫منتقل‬ ‫گرافیك‬‫شود‬(Download)‫نتا‬ ،‫پردازش‬ ‫عملیات‬ ‫اجرای‬ ‫از‬ ‫پس‬ ‫و‬‫می‬ ‫کار‬ ‫یج‬‫بایست‬
‫کارت‬ ‫حافظه‬ ‫از‬‫بازگردد‬ ‫اصلی‬ ‫حافظه‬ ‫به‬ ‫مجددا‬ ‫گرافیك‬(Upload).
‫معم‬ ‫در‬‫ـ‬‫کامپیوتر‬ ‫اری‬‫از‬ ‫استفاده‬ ‫برای‬ ‫کاری‬ ‫راه‬ ‫هیچ‬ ‫هنوز‬ ‫متاسفانه‬ ‫مدرن‬ ‫های‬DMA‫عملیات‬ ‫در‬Upload‫اما‬ ‫است‬ ‫نشده‬ ‫تدبیر‬
‫عملیات‬Download‫کمك‬ ‫به‬DMA‫می‬ ‫بخشیده‬ ‫تسریع‬ ‫کمی‬‫شود‬.
‫این‬ ‫به‬ ‫توجه‬ ‫با‬‫ای‬ ‫در‬ ‫که‬ ‫دارد‬ ‫امکان‬ ‫توضیحات‬‫ـ‬‫عملی‬ ‫ن‬‫ـ‬‫می‬ ‫داده‬ ‫انتقال‬ ‫ات‬‫ـ‬‫سیست‬ ‫حافظه‬ ‫ان‬‫ـ‬‫ح‬ ‫و‬ ‫م‬‫ـ‬‫ک‬ ‫افظه‬‫ـ‬‫ارت‬‫گ‬‫ـ‬‫زمان‬ ‫آنقدر‬ ‫رافیك‬
‫سپ‬‫ـ‬‫ش‬ ‫ری‬‫ـ‬‫مزیت‬ ‫که‬ ‫ود‬‫ه‬‫ـ‬‫پ‬ ‫ای‬‫ـ‬‫س‬ ‫ردازش‬‫ـ‬‫داده‬ ‫ریع‬‫پردازنده‬ ‫توسط‬ ‫ها‬‫گرافیک‬‫ـ‬‫تب‬ ‫ی‬‫ـ‬‫س‬ ‫اه‬‫ـ‬‫خ‬ ‫همین‬ ‫به‬ .‫ازد‬‫ـ‬‫اط‬‫ـ‬‫می‬ ‫داده‬ ‫پیشنهاد‬ ‫ر‬‫از‬ ‫شود‬
‫ف‬‫ـ‬‫بخش‬ ‫راخوانی‬‫فری‬ ‫از‬ ‫هایی‬‫ـ‬‫در‬ ‫که‬ ‫م‬‫الگ‬‫ـ‬‫تص‬ ‫پردازش‬ ‫وریتم‬‫ـ‬‫نمی‬ ‫گرفته‬ ‫کار‬ ‫به‬ ‫ویر‬‫شده‬ ‫مبادله‬ ‫داده‬ ‫حجم‬ ‫تا‬ ‫شده‬ ‫داری‬ ‫خود‬ ‫شوند‬
‫کارت‬ ‫حافظه‬ ‫و‬ ‫اصلی‬ ‫حافظه‬ ‫میان‬‫گردد‬ ‫محدود‬ ‫گرافیك‬.
‫صفحه‬15
‫كتابخانه‬OpenVIDIA‫و‬GPUCV
1-‫کتابخانه‬OpenVIDIA
‫ن‬‫ـ‬‫ام‬‫ک‬‫ـ‬‫تابخ‬‫ـ‬‫مت‬ ‫انه‬‫ـ‬‫ن‬‫ب‬‫ـ‬‫اس‬ ‫ازی‬‫ـ‬‫ک‬ ‫ت‬‫ـ‬‫دان‬ ‫در‬ ‫ه‬‫ـ‬‫ش‬‫ـ‬‫ت‬ ‫گاه‬‫ـ‬‫ب‬ ‫ورنتو‬‫ـ‬‫پ‬ ‫رای‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫ال‬ ‫ازی‬‫ـ‬‫گ‬‫ـ‬‫وریتم‬‫پ‬ ‫های‬‫ـ‬‫ت‬ ‫ردازش‬‫ـ‬‫ص‬‫ـ‬‫وی‬‫ـ‬‫روی‬ ‫بر‬ ‫ر‬
‫پ‬‫ـ‬‫ردازنده‬‫گ‬‫ـ‬‫از‬ ‫استفاده‬ ‫با‬ ‫کتابخانه‬ ‫این‬ .‫است‬ ‫شده‬ ‫نگاشته‬ ‫رافیکی‬API‫گرافیکی‬OpenGL‫زبان‬ ‫و‬Cg‫شده‬ ‫داده‬ ‫توسعه‬
‫سال‬ ‫در‬ ‫و‬ ‫است‬1115‫نرم‬ ‫جایزه‬ ‫برنده‬‫چند‬ ‫افزار‬‫رسانه‬‫متن‬ ‫ای‬‫گشته‬ ‫باز‬.
OpenVIDIA‫س‬ ‫واسط‬‫ـ‬‫اده‬‫جه‬ ‫را‬ ‫ای‬‫ـ‬‫ت‬ ‫ت‬‫ـ‬‫وسع‬‫ـ‬‫ه‬‫برن‬‫ـ‬‫امه‬‫ه‬‫ـ‬‫پ‬ ‫ای‬‫ـ‬‫ت‬ ‫ردازش‬‫ـ‬‫بین‬ ‫و‬ ‫صویر‬‫ـ‬‫آن‬ ‫در‬ ‫که‬ ‫میدهد‬ ‫ارائه‬ ‫ماشین‬ ‫ایی‬
‫الگوریتم‬‫فیلتر‬ ‫مانند‬ ‫تصویر‬ ‫پردازش‬ ‫متداول‬ ‫های‬‫می‬ ‫استفاده‬ ‫قابل‬ ، ‫لبه‬ ‫یافتن‬ ‫های‬‫باشد‬.
‫ی‬‫ـ‬‫پشتیب‬ ‫در‬ ‫آن‬ ‫قابلیت‬ ‫کتابخانه‬ ‫این‬ ‫امکانات‬ ‫از‬ ‫دیگر‬ ‫کی‬‫ـ‬‫کارت‬ ‫چندین‬ ‫از‬ ‫انی‬‫می‬ ‫گرافیك‬‫می‬ ‫ترتیب‬ ‫این‬ ‫به‬ ‫باشد‬‫توان‬‫آن‬
‫راه‬ ‫را‬‫(شکل‬ ‫کرد‬ ‫بیان‬ ‫قدرتمند‬ ‫تصویر‬ ‫پردازش‬ ‫ماشین‬ ‫یك‬ ‫ایجاد‬ ‫جهت‬ ‫مناسبی‬ ‫اقتصادی‬ ‫کار‬1).
‫ای‬ ‫با‬‫ـ‬‫توابع‬ ‫است‬ ‫نتوانسته‬ ‫کامال‬ ‫کتابخانه‬ ‫این‬ ،‫وجود‬ ‫ن‬API‫برنامه‬ ‫دید‬ ‫از‬ ‫را‬ ‫گرافیکی‬‫نویس‬ ‫برنامه‬ ‫لذا‬ ،‫سازد‬ ‫مخفی‬ ‫نویس‬
‫نی‬‫ـ‬‫مق‬ ‫جهت‬ ‫تا‬ ‫دارد‬ ‫از‬‫ـ‬‫ده‬ ‫دار‬‫ـ‬‫گ‬ ‫توابع‬ ‫به‬ ‫ی‬‫ـ‬‫رافی‬‫ـ‬‫ک‬ ‫به‬ ‫کی‬‫ـ‬‫ارگ‬‫ـ‬‫درگیر‬ ‫اندکی‬ ‫را‬ ‫خود‬ ،‫نیاز‬ ‫مورد‬ ‫بافرهای‬ ‫و‬ ‫شده‬ ‫رفته‬API
‫کند‬ ‫گرافیکی‬.
‫شکل‬1-‫کارت‬ ‫هفت‬ ‫با‬ ‫کامپیوتر‬ ‫یك‬‫گرافیك‬
‫صفحه‬16
2-‫کتابخانه‬GPUCV
‫ای‬‫ـ‬‫کت‬ ‫ن‬‫ـ‬‫پروژه‬ ‫در‬ ‫که‬ ‫رایگان‬ ‫ابخانه‬‫نام‬ ‫به‬ ‫ای‬Vision-‫پردازنده‬،‫است‬ ‫یافته‬ ‫توسعه‬ ‫فرانسه‬ ‫ریمز‬ ‫دانشگاه‬ ‫در‬ ‫گرافیکی‬
‫ج‬‫ـ‬‫ه‬‫ـ‬‫پ‬ ‫ت‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫ع‬ ‫ازی‬‫ـ‬‫ملگر‬‫الگوریتم‬ ‫های‬‫بینایی‬ ‫های‬‫پردازنده‬ ‫روی‬ ‫بر‬ ‫ماشین‬‫نسخه‬ ‫عنوان‬ ‫به‬ ‫و‬ ‫شده‬ ‫ایجاد‬ ‫گرافیکی‬
‫معروف‬ ‫کتابخانه‬ ‫الحاقی‬Intel OpenCV‫می‬ ‫عمل‬‫کند‬.
‫پ‬ ‫جهت‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫الگ‬ ‫یك‬ ‫ازی‬‫ـ‬‫ب‬ ‫وریتم‬‫ـ‬‫ی‬‫ـ‬‫نایی‬‫م‬‫ـ‬‫اشین‬GPUCV‫مح‬‫ــ‬‫ب‬ ‫یط‬‫ـ‬‫رنامه‬‫مشابه‬ ‫نویسی‬OpenCV‫اختیار‬ ‫در‬ ‫را‬
‫برنامه‬‫قر‬ ‫نویسان‬‫می‬ ‫ار‬‫ت‬ ‫دهد‬‫ـ‬‫عملگر‬ ‫نام‬ ‫تغییر‬ ‫با‬ ‫بتوانند‬ ‫سادگی‬ ‫به‬ ‫ا‬‫عملوند‬ ‫و‬ ‫ها‬‫زمان‬ ‫حداقل‬ ‫در‬ ‫را‬ ‫الگوریتم‬ ‫خود‬ ‫های‬
‫پ‬ ‫بارپردازشی‬ ‫از‬‫ـ‬‫ردازنده‬‫پ‬ ‫به‬ ‫مرکزی‬‫ـ‬‫ردازنده‬‫گراف‬‫ـ‬‫ی‬‫ـ‬‫من‬ ‫کی‬‫ـ‬‫ت‬‫ـ‬‫ق‬‫ـ‬‫ب‬ .‫کنند‬ ‫ل‬‫ـ‬‫ن‬‫ـ‬‫اب‬‫ـ‬‫ب‬ ‫راین‬‫ـ‬‫ک‬ ‫رای‬‫ـ‬‫کت‬ ‫این‬ ‫با‬ ‫ارکردن‬‫ـ‬،‫ابخانه‬
‫نی‬‫ـ‬‫ف‬ ‫به‬ ‫ازی‬‫ـ‬‫دست‬ ‫راگیری‬‫ـ‬‫ورات‬API‫گرافی‬‫ـ‬‫م‬ ‫و‬ ‫کی‬‫ـ‬‫س‬ ‫راجع‬‫ـ‬‫ایه‬‫زن‬‫ک‬ ‫های‬‫ـ‬‫و‬ ‫نیست‬ ‫گرافیك‬ ‫ارت‬GPUCV‫توانسته‬
‫برنامه‬ ‫گرافیکی‬ ‫جزئیات‬‫پردازنده‬ ‫نویسی‬‫برنامه‬ ‫دید‬ ‫از‬ ‫را‬ ‫گرافیکی‬‫سازد‬ ‫پهنان‬ ‫نویسان‬.
‫ت‬‫ـ‬‫عملیاتی‬ ‫وابع‬GPUCV‫عملگرهای‬ ‫همانند‬OpenCV‫می‬ ‫بهره‬ ‫مشابهی‬ ‫داده‬ ‫ساختمان‬ ‫از‬ ‫و‬ ‫شده‬ ‫فراخوانی‬‫به‬ ‫برند‬
‫همی‬‫ـ‬‫خ‬ ‫ن‬‫ـ‬‫می‬ ‫اطر‬‫ت‬‫ـ‬‫الگ‬ ‫وان‬‫عملگ‬ ‫از‬ ‫را‬ ‫ترکیبی‬ ‫وریتم‬‫ـ‬‫ر‬‫های‬GPUCV‫و‬OpenCV‫ت‬‫ـ‬‫انتخاب‬ ‫به‬ ‫بسته‬ ‫که‬ ‫داد‬ ‫وسعه‬
‫برنامه‬‫پردازنده‬ ‫توسط‬ ‫عملیات‬ ‫از‬ ‫بخشی‬ ‫نویس‬‫پردازنده‬ ‫توسط‬ ‫بخشی‬ ‫و‬ ‫مرکزی‬‫می‬ ‫پردازش‬ ‫گرافیکی‬‫شود‬.
‫اس‬ ‫بر‬‫ـ‬‫آزمایش‬ ‫نتایج‬ ‫اس‬‫عملگرهای‬ ‫کارایی‬ ‫گرفته‬ ‫صورت‬ ‫های‬GPUCV‫عملگر‬ ‫با‬‫های‬OpenCV‫شده‬ ‫مقایسه‬
‫زمان‬ ‫احتساب‬ ‫بدون‬ ‫که‬ ‫است‬Upload‫عملگ‬‫ـ‬‫ر‬‫های‬GPUCV‫حدود‬5‫ب‬‫ـ‬‫راب‬‫ـ‬‫سریع‬ ‫ر‬‫عملگر‬ ‫از‬ ‫تر‬‫های‬OpenCV
‫زمان‬ ‫احتساب‬ ‫با‬ ‫برتری‬ ‫نسبت‬ ‫این‬ ‫که‬ ‫هستند‬Upload‫حدود‬ ‫به‬1‫می‬ ‫برابر‬‫رسد‬.
‫صفحه‬18
‫آينده‬GPGPU
‫آین‬ ‫در‬‫ـ‬‫نه‬ ‫ده‬‫چن‬‫ـ‬‫دور‬ ‫دان‬GPGPU‫تکنولوژی‬ ‫از‬ ‫دیگر‬ ‫یکی‬‫م‬ ‫های‬‫ـ‬‫خ‬ ‫وفقی‬‫ـ‬‫در‬ ‫که‬ ‫بود‬ ‫واهد‬‫بیلیون‬ ‫چند‬ ‫بازار‬ ‫زمینه‬ ‫پس‬
‫بازی‬ ‫و‬ ‫سرگرمی‬ ‫دالری‬‫مت‬ ‫کامپیوتری‬ ‫های‬‫ـ‬‫پروژه‬ ‫در‬ ‫بیشتر‬ ‫و‬ ‫نرسیده‬ ‫کامل‬ ‫بلوغ‬ ‫به‬ ‫هنوز‬ ‫تکنولوژی‬ ‫این‬ .‫است‬ ‫شده‬ ‫ولد‬‫ها‬
‫گرفته‬ ‫کار‬ ‫به‬ ‫آکادمیك‬ ‫تحقیقات‬ ‫و‬‫می‬‫پیش‬ ‫اما‬ ،‫شود‬‫نیست‬ ‫تصور‬ ‫از‬ ‫دور‬ ‫آن‬ ‫شدن‬ ‫فراگیر‬ ‫بینی‬.
‫آین‬ ‫در‬‫ـ‬‫مجه‬ ‫شما‬ ‫کامپیوتر‬ ‫اگر‬ ‫نزدیك‬ ‫ده‬‫بازی‬ ‫از‬ ‫تنها‬ ‫نه‬ ‫نباشد‬ ‫قدرتمند‬ ‫گرافیك‬ ‫کارت‬ ‫یك‬ ‫به‬ ‫ز‬‫بازی‬ ‫کردن‬‫جذاب‬ ‫های‬
‫آین‬ ‫نسل‬‫ـ‬‫مح‬ ‫ده‬‫ـ‬‫خواهی‬ ‫روم‬‫ـ‬‫ممک‬ ‫بلکه‬ ‫شد‬ ‫د‬‫ـ‬‫نتوانی‬ ‫است‬ ‫ن‬‫ـ‬‫فیل‬ ‫یك‬ ‫د‬‫ـ‬‫ح‬ ‫یا‬ ‫کیفیت‬ ‫با‬ ‫م‬‫ـ‬‫ت‬‫ـ‬.‫کنید‬ ‫اجرا‬ ‫را‬ ‫علمی‬ ‫برنامه‬ ‫یك‬ ‫ی‬
‫فراگی‬ ‫با‬‫ـ‬‫نس‬ ‫شدن‬ ‫ر‬‫ـ‬‫نرم‬ ‫ساختار‬ ‫تنها‬ ‫نه‬ ،‫تکنولوژی‬ ‫این‬ ‫بی‬‫پردا‬ ‫معماری‬ ‫بلکه‬ ‫افزارها‬‫زنده‬،‫شد‬ ‫خواهد‬ ‫متحول‬ ‫نیز‬ ‫ها‬ ‫مرکزی‬
‫پ‬‫ـ‬‫ادغ‬ ‫از‬ ‫س‬‫ـ‬‫ام‬AMD‫و‬ATI‫خ‬‫ـ‬‫ب‬‫ـ‬‫ر‬‫ه‬‫ـ‬‫مت‬ ‫ای‬‫ـ‬‫ع‬‫ـ‬‫مب‬ ‫ددی‬‫ـ‬‫ن‬‫ـ‬‫ادغ‬ ‫بر‬ ‫ی‬‫ـ‬‫پ‬ ‫ام‬‫ـ‬‫ردازنده‬‫پردازن‬ ‫و‬ ‫مرکزی‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫ک‬‫ـ‬‫معماری‬ ‫و‬ ‫ی‬
‫یك‬‫پارچه‬‫نام‬ ‫به‬ ‫ای‬Fusion‫مزایای‬ ‫از‬ ‫استفاده‬ ‫جهت‬GPGPU‫است‬ ‫شده‬ ‫منتشر‬.
‫است‬‫ـ‬‫قب‬‫ـ‬‫مح‬ ‫توسط‬ ‫جدید‬ ‫تکنولوژی‬ ‫این‬ ‫از‬ ‫ال‬‫ـ‬‫افل‬‫عل‬‫ـ‬‫م‬‫ـ‬‫آک‬ ‫و‬ ‫ی‬‫ـ‬‫توس‬ ‫جهت‬ ‫ادمیك‬‫ـ‬‫عل‬ ‫عه‬‫ـ‬‫وم‬‫آینده‬ ‫کامال‬ ‫آن‬،‫است‬ ‫نگرانه‬
‫ه‬‫ـ‬‫دانشگاه‬ ‫اکنون‬ ‫م‬‫مع‬ ‫های‬‫ـ‬‫دن‬ ‫در‬ ‫دودی‬‫ـ‬‫تکن‬ ‫این‬ ‫روی‬ ‫بر‬ ‫یا‬‫ـ‬‫ول‬‫ـ‬‫سرم‬ ‫وژی‬‫ـ‬‫گ‬ ‫ایه‬‫ـ‬‫ک‬ ‫ذاری‬‫ـ‬‫رده‬‫ان‬‫ـ‬‫هم‬ ‫و‬ ‫د‬‫وط‬‫ـ‬‫ن‬‫ـ‬‫اک‬ ‫در‬ ‫ما‬ ‫ان‬‫ـ‬‫ثر‬
‫گ‬‫ـ‬‫روه‬‫تح‬ ‫های‬‫ـ‬‫قیق‬‫ـ‬‫ح‬ ‫این‬ ‫اتی‬‫ـ‬‫ای‬ ‫با‬ ،‫دارند‬ ‫حضور‬ ‫وزه‬‫ـ‬‫می‬ ‫فرض‬ ‫ن‬‫بسیار‬ ‫زمینه‬ ‫که‬ ‫گفت‬ ‫توان‬‫علوم‬ ‫توسعه‬ ‫جهت‬ ‫مساعدی‬
‫تکنولوژی‬ ‫در‬ ‫خود‬ ‫دانستن‬ ‫سهیم‬ ‫و‬ ‫کامپیوتر‬‫است‬ ‫آمده‬ ‫وجود‬ ‫به‬ ‫ما‬ ‫برای‬ ‫کامپیوترها‬ ‫آینده‬ ‫نسل‬ ‫های‬.
‫صفحه‬17
‫خالصه‬
GPGPU‫؟‬ ‫چیست‬
GPGPU‫کامپیوتر‬ ‫علم‬‫که‬ ‫ي‬‫ه‬‫ـ‬‫نه‬ ‫دف‬‫ـ‬‫اي‬‫ـ‬‫فع‬ ‫ي‬‫ـ‬‫بهره‬ ‫عرصه‬ ‫اين‬ ‫االن‬‫گی‬‫ـ‬‫ک‬ ‫از‬ ‫ري‬‫ـ‬‫ارت‬‫گرافی‬‫ــ‬‫عن‬ ‫به‬ ‫ك‬‫ــ‬‫وان‬
‫ي‬‫ـ‬‫پردازنده‬ ‫کمك‬ ‫ك‬‫محاسباتي‬‫برنامه‬ ‫در‬‫برنامه‬ ‫و‬ ‫غیرگرافیكي‬ ‫هاي‬‫است‬ ‫عمومي‬ ‫هاي‬.
GPGPU‫صنعت‬ ‫و‬
‫پردازش‬ ‫توان‬ ‫حداکثر‬‫ـ‬‫پردازنده‬ ‫ي‬‫گرافی‬‫ــ‬‫ه‬ ‫كي‬‫ـ‬‫س‬ ‫هر‬ ‫ا‬‫ــ‬‫اله‬2‫ب‬‫ـ‬‫راب‬‫ـ‬‫م‬ ‫رشد‬ ‫ر‬‫ـ‬‫ي‬‫چ‬ ،‫کند‬‫ـ‬‫ص‬ ‫که‬ ‫را‬‫ـ‬‫بازي‬ ‫نعت‬‫هاي‬
‫است‬ ‫کرده‬ ‫فراهم‬ ‫را‬ ‫رشد‬ ‫اين‬ ‫اقتصادي‬ ‫انگیزه‬ ‫کامپیوتري‬
‫مدرن‬ ‫گرافیکی‬ ‫های‬ ‫پردازنده‬ ‫های‬ ‫ویژگی‬
،‫اول‬‫پردازنده‬‫هاي‬‫پردازنده‬ ،‫خود‬ ‫موازي‬ ‫معماري‬ ‫لطف‬ ‫به‬ ‫گرافیكي‬‫هستند‬ ‫سريعي‬ ‫بسیار‬ ‫هاي‬.
‫هستند‬ ‫ارزان‬ ،‫قیمت‬ ‫به‬ ‫کارايي‬ ‫مالك‬ ‫به‬ ‫توجه‬ ‫با‬ ،‫دوم‬.
‫پردازنده‬ ‫به‬ ‫نسبت‬ ‫کمتري‬ ‫بسیار‬ ‫مصرفي‬ ‫توان‬ ‫آنها‬ ،‫وات‬ ‫به‬ ‫کارايي‬ ‫مالك‬ ‫به‬ ‫توجه‬ ‫با‬ ،‫سوم‬.‫دارند‬ ‫ها‬ ‫مرکزي‬
‫توانایی‬ ‫مقایسه‬‫پردازنده‬ ‫های‬‫گر‬‫پردازنده‬ ‫با‬ ‫افیکی‬‫مرکزی‬
‫برنامه‬ ‫سه‬ ‫در‬«‫سازی‬ ‫مرتب‬»،«‫یا‬ ‫سریع‬ ‫فوریه‬ ‫تبدیل‬FFT»‫و‬«‫ماتریسی‬ ‫ضرب‬»‫نس‬‫ـ‬‫خ‬‫ــ‬‫ب‬ ‫ه‬‫ـ‬‫ه‬‫ـ‬‫ین‬‫ـ‬‫ش‬ ‫ه‬‫ـــ‬‫ای‬ ‫ده‬‫ــ‬‫ن‬
‫س‬‫ـ‬‫برن‬ ‫ه‬‫ـ‬‫امه‬‫ب‬ ‫ها‬‫ـ‬‫پ‬ ‫رای‬‫ـ‬‫ردازنده‬‫گرافیکی‬1‫الی‬5‫نسخه‬ ‫از‬ ‫برابر‬‫پردازنده‬ ‫از‬ ‫که‬ ‫آنها‬ ‫استاندارد‬ ‫های‬‫برای‬ ‫مرکزی‬
‫خود‬ ‫پیچیده‬ ‫محاسبات‬ ‫پردازش‬‫می‬ ‫استفاده‬‫سریع‬ ‫کنند‬‫است‬ ‫تر‬.
‫پردازنده‬‫پردازنده‬ ‫از‬ ‫گرافیکی‬‫سریع‬ ‫مرکزی‬‫است‬ ‫تر‬
‫برنامه‬ ‫مدل‬‫برنامه‬ ‫نویسی‬‫پردازنده‬ ‫برای‬ ‫که‬ ‫هایی‬‫مرک‬‫ـ‬‫نوش‬ ‫زی‬‫ـ‬‫می‬ ‫ته‬‫اص‬ ‫در‬ ‫شوند‬‫ـ‬‫ی‬ ‫ل‬‫ـ‬‫م‬ ‫ك‬‫ـ‬‫به‬ ‫است‬ ‫سریال‬ ‫دل‬
‫پ‬ ‫به‬ ‫باال‬ ‫از‬ ‫ترتیب‬ ‫به‬ ‫برنامه‬ ‫یك‬ ‫معنی‬ ‫این‬‫ـ‬‫اجرا‬ ،‫ترجمه‬ ‫از‬ ‫پس‬ ‫و‬ ‫شده‬ ‫خوانده‬ ‫ایین‬‫شده‬‫از‬ ‫ندرت‬ ‫به‬ ‫آن‬ ‫در‬ ‫و‬
«‫م‬‫ـ‬‫وازی‬‫س‬‫ـ‬‫ازی‬»‫پ‬ ‫در‬‫ـ‬‫داده‬ ‫ردازش‬‫ه‬‫ــ‬‫اس‬ ‫ا‬‫ـ‬‫ت‬‫ـ‬‫ف‬‫ـ‬‫م‬ ‫اده‬‫ــ‬‫ی‬‫ش‬‫ـ‬‫ود‬،‫ح‬ ‫در‬‫ـ‬‫ک‬ ‫الی‬‫ـ‬‫م‬ ‫ه‬‫ـ‬‫ب‬ ‫دل‬‫ــ‬‫رن‬‫ـ‬‫امه‬‫ن‬‫ـ‬‫ویس‬‫ـ‬‫برنامه‬ ‫ی‬‫های‬
‫پ‬‫ـ‬‫ردازنده‬‫گ‬‫ـ‬‫رافیکی‬‫در‬‫اص‬‫ـ‬‫ی‬ ‫ل‬‫ـ‬‫م‬ ‫ك‬‫ـ‬‫م‬ ‫دل‬‫ـ‬‫اس‬ ‫وازی‬‫ـ‬‫ت‬
‫صفحه‬10
‫ابزار‬‫برنامه‬ ‫های‬‫نویسی‬GPGPU
‫ابزار‬‫و‬ ‫گرافیکی‬ ‫نویسی‬ ‫برنامه‬ ‫های‬GPGPU‫حکم‬‫می‬ ‫فرمایی‬‫اب‬ ‫کلیه‬ ‫و‬ ‫کند‬‫ـ‬‫زار‬‫ب‬ ‫های‬‫ـ‬‫رنامه‬‫ای‬ ‫نویسی‬‫ـ‬‫ن‬
‫مشتق‬ ‫جمله‬ ‫از‬ ‫حوزه‬‫های‬‫زبان‬C++‫می‬ ‫شمار‬ ‫به‬‫روند‬.
‫برنامه‬ ‫برای‬‫نویسی‬GPGPU‫دارد‬ ‫وجود‬ ‫روش‬ ‫سه‬:
0-API‫گرافیکی‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬ ‫و‬ ‫ها‬
1-‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬GPGPU‫ها‬ ‫کتابخانه‬ ‫و‬
1-‫تجاری‬ ‫های‬ ‫پلتفورم‬
‫کاربرد‬‫ها‬‫پردازنده‬ ‫غیرگرافیکی‬ ‫ی‬‫گرافیکی‬
‫برنامه‬ ‫ساختار‬‫پردازنده‬ ‫توسط‬ ‫خوبی‬ ‫به‬ ‫که‬ ‫غیرگرافیکی‬ ‫های‬‫می‬ ‫پردازش‬ ‫گرافیکی‬‫مختصر‬ ‫صورت‬ ‫به‬ ‫شوند‬
‫مقاله‬ ‫ابتدای‬ ‫در‬‫شد‬ ‫داده‬ ‫توضیح‬‫و‬‫نمونه‬‫کاربرد‬ ‫این‬ ‫از‬ ‫ای‬‫گرفته‬ ‫صورت‬ ‫تاکنون‬ ‫که‬ ‫ها‬. ‫شده‬ ‫ذکر‬
‫پردازنده‬ ‫کاربرد‬‫تصویر‬ ‫پردازش‬ ‫در‬ ‫گرافیکی‬
‫بهره‬‫گی‬‫ـ‬‫ق‬ ‫از‬ ‫ری‬‫ـ‬‫ابلی‬‫ــ‬‫ت‬‫پ‬ ‫های‬‫ــ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ــ‬‫الگ‬ ‫در‬ ‫رافیکی‬‫ـ‬‫وریتم‬‫ماش‬ ‫بینایی‬ ‫های‬‫ـ‬‫ی‬‫ـ‬‫جهت‬ ‫تصویر‬ ‫پردازش‬ ‫و‬ ‫ن‬
‫دس‬‫ـ‬‫ت‬‫س‬ ‫به‬ ‫یابی‬‫ـ‬‫ه‬ ‫ه‬‫ـ‬‫مط‬ ‫کلی‬ ‫دف‬‫ـ‬‫عملکرد‬ ‫به‬ ‫شدن‬ ‫نائل‬ ‫اول‬ ‫هدف‬ ،‫است‬ ‫شده‬ ‫رح‬Real-Time‫نیاز‬ ‫بدون‬
‫ک‬ ‫به‬‫ـ‬‫پی‬ ‫اهش‬‫ـ‬‫چ‬‫ـ‬‫ال‬ ‫یدگی‬‫ـ‬‫ه‬ ،‫است‬ ‫گوریتم‬‫ـ‬‫پردازنده‬ ‫بارکاری‬ ‫کاهش‬ ‫دوم‬ ‫دف‬‫پ‬ ‫عملیات‬ ‫از‬ ‫مرکزی‬‫ـ‬‫ردازشی‬
‫ال‬‫ـ‬‫گوریتم‬‫بینای‬ ‫های‬‫ـ‬‫م‬ ‫ی‬‫ـ‬‫اخت‬ ‫و‬ ‫اشین‬‫ـ‬‫ص‬‫ـ‬‫س‬ ‫به‬ ‫آن‬ ‫اص‬‫ـ‬‫ب‬ ‫ایر‬‫ـ‬‫رن‬‫ـ‬‫امه‬‫سرعت‬ ‫افزایش‬ ‫نیز‬ ‫سوم‬ ‫هدف‬ ‫و‬ ‫باشد‬ ‫می‬ ‫ها‬
‫برنامه‬ ‫محاسبات‬‫راه‬ ‫یك‬ ‫کمك‬ ‫به‬ ‫تصویر‬ ‫پردازش‬ ‫های‬‫است‬ ‫اقتصادی‬ ‫صرفه‬ ‫به‬ ‫کار‬.
‫متداو‬ ‫مشکالت‬‫ل‬
‫ع‬‫ـ‬‫مت‬ ‫وامل‬‫ـ‬‫پیاده‬ ‫هنگام‬ ‫که‬ ‫دارند‬ ‫وجود‬ ‫عددی‬‫یك‬ ‫سازی‬‫پردازش‬ ‫الگوریتم‬‫پردازنده‬ ‫روی‬ ‫بر‬ ‫تصویر‬‫گرافیکی‬
‫می‬ ‫شده‬ ‫ذکر‬ ‫اهداف‬ ‫به‬ ‫نیل‬ ‫از‬ ‫مانع‬‫می‬ ‫عوامل‬ ‫این‬ ‫جمله‬ ‫از‬ ‫شوند‬‫اصلی‬ ‫حافظه‬ ‫میان‬ ‫محدود‬ ‫باند‬ ‫پهنای‬ ‫به‬ ‫توان‬
‫کارت‬ ‫و‬‫کرد‬ ‫اشاره‬ ‫کامپیوتر‬ ‫گرافیك‬.
‫صفحه‬29
‫کتابخانه‬OpenVIDIA‫و‬GPUCV
‫کتابخانه‬OpenVIDIA
‫ن‬‫ـ‬‫ام‬‫ک‬‫ـ‬‫تابخ‬‫ـ‬‫مت‬ ‫انه‬‫ـ‬‫ن‬‫ب‬‫ـ‬‫ازی‬‫اس‬‫ـ‬‫ک‬ ‫ت‬‫ـ‬‫دان‬ ‫در‬ ‫ه‬‫ـ‬‫ش‬‫ـ‬‫ت‬ ‫گاه‬‫ـ‬‫ب‬ ‫ورنتو‬‫ـ‬‫پ‬ ‫رای‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫ال‬ ‫ازی‬‫ـ‬‫گ‬‫ـ‬‫وریتم‬‫های‬
‫پ‬‫ـ‬‫ت‬ ‫ردازش‬‫ـ‬‫ص‬‫ـ‬‫وی‬‫ـ‬‫پ‬ ‫روی‬ ‫بر‬ ‫ر‬‫ـ‬‫ردازنده‬‫گ‬‫ـ‬‫از‬ ‫استفاده‬ ‫با‬ ‫کتابخانه‬ ‫این‬ .‫است‬ ‫شده‬ ‫نگاشته‬ ‫رافیکی‬API
‫گرافیکی‬OpenGL‫زبان‬ ‫و‬Cg‫سال‬ ‫در‬ ‫و‬ ‫است‬ ‫شده‬ ‫داده‬ ‫توسعه‬1115‫نرم‬ ‫جایزه‬ ‫برنده‬‫افزار‬
‫چند‬‫رسانه‬‫متن‬ ‫ای‬‫باز‬‫گشته‬.
‫کتابخانه‬GPUCV
‫ای‬‫ـ‬‫کت‬ ‫ن‬‫ـ‬‫پروژه‬ ‫در‬ ‫که‬ ‫رایگان‬ ‫ابخانه‬‫نام‬ ‫به‬ ‫ای‬Vision-‫پردازنده‬‫فرانسه‬ ‫ریمز‬ ‫دانشگاه‬ ‫در‬ ‫گرافیکی‬
‫ج‬ ،‫است‬ ‫یافته‬ ‫توسعه‬‫ـ‬‫ه‬‫ـ‬‫پ‬ ‫ت‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫ع‬ ‫ازی‬‫ـ‬‫ملگر‬‫الگوریتم‬ ‫های‬‫بینایی‬ ‫های‬‫روی‬ ‫بر‬ ‫ماشین‬
‫پردازنده‬‫کتابخانه‬ ‫الحاقی‬ ‫نسخه‬ ‫عنوان‬ ‫به‬ ‫و‬ ‫شده‬ ‫ایجاد‬ ‫گرافیکی‬‫معروف‬Intel OpenCV‫عمل‬
‫می‬‫کند‬.
‫آینده‬GPGPU
‫آین‬ ‫در‬‫ـ‬‫نه‬ ‫ده‬‫چن‬‫ـ‬‫دور‬ ‫دان‬GPGPU‫تکنولوژی‬ ‫از‬ ‫دیگر‬ ‫یکی‬‫م‬ ‫های‬‫ـ‬‫خ‬ ‫وفقی‬‫ـ‬‫پس‬ ‫در‬ ‫که‬ ‫بود‬ ‫واهد‬
‫بازی‬ ‫و‬ ‫سرگرمی‬ ‫دالری‬ ‫بیلیون‬ ‫چند‬ ‫بازار‬ ‫زمینه‬‫مت‬ ‫کامپیوتری‬ ‫های‬‫ـ‬‫تکنولوژی‬ ‫این‬ .‫است‬ ‫شده‬ ‫ولد‬
‫در‬ ‫بیشتر‬ ‫و‬ ‫نرسیده‬ ‫کامل‬ ‫بلوغ‬ ‫به‬ ‫هنوز‬‫پروژه‬‫گرفته‬ ‫کار‬ ‫به‬ ‫آکادمیك‬ ‫تحقیقات‬ ‫و‬ ‫ها‬‫می‬‫اما‬ ،‫شود‬
‫پیش‬‫نیست‬ ‫تصور‬ ‫از‬ ‫دور‬ ‫آن‬ ‫شدن‬ ‫فراگیر‬ ‫بینی‬.
‫صفحه‬21
‫مأخذ‬ ‫و‬ ‫منابع‬
1. www.sarirservice.com
2. www.operating-system.ir
3. forum.ecl4u.com
4. www.daneshju.ir
5. en.wikipedia.org/wiki/GPGPU
6. gpgpu.org
7. blogs.msdn.com
8. en.wikipedia.org/wiki/GPGPU
9. www.linkedin.com
10.www.tidepowerd.com/gpu-net
11.www.gpusystems.com
12.stackoverflow.com
13.blog.joeferfecki.com
14.syrcose.ispras.ru
15.www.sakhtafzar.com
16.www.demo.informatic-laptop.com
17.www.culatools.com
18.vidia-graphic.blogfa.com
19.www.tebyan.net
‫صفحه‬22
: ‫ضمائم‬
‫از‬ ‫که‬ ‫ای‬ ‫برنامه‬ ‫کد‬GPU .Net: ‫نماید‬ ‫می‬ ‫استفاده‬
0-
// Wrapper method (runs on the host)
// Create a standard .NET array of integers
const int Count = 0x1000000;
float[] a = new float[Count];
float[] b = new float[Count];
// Create an array to hold the output values
float[] c = new float[Count];
// Set grid/block size for GPU execution
Launcher.SetGridSize(256);
Launcher.SetBlockSize(128);
// Call the kernel method
AddGpu(a, b, c);
// The results are immediately available in 'c'.
// Kernel method (runs on the device)
[Kernel]
private static void AddGpu(float[] a, float[] b, float[] c)
{
// Get the thread id and total number of threads
int ThreadId = BlockDimension.X * BlockIndex.X + ThreadIndex.X;
int TotalThreads = BlockDimension.X * GridDimension.X;
// Loop over the vectors 'a' and 'b', adding them
// pairwise and storing the sums in 'c'
for (int ElementIndex = ThreadId; ElementIndex < a.Length; ElementIndex +=
TotalThreads)
{
c[ElementIndex] = a[ElementIndex] + b[ElementIndex];
}
}
‫صفحه‬23
1-
using System;
using System.Linq;
using Microsoft.ParallelArrays;
namespace AcceleratorSamples
{
static partial class Convolver2D
{
static FloatParallelArray convolve(this FloatParallelArray a,
Func<int, int[]> shifts, float[]
kernel)
{
return kernel
.Select((k, i) => k * ParallelArrays.Shift(a, shifts(i)))
.Aggregate((a1, a2) => a1 + a2);
}
static FloatParallelArray convolveXY(this FloatParallelArray input,
float[] kernel)
{
return input
.convolve(i => new[] { -i, 0 }, kernel)
.convolve(i => new[] { 0, -i }, kernel);
}
static void Main(string[] args)
{
const int inputSize = 10;
var random = new Random(42);
var inputData = new float[inputSize, inputSize];
for (int row = 0; row < inputSize; row++)
for (int col = 0; col < inputSize; col++)
inputData[row, col] = (float)random.NextDouble() *
random.Next(1, 100);
var testKernel = new[] { 2F, 5, 7, 4, 3 };
var dx9Target = new DX9Target();
var inputArray = new FloatParallelArray(inputData);
var result =
dx9Target.ToArray2D(inputArray.convolveXY(testKernel));
for (int row = 0; row < inputSize; row++)
{
for (int col = 0; col < inputSize; col++)
Console.Write("{0} ", result[row, col]);
Console.WriteLine();
}
}
}
}
‫صفحه‬24
‫اشکال‬ ‫فهرست‬
‫شكل‬1-‫پردازنده‬ ‫يك‬ ‫از‬ ‫نمايي‬‫مدرن‬ ‫گرافیكي‬.....................................................................................................................5
‫شکل‬1-‫پردا‬ ‫خام‬ ‫پردازشی‬ ‫توان‬‫زنده‬‫پردازنده‬ ‫با‬ ‫مقایسه‬ ‫در‬ ‫گرافیکی‬‫مرکزی‬...........................................................................9
‫شکل‬1-‫کارت‬ ‫هفت‬ ‫با‬ ‫کامپیوتر‬ ‫یك‬‫گرافیك‬....................................................................................................................05

More Related Content

Similar to GPGPU

تی شارک
تی شارکتی شارک
تی شارک
mona zavichi tork
 
جلسه اول گروه کاشان
جلسه اول گروه کاشانجلسه اول گروه کاشان
جلسه اول گروه کاشان
m_nezadi
 
Strengthening support vector classifiers based on fuzzy logic and evolutionar...
Strengthening support vector classifiers based on fuzzy logic and evolutionar...Strengthening support vector classifiers based on fuzzy logic and evolutionar...
Strengthening support vector classifiers based on fuzzy logic and evolutionar...
Reza Sadeghi
 
بروشور هفته مشاغل
بروشور  هفته مشاغل بروشور  هفته مشاغل
بروشور هفته مشاغل
tarasad
 
فناوری اطلاعات و تولید نهایی
فناوری اطلاعات و تولید نهایی فناوری اطلاعات و تولید نهایی
فناوری اطلاعات و تولید نهایی
Babak Sorkhpour
 
cloud computing , رایانش ابری
cloud computing , رایانش ابریcloud computing , رایانش ابری
cloud computing , رایانش ابری
vhd-abdarbashi
 
Cloud Computing7
Cloud Computing7Cloud Computing7
Cloud Computing7amiriano
 
Pdn tech-cloud management-softwares-ver2.0.1
Pdn tech-cloud management-softwares-ver2.0.1Pdn tech-cloud management-softwares-ver2.0.1
Pdn tech-cloud management-softwares-ver2.0.1
pdnsoftco
 
IoT Course - Chapter 2
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2
M Nemati
 
پروسه mcp & mcs-2
پروسه mcp & mcs-2پروسه mcp & mcs-2
پروسه mcp & mcs-2naghash mahdi
 
آموزش پردازش تصویر با OpenCV - بخش ششم
آموزش پردازش تصویر با OpenCV - بخش ششمآموزش پردازش تصویر با OpenCV - بخش ششم
آموزش پردازش تصویر با OpenCV - بخش ششم
faradars
 
شناخت شركت مديران
شناخت شركت مديران شناخت شركت مديران
شناخت شركت مديران
محمد وکیلی
 
سمينار دانشگاه صنعتي
سمينار دانشگاه صنعتيسمينار دانشگاه صنعتي
سمينار دانشگاه صنعتي
محمد وکیلی
 
Googleglass
GoogleglassGoogleglass
Googleglass
tarasad
 

Similar to GPGPU (19)

تی شارک
تی شارکتی شارک
تی شارک
 
جلسه اول گروه کاشان
جلسه اول گروه کاشانجلسه اول گروه کاشان
جلسه اول گروه کاشان
 
Micro-UUT(MoHaNDeS-EE.IR)
Micro-UUT(MoHaNDeS-EE.IR)Micro-UUT(MoHaNDeS-EE.IR)
Micro-UUT(MoHaNDeS-EE.IR)
 
Strengthening support vector classifiers based on fuzzy logic and evolutionar...
Strengthening support vector classifiers based on fuzzy logic and evolutionar...Strengthening support vector classifiers based on fuzzy logic and evolutionar...
Strengthening support vector classifiers based on fuzzy logic and evolutionar...
 
بروشور هفته مشاغل
بروشور  هفته مشاغل بروشور  هفته مشاغل
بروشور هفته مشاغل
 
Rajabi
RajabiRajabi
Rajabi
 
Seminar-Architecture
Seminar-ArchitectureSeminar-Architecture
Seminar-Architecture
 
فناوری اطلاعات و تولید نهایی
فناوری اطلاعات و تولید نهایی فناوری اطلاعات و تولید نهایی
فناوری اطلاعات و تولید نهایی
 
cloud computing , رایانش ابری
cloud computing , رایانش ابریcloud computing , رایانش ابری
cloud computing , رایانش ابری
 
Cloud Computing7
Cloud Computing7Cloud Computing7
Cloud Computing7
 
Pdn tech-cloud management-softwares-ver2.0.1
Pdn tech-cloud management-softwares-ver2.0.1Pdn tech-cloud management-softwares-ver2.0.1
Pdn tech-cloud management-softwares-ver2.0.1
 
GpuInCloud
GpuInCloudGpuInCloud
GpuInCloud
 
IoT Course - Chapter 2
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2
 
پروسه mcp & mcs-2
پروسه mcp & mcs-2پروسه mcp & mcs-2
پروسه mcp & mcs-2
 
آموزش پردازش تصویر با OpenCV - بخش ششم
آموزش پردازش تصویر با OpenCV - بخش ششمآموزش پردازش تصویر با OpenCV - بخش ششم
آموزش پردازش تصویر با OpenCV - بخش ششم
 
Me
MeMe
Me
 
شناخت شركت مديران
شناخت شركت مديران شناخت شركت مديران
شناخت شركت مديران
 
سمينار دانشگاه صنعتي
سمينار دانشگاه صنعتيسمينار دانشگاه صنعتي
سمينار دانشگاه صنعتي
 
Googleglass
GoogleglassGoogleglass
Googleglass
 

More from Mohammad Amin Amjadi

Image Cryptography and Steganography
Image Cryptography and SteganographyImage Cryptography and Steganography
Image Cryptography and Steganography
Mohammad Amin Amjadi
 
memetic algorithm
memetic algorithmmemetic algorithm
memetic algorithm
Mohammad Amin Amjadi
 

More from Mohammad Amin Amjadi (15)

Seminar-Parallel Processing
Seminar-Parallel ProcessingSeminar-Parallel Processing
Seminar-Parallel Processing
 
Image Cryptography and Steganography
Image Cryptography and SteganographyImage Cryptography and Steganography
Image Cryptography and Steganography
 
memetic algorithm
memetic algorithmmemetic algorithm
memetic algorithm
 
Amjadi - Ebook 7 - Class - v1
Amjadi - Ebook 7 - Class - v1Amjadi - Ebook 7 - Class - v1
Amjadi - Ebook 7 - Class - v1
 
Amjadi - Ebook 6 - Ref,Out - v1
Amjadi - Ebook 6 - Ref,Out - v1Amjadi - Ebook 6 - Ref,Out - v1
Amjadi - Ebook 6 - Ref,Out - v1
 
Amjadi - Ebook 5 - Function - v1
Amjadi - Ebook 5 - Function - v1Amjadi - Ebook 5 - Function - v1
Amjadi - Ebook 5 - Function - v1
 
Az Micro
Az MicroAz Micro
Az Micro
 
my project
my projectmy project
my project
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Amjadi
AmjadiAmjadi
Amjadi
 
Documention
DocumentionDocumention
Documention
 
HotSpot
HotSpotHotSpot
HotSpot
 
Lecture3
Lecture3Lecture3
Lecture3
 
Lecture2
Lecture2Lecture2
Lecture2
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 

GPGPU

  • 2. ‫صفحه‬2 GPGPU : ‫محقق‬ ‫امجدی‬ ‫امین‬ ‫ّد‬‫م‬‫مح‬ 00343888 ‫دان‬‫کرمان‬ ‫باهنر‬ ‫شهید‬ ‫شگاه‬ ‫فنی‬ ‫دانشکده‬ ‫کامپیوتر‬ ‫مهندسی‬ ‫بخش‬ ‫افزار‬ ‫سخت‬ ‫گرایش‬ ‫راهنما‬ ‫استاد‬: ‫صفاپو‬ ‫پروین‬ ‫مهندس‬‫ر‬ ‫سال‬ ‫نیم‬‫سال‬ ‫دوم‬09
  • 3. ‫صفحه‬3 ‫مطالب‬ ‫فهرست‬ ...................................................................................................................... ‫چکیده‬..........................................................4 ‫مقدمه‬.................................................................................................................................................................................5 GPGPU............................................................. ‫صنعت‬ ‫و‬................................................................................................6 ......................................... ‫مدرن‬ ‫گرافیکی‬ ‫های‬ ‫پردازنده‬ ‫های‬ ‫ویژگی‬..................................................................................8 ‫توانایی‬ ‫مقایسه‬‫پردازنده‬ ‫های‬‫پردازنده‬ ‫با‬ ‫گرافیکی‬‫مرکزی‬.........................................................................................................9 ‫پردازنده‬‫پردازنده‬ ‫از‬ ‫گرافیکی‬‫سریع‬ ‫مرکزی‬‫است‬ ‫تر‬...............................................................................................................01 ‫ابزار‬‫برنامه‬ ‫های‬‫نویسی‬GPGPU.........................................................................................................................................00 ‫کاربرد‬‫پردازنده‬ ‫غیرگرافیکی‬ ‫های‬‫گرافیکی‬.........................................................................................................................01 ‫پردازنده‬ ‫کاربرد‬‫تصویر‬ ‫پردازش‬ ‫در‬ ‫گرافیکی‬......................................................................................................................04 ‫متداو‬ ‫مشکالت‬....................................................................................................................... ‫ل‬..........................................04 ‫کتابخانه‬OpenVIDIA‫و‬GPUCV.......................................................................................................................................05 ‫آینده‬GPGPU...................................................................................................................................................................01 .................................................................................. ‫خالصه‬.............................................................................................08 ................................................................................................................ ‫مأخذ‬ ‫و‬ ‫منابع‬........................................................10 ............................................................................................ ‫ضمائم‬.....................................................................................11
  • 4. ‫صفحه‬4 ‫چکیده‬ ‫پردازنده‬ ‫امروزه‬‫گ‬ ‫هاي‬‫ـ‬‫که‬ ‫رافیكي‬‫کارت‬ ‫روي‬ ‫بر‬‫گرافیك‬‫گران‬ ‫هاي‬‫مي‬ ‫نصب‬ ‫قیمت‬‫خارق‬ ‫پردازشي‬ ‫توان‬ ‫شوند‬‫العاده‬‫اي‬ ‫نسب‬ ‫را‬‫ـ‬‫پردازنده‬ ‫به‬ ‫ت‬‫مي‬ ‫ارائه‬ ‫مرکزي‬ ‫هاي‬‫کاربرد‬ ‫گسترش‬ ‫موجب‬ ‫موضوع‬ ‫اين‬ ،‫دهند‬‫پردازنده‬ ‫اين‬ ‫هاي‬‫حوزه‬ ‫در‬ ‫ها‬‫هايي‬ ‫ف‬‫ـ‬‫ب‬ ‫از‬ ‫راتر‬‫ـ‬‫ازي‬‫ک‬ ‫هاي‬‫ـ‬‫امپیوت‬‫ـ‬‫گشت‬ ‫ري‬‫ـ‬‫پ‬ ،‫است‬ ‫ه‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫مع‬ ‫با‬ ‫مدرن‬ ‫گرافیكي‬ ‫هاي‬‫پردازنده‬ ‫خود‬ ‫موازي‬ ‫ماري‬‫بسیار‬ ‫هاي‬ ‫مي‬ ‫شمار‬ ‫به‬ ‫سريعي‬‫مي‬ ‫عرضه‬ ‫کمتري‬ ‫مصرفي‬ ‫توان‬ ‫و‬ ‫قیمت‬ ‫با‬ ‫حال‬ ‫عین‬ ‫در‬ ،‫روند‬‫پیاده‬ ‫جهت‬ ‫و‬ ‫شوند‬‫الگوريتم‬ ‫سازي‬‫و‬ ‫ها‬ ‫ب‬‫ـ‬‫رن‬‫ـ‬‫بین‬ ‫هاي‬ ‫امه‬‫ـ‬‫پ‬ ‫و‬ ‫ماشین‬ ‫ايي‬‫ـ‬‫تص‬ ‫ردازش‬‫ـ‬‫مي‬ ‫طلب‬ ‫بیشتر‬ ‫فريم‬ ‫نرخ‬ ‫به‬ ‫رسیدن‬ ‫جهت‬ ‫را‬ ‫زيادي‬ ‫پردازشي‬ ‫بار‬ ‫که‬ ‫وير‬،‫کنند‬ ‫ي‬‫ـ‬‫راه‬ ‫ك‬‫مي‬ ‫شمار‬ ‫به‬ ‫کارآمد‬ ‫و‬ ‫اقتصادي‬ ‫کار‬‫واسط‬ ‫فراگیري‬ ‫به‬ ‫نیاز‬ ‫بدون‬ ‫نويس‬ ‫برنامه‬ ‫که‬ ‫طوري‬ ،‫رود‬‫نويسي‬ ‫برنامه‬ ‫هاي‬ ‫کتابخانه‬ ‫کمك‬ ‫به‬ ‫گرافیكي‬‫اين‬ ‫براي‬ ‫موجود‬ ‫هاي‬‫مي‬ ‫کار‬‫مرکزي‬ ‫پردازنده‬ ‫از‬ ‫سادگي‬ ‫به‬ ‫را‬ ‫خود‬ ‫برنامه‬ ‫پردازشي‬ ‫بار‬ ‫تواند‬ ‫کند‬ ‫منتقل‬ ‫گرافیكي‬ ‫پردازنده‬ ‫به‬.
  • 5. ‫صفحه‬5 ‫مقدمه‬ ‫اشتی‬‫ـ‬‫اق‬‫ف‬‫ـ‬‫ط‬ ‫راوان‬‫ـ‬‫بازي‬ ‫رفداران‬‫بازي‬ ‫به‬ ‫کامپیوتري‬ ‫هاي‬‫طبیعي‬ ‫و‬ ‫زيبا‬ ‫هاي‬‫به‬ ‫موجب‬ ،‫تر‬‫در‬ ‫متعددي‬ ‫تحوالت‬ ‫آمدن‬ ‫وجود‬ ‫کارت‬‫گ‬‫ـ‬‫رافی‬‫ـ‬‫ك‬‫فن‬ ‫و‬ ‫ها‬‫آوري‬‫کارت‬ ‫که‬ ‫طوري‬ ‫به‬ ‫شده‬ ‫آن‬ ‫به‬ ‫وابسته‬ ‫هاي‬‫گرافیك‬‫مي‬ ‫مدرن‬ ‫هاي‬‫سرطان‬ ‫درمان‬ ‫به‬ ‫توانند‬ ‫ر‬ ‫سانفرانسیسكو‬ ‫شهر‬ ‫در‬ ‫برزگي‬ ‫لرزه‬ ‫زمین‬ !‫کنند‬ ‫کمك‬‫پیش‬ ‫ا‬‫فراهم‬ ‫با‬ ‫و‬ ‫کنند‬ ‫بیني‬‫پ‬ ‫توان‬ ‫آوردن‬‫ـ‬‫خ‬ ‫ردازشي‬‫ـ‬‫ارق‬‫العاده‬، ‫مس‬‫ـ‬‫ائ‬‫ـ‬‫بسی‬ ‫ل‬‫ـ‬‫پ‬ ‫ار‬‫ـ‬‫یچ‬‫ـ‬‫مح‬ ‫یده‬‫ـ‬‫اسب‬‫ـ‬‫ات‬‫ـ‬‫ري‬ ‫و‬ ‫ي‬‫ـ‬‫اض‬‫ـ‬‫ب‬ ‫را‬ ‫ي‬‫ـ‬‫س‬ ‫ه‬‫ـ‬‫ادگ‬‫ـ‬‫ح‬ ‫ي‬‫ـ‬‫کرده‬ ‫فكر‬ ‫موضوع‬ ‫اين‬ ‫به‬ ‫کنون‬ ‫تا‬ ‫آيا‬ .‫کنند‬ ‫ل‬‫که‬ ‫ايد‬ ‫کارت‬‫گرافی‬‫ـ‬‫ك‬‫ه‬‫ـ‬‫چن‬ ‫اي‬‫ـ‬‫بازي‬ ‫از‬ ‫غیر‬ ‫به‬ ‫توماني‬ ‫هزار‬ ‫دصد‬‫کاربرد‬ ‫چه‬ ‫در‬ ‫کامپیوتري‬ ‫هاي‬‫ها‬‫مي‬ ‫درد‬ ‫به‬ ‫ديگري‬ ‫ي‬‫خورد؟‬ ‫سال‬‫اس‬ ‫ها‬‫ـ‬‫اف‬ ‫که‬ ‫ت‬‫ـ‬‫اف‬ ‫روز‬ ‫زايش‬‫ـ‬‫کارت‬ ‫عملكرد‬ ‫زون‬‫گرافیك‬‫بهره‬ ‫فكر‬ ‫به‬ ‫را‬ ‫محققین‬ ،‫ها‬‫در‬ ‫آنها‬ ‫پردازشي‬ ‫توان‬ ‫از‬ ‫گیري‬ ‫نام‬ ‫به‬ ‫کامپیوتر‬ ‫علوم‬ ‫در‬ ‫جديدي‬ ‫شاخه‬ ‫راستا‬ ‫همین‬ ‫در‬ .‫است‬ ‫انداخته‬ ‫غیرگرافیكي‬ ‫کاربردهاي‬GPGPU‫که‬ ‫گشته‬ ‫ايجاد‬ ‫ه‬‫ـ‬‫نه‬ ‫دف‬‫ـ‬‫فع‬ ‫ايي‬‫ـ‬‫ا‬ ‫االن‬‫بهره‬ ‫عرصه‬ ‫ين‬‫گی‬‫ـ‬‫کارت‬ ‫از‬ ‫ري‬‫گرافی‬‫ـ‬‫عن‬ ‫به‬ ‫ك‬‫ـ‬‫ي‬ ‫وان‬‫ـ‬‫پردازنده‬ ‫کمك‬ ‫ك‬‫برنامه‬ ‫در‬ ‫محاسباتي‬‫هاي‬ ‫برنامه‬ ‫و‬ ‫غیرگرافیكي‬‫است‬ ‫عمومي‬ ‫هاي‬. ‫هم‬ ‫در‬‫ـ‬‫ايش‬SuperComputing 2006‫شهر‬ ‫در‬ ‫که‬Tampa‫کارولینا‬ ‫دانشگاه‬ ‫محققین‬ ،‫شد‬ ‫برگزار‬ ‫فلوريدا‬ ‫ايالت‬ ‫نت‬‫ـ‬‫اي‬‫ـ‬‫آزماي‬ ‫ج‬‫ـ‬‫ش‬‫گست‬ ‫هاي‬‫ـ‬‫در‬ ‫را‬ ‫خود‬ ‫رده‬‫مق‬ ‫مورد‬‫ـ‬‫پ‬ ‫عملكرد‬ ‫ايسه‬‫ـ‬‫ردازنده‬‫گرافیكي‬(GPU)‫پردازنده‬ ‫با‬‫مرکزي‬(CPU) ‫من‬‫ـ‬‫تش‬‫ـ‬‫کردند‬ ‫ر‬‫پردازنده‬ ،‫گرافی‬‫ـ‬‫نوع‬ ،‫كي‬‫ـ‬‫پردازنده‬ ‫ي‬‫م‬‫ـ‬‫گرافی‬ ‫کارت‬ ‫روي‬ ‫بر‬ ‫که‬ ‫است‬ ‫وازي‬‫ـ‬‫ك‬‫ه‬‫ـ‬‫(شكل‬ ‫دارد‬ ‫قرار‬ ‫ا‬1). ‫اي‬‫ـ‬‫پ‬ ‫ن‬‫ـ‬‫ص‬ ‫به‬ ‫ردازنده‬‫ـ‬‫اخت‬ ‫کامال‬ ‫ورت‬‫ـ‬‫محیط‬ ‫گرافیكي‬ ‫پردازش‬ ‫براي‬ ‫صاصي‬‫هاي‬‫سه‬‫بازي‬ ‫و‬ ‫بعدي‬‫طراحي‬ ‫کامپیوتري‬ ‫هاي‬ ‫ش‬‫ـ‬‫ط‬ ‫که‬ ‫است‬ ‫ده‬‫ـ‬‫سال‬ ‫ي‬‫گ‬ ‫هاي‬‫ـ‬‫ت‬ ‫ذشته‬‫ـ‬‫وس‬‫ـ‬‫صن‬ ‫ط‬‫ـ‬‫چن‬ ‫عت‬‫ـ‬‫بازي‬ ‫دالري‬ ‫بیلیون‬ ‫د‬‫که‬ ‫يافته‬ ‫تحول‬ ‫چنان‬ ‫آن‬ ‫کامپیوتري‬ ‫هاي‬ ‫ام‬‫ـ‬‫ن‬ ‫از‬ ‫روزه‬‫ـ‬‫ک‬ ‫ظر‬‫ـ‬‫ب‬ ‫ارايي‬‫ـ‬‫پ‬ ‫ا‬‫ـ‬‫ردازنده‬‫ي‬ ‫که‬ ‫مرکزي‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫مي‬ ‫شمار‬ ‫به‬ ‫منظوره‬ ‫همه‬ ‫ردازنده‬‫مي‬ ‫رقابت‬ ‫رود‬‫گیري‬ ‫بكار‬ .‫کند‬ ‫پردازند‬‫ه‬‫کارت‬ ‫براي‬ ‫جديدي‬ ‫جايگاه‬ ‫عمومي‬ ‫محاسبات‬ ‫در‬ ‫گرافیكي‬‫گرافیك‬‫که‬ ‫جايي‬ ،‫است‬ ‫کرده‬ ‫ايجاد‬ ‫قدرتمند‬ ‫هاي‬ ‫پردازنده‬ ‫از‬‫گرافی‬‫ـ‬‫دي‬ ‫كي‬‫ـ‬‫بازي‬ ‫گرافیكي‬ ‫محاسبات‬ ‫پردازش‬ ‫براي‬ ‫گر‬‫هاي‬‫نمي‬ ‫استفاده‬ ‫کامپیوتري‬‫نقش‬ ‫در‬ ‫عوض‬ ‫در‬ ،‫شود‬ ‫ي‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫ب‬ ،‫کمكي‬ ‫ردازنده‬‫ـ‬‫ت‬ ‫يا‬ ‫خشي‬‫ـ‬‫ب‬ ‫مامي‬‫ـ‬‫مح‬ ‫ار‬‫ـ‬‫اسب‬‫ـ‬‫پ‬ ‫اتي‬‫ـ‬‫رداز‬‫ن‬‫ـ‬‫ده‬‫سرعت‬ ‫پردازش‬ ‫عملیات‬ ‫به‬ ‫و‬ ‫کرده‬ ‫تقبل‬ ‫را‬ ‫مرکزي‬ ‫مي‬‫بخشد‬. ‫شكل‬1-‫پردازنده‬ ‫يك‬ ‫از‬ ‫نمايي‬‫گرافیكي‬ ‫مدرن‬
  • 6. ‫صفحه‬6 GPGPU‫صنعت‬ ‫و‬ NVIDIA‫و‬ATI‫عن‬ ‫به‬‫ـ‬‫پردازنده‬ ‫بزرگ‬ ‫تولیدکننده‬ ‫دو‬ ‫به‬ ‫وان‬‫هاي‬‫ايده‬ ‫اين‬ ‫از‬ ،‫گرافیكي‬‫کرده‬ ‫استقبال‬ ‫نوين‬ ‫ي‬‫براي‬ ‫و‬ ‫اند‬ ‫گست‬‫ـ‬‫ف‬ ‫رش‬‫ـ‬‫مح‬ ‫روش‬‫ـ‬‫خ‬ ‫صوالت‬‫ـ‬‫ود‬‫ب‬ ‫در‬‫ـ‬‫ف‬ ‫ازارهايي‬‫ـ‬‫ب‬ ‫از‬ ‫راتر‬‫ـ‬‫ب‬ ‫ازار‬‫ـ‬‫ازي‬‫ک‬ ‫هاي‬‫ـ‬‫فن‬ ،‫امپیوتري‬‫آوري‬‫به‬ ‫براي‬ ‫جديدي‬ ‫هاي‬ ‫پردازنده‬ ‫کارگیري‬‫گرافی‬‫ـ‬‫ک‬ ‫در‬ ‫كي‬‫ـ‬‫اربرد‬‫کرده‬ ‫ارائه‬ ‫غیرگرافیكي‬ ‫هاي‬‫عرضه‬ ‫با‬ ‫همزمان‬ .‫اند‬Geforce 8800‫شرکت‬ ، Nvidia‫برنامه‬ ‫توسعه‬ ‫محیط‬ ‫اولین‬‫هاي‬GPGPU‫کامپايلر‬ ‫بر‬ ‫مبتني‬ ‫را‬C‫به‬ ‫موسوم‬ ،CUDA‫کمك‬ ‫به‬ ‫که‬ ‫کرده‬ ‫معرفي‬ ‫اي‬‫ـ‬‫فن‬ ‫ن‬‫بهره‬ ‫آوري‬‫ب‬‫ـ‬‫پ‬ ‫از‬ ‫رداري‬‫ـ‬‫ردازنده‬‫گرافی‬‫ـ‬‫برن‬ ‫در‬ ‫كي‬‫ـ‬‫امه‬‫ه‬‫ـ‬‫عم‬ ‫اي‬‫ـ‬‫بسی‬ ‫ومي‬‫ـ‬‫آسان‬ ‫ار‬‫ارشد‬ ‫مدير‬ ‫گفته‬ ‫به‬ .‫شد‬ ‫خواهد‬ ‫تر‬ ‫ش‬‫ـ‬‫رک‬‫ـ‬‫ت‬NVIDIA‫ح‬ ‫در‬‫ـ‬‫مح‬ ‫وزه‬‫ـ‬‫اسب‬‫ـ‬‫پ‬ ‫ات‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫آق‬ ، ‫كي‬‫ـ‬‫اي‬andy keane‫معم‬ ،‫ـ‬‫ک‬ ‫اري‬‫ـ‬‫ام‬‫ـ‬‫در‬ ‫جديدي‬ ‫ال‬ ‫پ‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ـ‬‫راف‬‫ـ‬‫ی‬‫ـ‬‫ه‬ ‫كي‬‫ـ‬‫ن‬ ‫اي‬‫ـ‬‫س‬‫ـ‬‫ش‬ ‫هشتم‬ ‫ل‬‫ـ‬‫حافظه‬ ‫کردن‬ ‫اضافه‬ ‫با‬ ‫آن‬ ‫در‬ ‫که‬ ‫شده‬ ‫گرفته‬ ‫کار‬ ‫به‬ ‫رکت‬‫ک‬‫ـ‬‫اش‬‫ـ‬‫اس‬ ،‫ه‬‫ـ‬‫از‬ ‫تفاده‬ ‫پ‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫م‬ ‫دو‬ ‫در‬ ‫كي‬‫ـ‬‫گرافی‬ ‫د‬‫ـ‬‫گرافی‬ ‫غیر‬ ‫و‬ ‫كي‬‫ـ‬‫سه‬ ‫به‬ ‫كي‬‫ـ‬‫ام‬ ‫ولت‬‫ـ‬‫است‬ ‫پذير‬ ‫كان‬:«‫پردازنده‬ ‫اکنون‬ ‫هم‬‫گرافیكي‬ ‫شب‬‫ـ‬‫پ‬ ‫به‬ ‫بسیاري‬ ‫اهت‬‫ـ‬‫ردازنده‬‫و‬ ‫است‬ ‫کرده‬ ‫پیدا‬ ‫مرکزي‬CUDA‫ساده‬ ‫و‬ ‫پذير‬ ‫انعطاف‬ ‫مسیر‬‫کارايي‬ ‫به‬ ‫دستیابي‬ ‫براي‬ ‫را‬ ‫اي‬ ‫شگفت‬‫پردازنده‬ ‫در‬ ‫شده‬ ‫نهفته‬ ‫انگیز‬‫برنامه‬ ‫براي‬ ‫گرافیكي‬‫مي‬ ‫ارمغان‬ ‫به‬ ‫نويسان‬‫آورد‬». ‫تج‬‫ـ‬‫ربه‬‫بسی‬ ‫هاي‬‫ـ‬‫پروژه‬ ‫در‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫موفق‬ ‫ار‬Folding@Home‫بودن‬ ‫کاربردي‬ ‫بر‬ ‫تايیدي‬ ‫مهر‬ ،‫َنفورد‬‫ت‬‫ِس‬‫ا‬ ‫دانشگاه‬ ‫سب‬ ‫اين‬‫ـ‬‫ج‬ ‫ك‬‫ـ‬‫د‬‫ي‬‫ـ‬‫برنامه‬ ‫د‬‫پروژه‬ ‫اين‬ ‫در‬ ، ‫است‬ ‫ها‬‫ع‬ ‫ي‬‫ـ‬‫سال‬ ‫که‬ ‫مومي‬‫کامپیوتر‬ ‫شده‬ ‫آغاز‬ ‫هاست‬‫سراسر‬ ‫از‬ ‫نفر‬ ‫هزاران‬ ‫هاي‬ ‫همدي‬ ‫با‬ ‫دنیا‬‫ـ‬‫ط‬ ‫از‬ ‫گر‬‫ـ‬‫اين‬ ‫ريق‬‫ـ‬‫متص‬ ‫ترنت‬‫ـ‬‫م‬ ‫ل‬‫ـ‬‫ي‬‫پردازنده‬ ‫پردازشي‬ ‫توان‬ ‫کمك‬ ‫به‬ ‫تا‬ ‫گردد‬‫پروتئین‬ ،‫خود‬ ‫هاي‬ ‫مرکزي‬‫هاي‬ ‫بیماري‬ ‫ايجاد‬ ‫در‬ ‫موثر‬‫بیماري‬ ‫و‬ ‫سرطاني‬ ‫هاي‬‫را‬ ‫غددي‬ ‫هاي‬‫شبیه‬‫روش‬ ‫يافتن‬ ‫در‬ ‫را‬ ‫محققین‬ ‫و‬ ‫کرده‬ ‫سازي‬‫آنها‬ ‫درمان‬ ‫هاي‬ ‫م‬ ‫چند‬ .‫کنند‬ ‫ياري‬‫ـ‬‫همك‬ ‫با‬ ‫پیش‬ ‫اه‬‫ـ‬‫شرکت‬ ‫اري‬ATI‫نرم‬ ‫از‬ ‫آزمايشي‬ ‫نسخه‬ ،‫پردازش‬ ‫توان‬ ‫از‬ ‫آن‬ ‫در‬ ‫که‬ ‫شد‬ ‫عرضه‬ ‫افزاري‬ ‫کارت‬‫شده‬ ‫متصل‬ ‫همديگر‬ ‫به‬ ‫اينترنت‬ ‫طريق‬ ‫از‬ ‫که‬ ‫کامپیوترهايي‬ ‫گرافیك‬‫پردازنده‬ ‫از‬ ‫استفاده‬ ‫جاي‬ ‫به‬ ‫اند‬‫م‬‫در‬ ‫آنها‬ ‫رکزي‬ ‫شبی‬‫ـ‬‫ه‬‫سازي‬‫مي‬ ‫استفاده‬ ‫ها‬‫جهش‬ ‫آزمايش‬ ‫اين‬ ‫از‬ ‫آمده‬ ‫دست‬ ‫به‬ ‫نتايج‬ ‫آخرين‬ .‫کند‬29‫الي‬49‫را‬ ‫پروژه‬ ‫رشد‬ ‫نرخ‬ ‫درصدي‬ ‫نش‬‫ـ‬‫مي‬ ‫ان‬‫آرايه‬ ،‫دهد‬‫از‬ ‫اي‬536‫کارت‬‫پردازنده‬ ‫با‬ ‫گرافیك‬‫گرافیكیي‬Radeon X1900‫ط‬ ‫که‬‫ـ‬‫پروژه‬ ‫اين‬ ‫به‬ ‫ماه‬ ‫چند‬ ‫ي‬ ‫پی‬‫ـ‬‫با‬ ‫اند‬ ‫وسته‬35‫مح‬ ‫تريلیون‬‫ـ‬‫اسبه‬‫بی‬ ‫پردازشي‬ ‫سرعت‬ ،‫ثانیه‬ ‫در‬‫ـ‬‫از‬ ‫ش‬18475‫پردازنده‬‫پلتفورم‬ ‫با‬ ‫کننده‬ ‫شرکت‬ ‫مرکزي‬ linux‫ب‬‫ـ‬‫ح‬ ‫ا‬‫ـ‬‫داکثر‬21‫مح‬ ‫تريلیون‬‫ـ‬‫کرده‬ ‫ارائه‬ ‫ثانیه‬ ‫در‬ ‫اسبه‬‫پردازنده‬ ‫بكارگیري‬ ‫از‬ ‫حاصل‬ ‫عملكرد‬ ‫افزايش‬ .‫اند‬‫گرافیكي‬ ‫ب‬ ‫در‬‫ـ‬‫رن‬‫ـ‬‫امه‬‫غیرگرافی‬ ‫هاي‬‫ـ‬‫محققی‬ ،‫كي‬‫ـ‬‫دانشمن‬ ‫و‬ ‫ن‬‫ـ‬‫عل‬ ‫دان‬‫ـ‬‫مج‬ ‫را‬ ‫کامپیوتر‬ ‫وم‬‫ـ‬‫خ‬ ‫ذوب‬‫ـ‬‫ک‬ ‫ود‬‫ـ‬‫ب‬ ‫رده‬‫ـ‬‫روز‬ ‫به‬ ‫روز‬ ‫که‬ ‫طوري‬ ‫ه‬
  • 7. ‫صفحه‬8 ‫ت‬ ‫بر‬‫ـ‬‫تحقی‬ ‫و‬ ‫مقاالت‬ ‫عداد‬‫ـ‬‫ق‬‫ـ‬‫ح‬ ‫ات‬‫ـ‬‫وزه‬GPGPU‫اف‬‫ـ‬‫مي‬ ‫زوده‬،‫شود‬Denish Manocha‫تحقیقاتي‬ ‫تیم‬ ‫اساتید‬ ‫از‬ ‫يكي‬ Gamma‫مي‬ ‫مورد‬ ‫اين‬ ‫در‬ ،‫کارولینا‬ ‫دانشگاه‬ ‫در‬‫گويد‬: «‫پردازنده‬ ‫پردازشي‬ ‫توان‬ ‫حداکثر‬‫گرافی‬‫ـ‬‫س‬ ‫هر‬ ‫ها‬ ‫كي‬‫ـ‬‫اله‬2‫مي‬ ‫رشد‬ ‫برابر‬‫کند‬‫بازي‬ ‫صنعت‬ ‫که‬ ‫چرا‬ ،‫انگیزه‬ ‫کامپیوتري‬ ‫هاي‬ ‫است‬ ‫کرده‬ ‫فراهم‬ ‫را‬ ‫رشد‬ ‫اين‬ ‫اقتصادي‬». ‫همچ‬‫ـ‬‫نی‬‫ـ‬‫هم‬ ‫به‬ ‫ايشان‬ ‫ن‬‫ـ‬‫هم‬ ‫راه‬‫ـ‬‫خ‬ ‫كار‬‫ـ‬‫دانش‬ ‫در‬ ‫ود‬‫ـ‬‫عل‬ ‫كده‬‫ـ‬‫کامپی‬ ‫وم‬‫ـ‬‫دانشگ‬ ‫وتر‬‫ـ‬‫ک‬ ‫اه‬‫ـ‬‫مدت‬ ،‫ارولینا‬‫برگزاري‬ ‫به‬ ‫اقدام‬ ‫هاست‬ ‫دوره‬‫ه‬‫ـ‬‫آم‬ ‫اي‬‫ـ‬‫وي‬ ‫وزشي‬‫ـ‬‫مح‬ ‫ژه‬‫ـ‬‫ع‬ ‫اسبات‬‫ـ‬‫م‬‫ـ‬‫کم‬ ‫به‬ ‫ومي‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ـ‬‫رافی‬‫ـ‬‫كي‬‫کرده‬‫ا‬‫مي‬ ‫را‬ ‫آن‬ ‫نويد‬ ‫امر‬ ‫اين‬ .‫ند‬‫که‬ ‫دهد‬ ‫بهره‬‫گی‬‫ـ‬‫پ‬ ‫از‬ ‫ري‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫مح‬ ‫در‬ ‫كي‬‫ـ‬‫اسب‬‫ـ‬‫عم‬ ‫ات‬‫ـ‬‫يك‬ ‫به‬ ‫ومي‬‫ـ‬‫مح‬ ‫استاندارد‬ ‫دروس‬ ‫از‬ ‫ي‬‫ـ‬‫آک‬ ‫افل‬‫ـ‬‫شود‬ ‫تبديل‬ ‫ادمیك‬. ‫گ‬‫ـ‬‫روه‬‫ـ‬‫مح‬ ‫از‬ ‫ي‬‫ـ‬‫ق‬‫ـ‬‫قی‬‫ـ‬‫ب‬ ‫ن‬‫ـ‬‫اي‬ ‫ر‬‫ـ‬‫ب‬ ‫ن‬‫ـ‬‫سوپر‬ ‫باالي‬ ‫بسیار‬ ‫پردازشي‬ ‫قدرت‬ ‫که‬ ‫اورند‬‫توان‬ ‫از‬ ‫برداري‬ ‫بهره‬ ‫با‬ ‫کامپیوترها‬‫پردازشي‬ ‫پردازنده‬‫بازي‬ ‫صنعت‬ ‫براي‬ ‫که‬ ‫گرافیكیهايي‬‫يافته‬ ‫توسعه‬ ‫کامپیوتري‬ ‫هاي‬‫گفته‬ ‫به‬ .‫است‬ ‫دستیابي‬ ‫قابل‬ ،‫اند‬Vijay Pande ‫پروژه‬ ‫مدير‬Folding@Home«‫بهره‬ ‫با‬‫ت‬ ‫از‬ ‫برداري‬‫ـ‬‫پ‬ ‫وان‬‫ـ‬‫ردازش‬‫ـ‬‫پ‬ ‫ي‬‫ـ‬‫ردازنده‬‫واقعي‬ ‫انقالب‬ ‫يك‬ ‫شاهد‬ ‫ما‬ ‫ها‬ ‫گرافیكي‬ ‫نمي‬ ‫تصور‬ ‫قابل‬ ‫هرگز‬ ‫که‬ ‫بوديم‬‫بود‬». ‫د‬‫مق‬ ‫اين‬ ‫ر‬‫ـ‬‫کاربرد‬ ‫به‬ ‫اله‬‫کارت‬ ‫هاي‬‫گرافیك‬‫برنامه‬ ‫در‬‫کاربرد‬ ‫اين‬ ‫در‬ ‫که‬ ‫شده‬ ‫اشاره‬ ‫عمومي‬ ‫هاي‬‫به‬ ‫گرافیكي‬ ‫پردازنده‬ ‫ها‬ ‫عن‬‫ـ‬‫کم‬ ‫يك‬ ‫وان‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫مح‬ ‫ردازنده‬‫ـ‬‫اسب‬‫ـ‬‫ق‬ ‫اتي‬‫ـ‬‫ب‬ ‫درتمند‬‫ـ‬‫خ‬ ‫ه‬‫ـ‬‫گرف‬ ‫دمت‬‫ـ‬‫ت‬‫ـ‬‫مي‬ ‫ه‬‫ع‬ ،‫شود‬‫ـ‬‫الوه‬‫مقايسه‬ ‫اين‬ ‫بر‬‫پردازنده‬ ‫میان‬ ‫اي‬ ‫گ‬‫ـ‬‫رافیك‬‫ـ‬‫پ‬ ‫و‬ ‫ي‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫م‬‫ـ‬‫رک‬‫ـ‬‫صور‬ ‫زي‬‫گرف‬ ‫ت‬‫ـ‬‫ت‬‫ـ‬‫ت‬ ‫ه‬‫ـ‬‫ب‬ ‫ا‬‫ـ‬‫رت‬‫ـ‬‫ري‬‫نسب‬ ‫هاي‬‫ـ‬‫پردازنده‬ ‫ي‬‫به‬ ‫سپس‬ ‫گردد‬ ‫مشخص‬ ‫گرافیكي‬ ‫هاي‬ ‫روش‬‫مت‬ ‫هاي‬‫ـ‬‫برنامه‬ ‫داول‬‫نويس‬‫ـ‬‫عم‬ ‫ي‬‫ـ‬‫پردازن‬ ‫ومي‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫ک‬ ‫کوتاهي‬ ‫اشاره‬ ‫كي‬‫ـ‬‫کاربرد‬ ‫از‬ ‫برخي‬ ‫انتها‬ ‫در‬ ‫و‬ ‫رده‬‫روش‬ ‫هاي‬ ‫برنامه‬‫برنامه‬ ‫در‬ ‫مذکور‬ ‫نويسي‬‫است‬ ‫شده‬ ‫بررسي‬ ‫ماشین‬ ‫بینايي‬ ‫و‬ ‫تصوير‬ ‫پردازش‬ ‫هاي‬.
  • 8. ‫صفحه‬7 ‫ويژگي‬‫پردازندههاي‬ ‫هاي‬‫گرافیکي‬‫مدرن‬ ‫پردازنده‬‫داده‬ ‫از‬ ‫زيادي‬ ‫بسیار‬ ‫حجم‬ ‫که‬ ‫است‬ ‫متعددي‬ ‫محاسباتي‬ ‫واحدهاي‬ ‫داراي‬ ‫گرافیكي‬‫کوتاه‬ ‫در‬ ‫ها‬‫طور‬ ‫به‬ ‫زمان‬ ‫ترين‬ ‫پ‬ ‫موازي‬‫ـ‬‫مي‬ ‫ردازش‬‫ط‬ .‫کند‬‫ـ‬‫پن‬ ‫ي‬‫ـ‬‫ج‬‫س‬‫ـ‬‫گذشت‬ ‫ال‬‫ـ‬‫استقب‬ ‫ه‬‫ـ‬‫مشت‬ ‫ال‬‫ـ‬‫بازي‬ ‫اقان‬‫کارت‬ ‫از‬ ‫کامپیوتري‬ ‫هاي‬‫گرافیك‬‫و‬ ‫مدرن‬ ‫هاي‬ ‫قدتم‬‫ند‬‫پردازنده‬ ‫تا‬ ‫شده‬ ‫موجب‬ ،‫گرافی‬‫ـ‬‫ه‬ ‫كي‬‫ـ‬‫ع‬ ‫به‬ ‫ا‬‫ـ‬‫ن‬‫ـ‬‫هس‬ ‫وان‬‫ـ‬‫ت‬‫ـ‬‫ه‬‫اص‬ ‫ي‬‫ـ‬‫پ‬ ‫لي‬‫ـ‬‫گ‬ ‫ردازش‬‫ـ‬‫راف‬‫ـ‬‫کامپیوتر‬ ‫در‬ ‫یكي‬‫سرعت‬ ‫به‬ ‫ها‬ ‫ت‬‫ـ‬‫چ‬ .‫يابند‬ ‫وسعه‬‫ـ‬‫ه‬‫ـ‬‫ن‬ ‫ار‬‫ـ‬‫ك‬‫ـ‬‫اس‬ ‫ته‬‫ـ‬‫اس‬‫ـ‬‫پ‬ ‫با‬ ‫رابطه‬ ‫در‬ ‫ي‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گراف‬‫ـ‬‫م‬ ‫یكیهاي‬‫ـ‬‫وج‬ ‫درن‬‫ـ‬‫ق‬ ‫که‬ ‫دارد‬ ‫ود‬‫ـ‬‫ابلیت‬‫ه‬‫ـ‬‫آن‬ ‫اي‬‫ـ‬‫ه‬‫ـ‬‫ب‬ ‫را‬ ‫ا‬‫ـ‬‫ه‬ ‫خ‬‫ـ‬‫مي‬ ‫ترسیم‬ ‫وبي‬‫کند‬. ،‫اول‬‫پردازنده‬‫هاي‬‫پردازنده‬ ،‫خود‬ ‫موازي‬ ‫معماري‬ ‫لطف‬ ‫به‬ ‫گرافیكي‬‫هستند‬ ‫سريعي‬ ‫بسیار‬ ‫هاي‬. ‫هستند‬ ‫ارزان‬ ،‫قیمت‬ ‫به‬ ‫کارايي‬ ‫مالك‬ ‫به‬ ‫توجه‬ ‫با‬ ،‫دوم‬. ‫پردازنده‬ ‫به‬ ‫نسبت‬ ‫کمتري‬ ‫بسیار‬ ‫مصرفي‬ ‫توان‬ ‫آنها‬ ،‫وات‬ ‫به‬ ‫کارايي‬ ‫مالك‬ ‫به‬ ‫توجه‬ ‫با‬ ،‫سوم‬‫تعجب‬ ‫شايد‬ .‫دارند‬ ‫ها‬ ‫مرکزي‬ ‫باشی‬ ‫کرده‬‫ـ‬‫سو‬ ‫اين‬ ‫و‬ ‫د‬‫پردازنده‬ ‫اگر‬ ‫که‬ ‫باشد‬ ‫شده‬ ‫ايجاد‬ ‫شما‬ ‫ذهن‬ ‫در‬ ‫ال‬‫ارزان‬ ،‫سريعتر‬ ‫ها‬ ‫گرافیكي‬‫از‬ ‫تر‬ ‫مصرف‬ ‫کم‬ ‫و‬ ‫تر‬ ‫پردازنده‬‫مرکزيه‬‫ـ‬‫برنامه‬ ‫تمامي‬ ‫آنها‬ ‫از‬ ‫يكي‬ ‫کمك‬ ‫به‬ ‫کامپیوتر‬ ‫چرا‬ ‫هستند‬ ‫ا‬‫نمي‬ ‫اجرا‬ ‫را‬ ‫خود‬ ‫هاي‬‫کند‬‫!؟‬ ‫محدوديت‬ ‫که‬ ‫است‬ ‫نهفته‬ ‫نكته‬ ‫چهارمین‬ ‫در‬ ‫سوال‬ ‫اين‬ ‫پاسخ‬‫پردازنده‬ ‫هاي‬‫گرافیكي‬‫اختصاصي‬ ‫پردازنده‬ ‫يك‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫مي‬ ‫بیان‬‫کند‬. ‫پردازنده‬‫هاي‬‫گرافی‬‫ـ‬‫ك‬‫ـ‬‫برنامه‬ ‫سريع‬ ‫پردازش‬ ‫به‬ ‫قادر‬ ‫تنها‬ ‫ي‬‫بازي‬ ‫يك‬ ‫همانند‬ ‫که‬ ‫هستند‬ ‫هايي‬‫پیچیده‬ ‫محاسبات‬ ،‫کامپیوتري‬ ‫سن‬ ‫و‬‫ـ‬‫گی‬‫ـ‬‫نم‬ ‫شما‬ ‫بنابراين‬ .‫دارند‬ ‫همزماني‬ ‫ن‬‫ـ‬‫ي‬‫برنامه‬ ‫توانید‬Word‫مجموعه‬Office‫پردازنده‬ ‫يك‬ ‫کمك‬ ‫به‬ ‫را‬‫گرافیكي‬ ‫برنامه‬ ‫گونه‬ ‫اين‬ ‫که‬ ‫چرا‬ !‫ببريد‬ ‫لذت‬ ‫آن‬ ‫عملكرد‬ ‫افزايش‬ ‫از‬ ‫و‬ ‫کرده‬ ‫اجرا‬‫دستگاه‬ ‫سوي‬ ‫از‬ ‫بیشتر‬ ‫ها‬‫خروجي‬ ‫و‬ ‫ورودي‬ ‫هاي‬ ‫شده‬ ‫محدود‬‫برنامه‬ ‫کلي‬ ‫طور‬ ‫به‬ ،‫پردازنده‬ ‫سوي‬ ‫از‬ ‫تا‬ ‫اند‬‫آنها‬ ‫در‬ ‫خروجي‬ ‫و‬ ‫ورودي‬ ‫نرخ‬ ‫به‬ ‫نسبت‬ ‫محاسبات‬ ‫نرخ‬ ‫که‬ ‫هايي‬ ‫ب‬‫ـ‬‫س‬‫ـ‬‫ی‬‫ـ‬‫ب‬ ‫ار‬‫ـ‬‫ب‬ ‫زرگ‬‫ـ‬‫چ‬ ‫داراي‬ ‫و‬ ‫وده‬‫ـ‬‫گ‬‫ـ‬‫ال‬‫ـ‬‫م‬ ‫ي‬‫ـ‬‫ح‬‫ـ‬‫اس‬‫ـ‬‫ب‬‫ـ‬‫ات‬‫ـ‬‫ي‬(Arithmetic Intensity)‫ب‬‫ـ‬‫االي‬‫ـ‬‫ب‬ ‫ي‬‫ـ‬‫اش‬‫ـ‬‫ن‬‫ـ‬‫ب‬ ‫د‬‫ـ‬‫توسط‬ ‫خوبي‬ ‫ه‬ ‫پ‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ـ‬‫پ‬ ‫رافیكي‬‫ـ‬‫ردازش‬‫ش‬‫ـ‬‫اف‬ ‫و‬ ‫ده‬‫ـ‬‫ع‬ ‫زايش‬‫ـ‬‫م‬‫ـ‬‫سازي‬ ‫پیاده‬ ‫به‬ ‫نسبت‬ ‫محسوسي‬ ‫لكرد‬‫پردازنده‬ ‫پايه‬ ‫بر‬‫خواهند‬ ‫مرکزي‬ ‫داشت‬.
  • 9. ‫صفحه‬0 ‫اکث‬‫ـ‬‫ب‬ ‫ر‬‫ـ‬‫رنامه‬‫عن‬ ‫به‬ ،‫هستند‬ ‫دسته‬ ‫این‬ ‫از‬ ‫علمی‬ ‫های‬‫ـ‬‫ح‬ ‫برنامه‬ ‫مثال‬ ‫وان‬‫ـ‬‫دست‬ ‫ل‬‫ـ‬‫مع‬ ‫گاه‬‫ـ‬‫خط‬ ‫ادالت‬‫ـ‬‫برن‬ ،‫ی‬‫ـ‬‫امه‬‫چند‬ ‫که‬ ‫است‬ ‫ای‬ ‫مع‬‫ـ‬‫س‬ ‫ادله‬‫ـ‬‫دریاف‬ ‫ورودی‬ ‫از‬ ‫اده‬‫ـ‬‫ساعت‬ ‫است‬ ‫ممکن‬ ‫که‬ ‫پیچیده‬ ‫محاسبات‬ ‫سری‬ ‫یك‬ ‫اعمال‬ ‫از‬ ‫بعد‬ ‫و‬ ‫کرده‬ ‫ت‬،‫ببرد‬ ‫زمان‬ ‫ها‬ ‫چن‬‫ـ‬‫ج‬ ‫د‬‫ـ‬‫می‬ ‫ارسال‬ ‫خروجی‬ ‫به‬ ‫واب‬‫کند‬.‫برنامه‬ ‫دسته‬ ‫این‬‫سنگین‬ ‫محاسبات‬ ،‫آنها‬ ‫ارتباطات‬ ‫نرخ‬ ‫بودن‬ ‫کم‬ ‫بر‬ ‫عالوه‬ ‫که‬ ‫ها‬‫ی‬ ‫پردازنده‬ ‫توسط‬ ،‫دارند‬ ‫تکراری‬ ‫جنبه‬ ‫آنها‬ ‫محاسبات‬ ‫اغلب‬ ‫و‬ ‫داشته‬‫می‬ ‫پردازش‬ ‫خوبی‬ ‫به‬ ‫گرافیکی‬‫شوند‬. ‫توانايي‬ ‫مقايسه‬‫پردازنده‬ ‫هاي‬‫پردازنده‬ ‫با‬ ‫گرافيكي‬‫مركزي‬ ‫شرکت‬AMD‫ک‬‫ـ‬‫اخی‬ ‫ه‬‫ـ‬‫ش‬ ‫را‬‫ـ‬‫رکت‬ATI‫خ‬ ‫را‬‫ـ‬‫ریده‬‫ت‬ ،‫است‬‫ـ‬‫پردازنده‬ ‫خام‬ ‫پردازشی‬ ‫وان‬‫پردازنده‬ ‫با‬ ‫را‬ ‫گرافیکی‬ ‫های‬‫های‬ ‫م‬‫ـ‬‫رک‬‫مع‬ ‫زی‬‫ـ‬‫خ‬ ‫اصر‬‫ـ‬‫سال‬ ‫طی‬ ‫ود‬‫ب‬ ، ‫است‬ ‫کرده‬ ‫مقایسه‬ ‫اخیر‬ ‫های‬‫ـ‬‫اس‬ ‫ر‬‫ـ‬‫نت‬ ‫اس‬‫ـ‬‫ای‬‫ـ‬‫ای‬ ‫ج‬‫ـ‬‫(شکل‬ ‫تحقیق‬ ‫ن‬1‫ت‬ )‫ـ‬‫پ‬ ‫وان‬‫ـ‬‫ردازش‬‫ـ‬‫ی‬ ‫پ‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫ه‬‫ـ‬‫گ‬ ‫ای‬‫ـ‬‫پردازنده‬ ‫به‬ ‫نسبت‬ ‫زیادی‬ ‫رشد‬ ‫رافیکی‬‫است‬ ‫داشته‬ ‫اخیر‬ ‫سال‬ ‫چندین‬ ‫طی‬ ‫مرکزی‬ ‫های‬. ‫ش‬ ‫در‬‫ـ‬‫کل‬1‫ک‬‫ـ‬‫پردازنده‬ ‫ارایی‬‫ه‬‫ـ‬‫گ‬ ‫ای‬‫ـ‬‫رافی‬‫ـ‬‫ک‬‫ـ‬‫ی‬ATI‫مق‬ ‫در‬‫ـ‬‫ای‬‫ـ‬‫س‬‫ـ‬‫پ‬ ‫با‬ ‫ه‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫م‬‫ـ‬‫رک‬‫ـ‬‫ه‬ ‫زی‬‫ـ‬‫ای‬AMD‫اب‬ ‫از‬‫ـ‬‫ت‬‫ـ‬‫ت‬ ‫دای‬‫ـ‬‫ول‬‫ـ‬‫د‬ ‫پ‬‫ـ‬‫ردازنده‬‫ن‬ ‫گرافیکیها‬‫ـ‬‫ش‬‫ـ‬‫واحد‬ ‫با‬ ‫خام‬ ‫پردازشی‬ ‫توان‬ ،‫شده‬ ‫داده‬ ‫ان‬Gigaflops‫مشاهده‬ ‫که‬ ‫همانطور‬ ،‫است‬ ‫شده‬ ‫سنجیده‬ ‫می‬‫پ‬ ‫توان‬ ‫کنید‬‫ـ‬‫ردازش‬‫ـ‬‫خ‬ ‫ی‬‫ـ‬‫پ‬ ‫ام‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گرافیکی‬‫سریع‬ ‫از‬ ‫بیشتر‬ ‫بسیار‬ ‫ها‬‫پردازنده‬ ‫ترین‬‫بوده‬ ‫ها‬ ‫مرکزی‬‫فاصله‬ ‫رفته‬ ‫رفته‬ ‫و‬ ‫می‬ ‫بیشتر‬ ‫دو‬ ‫این‬ ‫میان‬‫شود‬‫ای‬ ‫با‬ .‫ـ‬‫ف‬ ‫ن‬‫ـ‬‫می‬ ‫رض‬‫ت‬‫ـ‬‫ت‬ ‫وان‬‫ـ‬‫پ‬ ‫وان‬‫ـ‬‫فوق‬ ‫خام‬ ‫ردازشی‬‫العاده‬‫پا‬ ‫و‬ ‫دست‬ ‫دالر‬ ‫هزار‬ ‫از‬ ‫کمتر‬ ‫با‬ ‫را‬ ‫ای‬ ‫سال‬ ‫که‬ ‫حالی‬ ‫در‬ ‫کرد‬‫ک‬ ‫اجاره‬ ،‫پیش‬ ‫ها‬‫ـ‬‫یك‬ ‫ردن‬Gigaflops‫سوپرکامپیوتر‬ ‫در‬ ‫پردازشی‬ ‫توان‬Boewulf‫ن‬‫ـ‬‫به‬ ‫زدیك‬ 11‫داشت‬ ‫هزینه‬ ‫دالر‬ ‫هزار‬. ‫ب‬‫پردازنده‬ ‫کاغذ‬ ‫روی‬ ‫بر‬ ‫اینکه‬ ‫ا‬‫خارق‬ ‫پردازشی‬ ‫توان‬ ‫گرافیکیها‬‫العاده‬‫دارد‬ ‫وجود‬ ‫متعددی‬ ‫عوامل‬ ‫واقعیت‬ ‫در‬ ‫اما‬ ،‫دارند‬ ‫ای‬ ‫عمل‬ ‫که‬‫ـ‬‫کرد‬‫نه‬‫ـ‬‫می‬ ‫محدود‬ ‫را‬ ‫آنها‬ ‫ایی‬‫کند‬‫همی‬ ‫به‬ .‫ـ‬‫خ‬ ‫ن‬‫ـ‬،‫مقایسه‬ ‫اطر‬‫معیار‬ ‫اساس‬ ‫بر‬ ‫تنها‬Gigaflops‫گمراه‬ ‫حدودی‬ ‫تا‬ ‫است‬ ‫کننده‬‫پردازنده‬ ‫عمل‬ ‫در‬ ‫اما‬ ،‫سریع‬ ‫چقدر‬ ‫ها‬ ‫گرافیکی‬‫پردازنده‬ ‫از‬ ‫تر‬‫هستند؟‬ ‫ها‬ ‫مرکزی‬ ‫شکل‬1-‫پردازنده‬ ‫خام‬ ‫پردازشی‬ ‫توان‬‫گرافیکی‬ ‫پردازنده‬ ‫با‬ ‫مقایسه‬ ‫در‬‫مرکزی‬
  • 10. ‫صفحه‬19 ‫تحقیقاتی‬ ‫تیم‬Gamma‫گرافیکی‬ ‫پردازنده‬ ‫آزمایشگاهی‬ ‫محیط‬ ‫یك‬ ‫در‬ ‫کارولینا‬ ‫دانشگاه‬ ‫به‬ ‫وابسته‬Geforce 7900 GTX‫ب‬ ‫را‬‫ـ‬‫ق‬ ‫پردازنده‬ ‫دو‬ ‫ا‬‫ـ‬‫در‬‫تمن‬‫ـ‬‫د‬Xeon 3.6GHz‫و‬Opteron 280‫مق‬‫ـ‬‫ک‬ ‫ایسه‬‫ـ‬‫رده‬‫ان‬‫ـ‬‫د‬‫اعض‬ .‫ـ‬‫ای‬ ‫ای‬‫ـ‬‫تی‬ ‫ن‬‫ـ‬‫از‬ ‫که‬ ‫م‬ ‫پی‬‫ـ‬‫شت‬‫ـ‬‫ازان‬GPGPU‫شم‬ ‫به‬‫ـ‬‫می‬ ‫ار‬‫روند‬‫برنامه‬ ‫سه‬ ‫در‬ ،«‫سازی‬ ‫مرتب‬»،«‫یا‬ ‫سریع‬ ‫فوریه‬ ‫تبدیل‬FFT»‫و‬«‫ماتریسی‬ ‫ضرب‬» ‫نتیج‬‫ـ‬‫آزم‬ ‫ه‬‫ـ‬‫ایش‬‫ـ‬‫م‬ ‫را‬ ‫خود‬ ‫ات‬‫ـ‬‫نمودند‬ ‫نتشر‬‫ای‬ ،‫ـ‬‫نت‬ ‫ن‬‫ـ‬‫ای‬‫ـ‬‫ن‬ ‫ج‬‫ـ‬‫ش‬‫ـ‬‫م‬ ‫ان‬‫ـ‬‫ی‬‫ک‬ ‫دهد‬‫ـ‬‫ه‬‫نسخ‬‫ـ‬‫به‬ ‫ه‬‫ـ‬‫ین‬‫ـ‬‫ش‬ ‫ه‬‫ــ‬‫ای‬ ‫ده‬‫ـ‬‫س‬ ‫ن‬‫ـ‬‫برن‬ ‫ه‬‫ـ‬‫امه‬‫ب‬ ‫ها‬‫ـ‬‫رای‬ ‫پ‬‫ـ‬‫ردازنده‬‫گرافیکی‬1‫الی‬5‫نسخه‬ ‫از‬ ‫برابر‬‫پردازنده‬ ‫از‬ ‫که‬ ‫آنها‬ ‫استاندارد‬ ‫های‬‫خود‬ ‫پیچیده‬ ‫محاسبات‬ ‫پردازش‬ ‫برای‬ ‫مرکزی‬ ‫می‬ ‫استفاده‬‫سریع‬ ‫کنند‬‫است‬ ‫تر‬. ‫پردازنده‬‫پردازنده‬ ‫از‬ ‫گرافيكي‬‫سريع‬ ‫مركزي‬‫است‬ ‫تر‬ ‫ای‬ ‫پاسخ‬‫ـ‬‫یك‬ ‫در‬ ‫سوال‬ ‫ن‬‫خ‬ ‫کلمه‬‫ـ‬‫م‬ ‫الصه‬‫ـ‬‫ی‬:‫شود‬«‫موازی‬‫سازی‬.»‫برنامه‬ ‫مدل‬‫برنامه‬ ‫نویسی‬‫پردازنده‬ ‫برای‬ ‫که‬ ‫هایی‬‫مرکزی‬ ‫می‬ ‫نوشته‬‫ی‬ ‫اصل‬ ‫در‬ ‫شوند‬‫ـ‬‫کد‬ ‫شبه‬ ‫که‬ ‫معنی‬ ‫این‬ ‫به‬ ‫است‬ ‫سریال‬ ‫مدل‬ ‫ك‬‫به‬ ‫باال‬ ‫از‬ ‫ترتیب‬ ‫به‬ ‫برنامه‬ ‫یك‬ ‫دهنده‬ ‫تشکیل‬ ‫های‬ ‫پ‬‫ـ‬‫اجرا‬ ،‫ترجمه‬ ‫از‬ ‫پس‬ ‫و‬ ‫شده‬ ‫خوانده‬ ‫ایین‬‫از‬ ‫ندرت‬ ‫به‬ ‫آن‬ ‫در‬ ‫و‬ ‫شده‬«‫موازی‬‫سازی‬»‫پ‬ ‫در‬‫ـ‬‫داده‬ ‫ردازش‬‫ه‬‫ـ‬‫می‬ ‫استفاده‬ ‫ا‬‫شود‬. ‫م‬‫ـ‬‫عم‬‫ـ‬‫برای‬ ‫شده‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ‫اری‬‫پردازنده‬‫پایه‬ ‫مدل‬ ‫این‬ ‫مبنای‬ ‫بر‬ ‫نیز‬ ‫مرکزی‬‫قابلیت‬ ‫و‬ ‫است‬ ‫شده‬ ‫ریزی‬‫برای‬ ‫چندانی‬ ‫های‬ ‫اج‬‫ـ‬‫چ‬ ‫رای‬‫ـ‬‫ن‬‫ـ‬‫دی‬‫ـ‬‫دست‬ ‫ن‬‫ـ‬‫ورال‬‫ـ‬‫ع‬‫ـ‬‫م‬‫ـ‬‫مش‬ ‫ل‬‫ـ‬‫اب‬‫ـ‬‫ب‬ ‫را‬ ‫ه‬‫ـ‬‫ص‬ ‫ه‬‫ـ‬‫ه‬ ‫ورت‬‫ـ‬‫م‬‫ـ‬‫ن‬ ‫زمان‬‫ـ‬‫دارد‬‫ح‬ ‫در‬ .‫ـ‬‫ک‬ ‫الی‬‫ـ‬‫ب‬ ‫مدل‬ ‫ه‬‫ـ‬‫رنامه‬‫ن‬‫ـ‬‫ویس‬‫ـ‬‫برنامه‬ ‫ی‬‫های‬ ‫پ‬‫ـ‬‫ردازنده‬‫گ‬‫ـ‬‫که‬ ‫رافیکی‬Stream‫ن‬‫ـ‬‫دارد‬ ‫ام‬‫اص‬ ‫در‬ ،‫ـ‬‫ی‬ ‫ل‬‫ـ‬‫م‬ ‫ك‬‫ـ‬‫م‬ ‫دل‬‫ـ‬‫اس‬ ‫وازی‬‫ـ‬‫ق‬ ‫و‬ ‫ت‬‫ـ‬‫ابلی‬‫ـ‬‫ب‬ ‫ت‬‫ـ‬‫ه‬‫ـ‬‫تکنیك‬ ‫از‬ ‫گیری‬ ‫ره‬‫های‬ «‫موازی‬‫سازی‬»‫پردازنده‬ ‫هرچند‬ ،‫است‬ ‫شده‬ ‫گنجانده‬ ‫آن‬ ‫در‬‫قابلیت‬ ‫با‬ ‫جدید‬ ‫مرکزیهای‬‫نظیر‬ ‫هایی‬HyperThreading، SSE،3D Now‫بکارگی‬ ‫و‬‫ـ‬‫ری‬‫مع‬‫ـ‬‫ماری‬‫ه‬‫ـ‬‫چن‬ ‫ای‬‫ـ‬‫د‬‫هسته‬‫نوید‬ ‫ای‬«‫موازی‬‫سازی‬»‫می‬ ‫را‬ ‫بیشتر‬‫موازی‬ ‫نرخ‬ ‫اما‬ ،‫دهند‬‫سازی‬ ‫پردازنده‬ ‫یك‬ ‫از‬ ‫کمتر‬ ‫بسیار‬ ‫آنها‬‫با‬ ‫گرافیکی‬111‫است‬ ‫پردازشی‬ ‫واحد‬. ‫ب‬‫ـ‬‫خ‬ ‫ر‬‫ـ‬‫پ‬ ‫الف‬‫ـ‬‫ردازنده‬‫گرافی‬‫ـ‬‫پردازنده‬ ‫برای‬ ‫شده‬ ‫گرفته‬ ‫نظر‬ ‫در‬ ‫حافظه‬ ‫زیرسیستم‬ ،‫کی‬‫به‬ ‫نیاز‬ ‫که‬ ‫کاربردهایی‬ ‫برای‬ ‫مرکزیها‬ ‫دست‬‫ـ‬‫ح‬ ‫به‬ ‫رسی‬‫ـ‬‫ت‬ ‫با‬ ‫افظه‬‫ـ‬‫دارن‬ ‫کم‬ ‫اخیر‬‫ـ‬‫اس‬ ‫شده‬ ‫بهینه‬ ‫د‬‫ـ‬‫برنامه‬ ‫برای‬ ‫نه‬ ‫ت‬‫با‬ ،‫دارند‬ ‫نیاز‬ ‫وسیعی‬ ‫حافظه‬ ‫باند‬ ‫پهنای‬ ‫به‬ ‫که‬ ‫هایی‬ ‫پردازنده‬ ‫سریال‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫به‬ ‫توجه‬‫بخش‬ ،‫مرکزی‬‫مرجع‬ ‫باید‬ ‫برنامه‬ ‫یك‬ ‫های‬‫افتادن‬ ‫جریان‬ ‫به‬ ‫برای‬ ‫را‬ ‫حافظه‬ ‫های‬ ‫ق‬‫ـ‬‫سم‬‫ـ‬‫ب‬ ‫ت‬‫ـ‬‫ب‬ ‫عدی‬‫ـ‬‫رنامه‬‫ب‬ ‫سرعت‬ ‫به‬ ،‫ـ‬‫رگ‬‫ـ‬‫در‬ ‫دلیل‬ ‫همین‬ ‫به‬ ،‫است‬ ‫حافظه‬ ‫به‬ ‫دسترسی‬ ‫در‬ ‫کم‬ ‫تاخیر‬ ‫امر‬ ‫این‬ ‫الزمه‬ ‫که‬ ‫ردانند‬ ‫حافظه‬ ‫مراتب‬ ‫سلسله‬‫پردازنده‬ ‫ی‬‫برساند‬ ‫حداقل‬ ‫به‬ ‫را‬ ‫تاخیر‬ ‫این‬ ‫تا‬ ‫شده‬ ‫گنجانده‬ ‫نهان‬ ‫حافظه‬ ‫الیه‬ ‫چندین‬ ‫مرکزی‬.
  • 11. ‫صفحه‬11 ‫مق‬ ‫در‬‫ـ‬‫م‬ ‫در‬ ،‫ابل‬‫ـ‬‫ب‬ ‫دل‬‫ـ‬‫رنامه‬‫ن‬‫ـ‬‫ویسی‬Stream‫برن‬ ‫که‬‫ـ‬‫امه‬‫پردازنده‬ ‫های‬‫گ‬‫ـ‬‫رافی‬‫ـ‬‫کی‬‫چ‬ ‫در‬‫ـ‬‫هارچ‬‫ـ‬‫وب‬‫ن‬ ‫آن‬‫ـ‬‫م‬ ‫وشته‬‫ـ‬‫ی‬‫شوند‬، ‫گست‬ ‫حافظه‬ ‫به‬ ‫دسترسی‬ ‫باند‬ ‫پهنای‬‫ـ‬‫رده‬‫ت‬‫ـ‬‫اهمی‬ ‫ر‬‫ـ‬‫بیشت‬ ‫ت‬‫ـ‬،‫مدل‬ ‫این‬ ‫در‬ ‫که‬ ‫چرا‬ ،‫دارد‬ ‫حافظه‬ ‫به‬ ‫دسترسی‬ ‫تاخیر‬ ‫به‬ ‫نسبت‬ ‫ری‬ ‫برنامه‬‫پردازنده‬ ‫های‬‫اج‬ ‫موازی‬ ‫صورت‬ ‫به‬ ‫گرافیکی‬‫ـ‬‫ش‬ ‫را‬‫ـ‬‫واب‬ ‫و‬ ‫ده‬‫ـ‬‫ست‬‫ـ‬‫چن‬ ‫گی‬‫ـ‬‫می‬ ‫دانی‬‫ـ‬‫ان‬‫ن‬ ‫وجود‬ ‫آنها‬‫ـ‬‫دلی‬ ‫همین‬ ‫به‬ .‫دارد‬‫ـ‬‫ل‬ ‫ب‬‫ـ‬‫رنامه‬‫پهنای‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫هایی‬‫حافظه‬ ‫باند‬‫پردازنده‬ ‫با‬ ،‫دارند‬ ‫زیادی‬‫گرافیکی‬‫سریع‬‫پردازنده‬ ‫از‬‫مرکزی‬‫می‬ ‫اجرا‬‫شوند‬. ‫پ‬‫ـ‬‫ردازنده‬‫مرکزی‬‫می‬ ‫را‬ ‫پردازشی‬ ‫و‬ ‫محاسباتی‬ ‫عملیات‬ ‫نوع‬ ‫هر‬ ‫که‬ ‫است‬ ‫عمومی‬ ‫کامال‬ ‫پردازنده‬ ‫یك‬‫داد‬ ‫انجام‬ ‫آن‬ ‫با‬ ‫توان‬ ‫ام‬‫ـ‬‫پردازنده‬ ‫ا‬‫گرافی‬‫ـ‬‫ی‬ ‫کی‬‫ـ‬‫پردازن‬ ‫ك‬‫در‬ ‫دلیل‬ ‫همین‬ ‫به‬ ،‫شده‬ ‫طراحی‬ ‫گرافیکی‬ ‫پردازش‬ ‫ویژه‬ ‫که‬ ‫است‬ ‫اختصاصی‬ ‫کامال‬ ‫ده‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬Stream‫م‬ ‫از‬ ‫دنیایی‬‫ـ‬‫حدودی‬‫ـ‬‫ت‬‫وج‬ ‫ها‬‫ـ‬‫مق‬ ‫در‬ ‫و‬ ‫دارد‬ ‫ود‬‫ـ‬‫ترفند‬ ‫از‬ ‫دیگری‬ ‫دنیایی‬ ‫آن‬ ‫ابل‬‫شده‬ ‫ایجاد‬ ‫ها‬ ‫برن‬ ‫به‬ ‫که‬‫ـ‬‫نوی‬ ‫امه‬‫ـ‬‫ام‬ ‫س‬‫ـ‬‫اج‬ ‫کان‬‫ـ‬‫غیرگرافی‬ ‫برنامه‬ ‫یك‬ ‫رای‬‫ـ‬‫کم‬ ‫به‬ ‫کی‬‫ـ‬‫پ‬ ‫ك‬‫ـ‬‫ردازنده‬‫گر‬‫می‬ ‫را‬ ‫افیکی‬‫محدودیت‬ ‫این‬ .‫دهد‬‫ها‬ ‫موج‬‫ـ‬‫تا‬ ‫اند‬ ‫شده‬ ‫ب‬GPGPU‫شاخه‬ ‫در‬ ‫تنها‬‫خارج‬ ‫عوامل‬ ‫این‬ ‫تك‬ ‫تك‬ ‫بررسی‬ ‫که‬ ‫کند‬ ‫پیدا‬ ‫کاربرد‬ ‫علوم‬ ‫از‬ ‫خاصی‬ ‫های‬ ‫است‬ ‫مقاله‬ ‫این‬ ‫حوصله‬ ‫از‬. ‫ابزار‬‫برنامه‬ ‫هاي‬‫نويسي‬GPGPU ‫ب‬ ‫زبان‬‫ـ‬‫رنامه‬‫ن‬‫ـ‬‫ویسی‬C++‫هم‬‫ـ‬‫چن‬‫ـ‬‫تم‬ ‫بر‬ ‫ان‬‫ـ‬‫ابزار‬ ‫امی‬‫نویسی‬ ‫برنامه‬ ‫های‬‫و‬ ‫گرافیکی‬GPGPU‫حکم‬‫می‬ ‫فرمایی‬‫کلیه‬ ‫و‬ ‫کند‬ ‫اب‬‫ـ‬‫زار‬‫ب‬ ‫های‬‫ـ‬‫رنامه‬‫ای‬ ‫نویسی‬‫ـ‬‫مشتق‬ ‫جمله‬ ‫از‬ ‫حوزه‬ ‫ن‬‫می‬ ‫شمار‬ ‫به‬ ‫آن‬ ‫های‬‫ن‬ ‫به‬ ‫و‬ ‫روند‬‫ـ‬‫گ‬ ‫وعی‬‫ـ‬‫با‬ ‫را‬ ‫آن‬ ‫اصلی‬ ‫دستورات‬ ‫و‬ ‫رامر‬ ‫برنامه‬ ‫برای‬ ‫کلی‬ ‫طور‬ ‫به‬ .‫دارند‬ ‫همراه‬ ‫به‬ ‫خود‬‫نویسی‬GPGPU‫می‬ ‫اشاره‬ ‫آنها‬ ‫به‬ ‫ترتیب‬ ‫به‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫روش‬ ‫سه‬‫ک‬‫نیم‬: 0-API‫گرافیکی‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬ ‫و‬ ‫ها‬ ‫ای‬‫ـ‬‫ابت‬ ‫در‬ ‫که‬ ‫روش‬ ‫ن‬‫ـ‬‫بسی‬ ‫آن‬ ‫از‬ ‫دا‬‫ـ‬‫استف‬ ‫ار‬‫ـ‬‫می‬ ‫اده‬‫مش‬ ‫کامال‬ ،‫شد‬‫ـ‬‫نوی‬ ‫برنامه‬ ‫ابه‬‫ـ‬‫س‬‫ـ‬‫ای‬ ‫به‬ ،‫است‬ ‫گرافیکی‬ ‫ی‬‫ـ‬‫م‬ ‫ن‬‫ـ‬‫ع‬‫ـ‬‫ک‬ ‫نا‬‫ـ‬‫ه‬ ‫برن‬‫ـ‬‫ن‬ ‫امه‬‫ـ‬‫وی‬‫ـ‬‫ف‬ ‫با‬ ‫س‬‫ـ‬‫آش‬ ‫رض‬‫ـ‬‫از‬ ‫یکی‬ ‫به‬ ‫بودن‬ ‫نا‬API‫مانند‬ ‫گرافیکی‬ ‫های‬DirectX‫یا‬OpenGL‫گرفتن‬ ‫نظر‬ ‫در‬ ‫و‬ ‫تم‬‫ـ‬‫م‬ ‫امی‬‫ـ‬‫حدودی‬‫ـ‬‫ت‬‫م‬ ‫های‬‫ـ‬‫م‬ ‫در‬ ‫وجود‬‫ـ‬‫ب‬ ‫دل‬‫ـ‬‫رن‬‫ـ‬‫ن‬ ‫امه‬‫ـ‬‫وی‬‫ـ‬‫س‬‫ـ‬‫ی‬Stream‫گرافیکی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫غیرگرافیکی‬ ‫برنامه‬ ، ‫شبیه‬‫می‬ ‫دنبال‬ ‫را‬ ‫آن‬ ‫سازی‬ ‫پیاده‬ ‫مراحل‬ ‫و‬ ‫کرده‬ ‫سازی‬‫برنامه‬ ‫این‬ ‫بر‬ ‫عالوه‬ .‫کند‬‫می‬ ‫نویس‬‫بودن‬ ‫آشنا‬ ‫صورت‬ ‫در‬ ‫تواند‬ ‫ب‬‫ـ‬‫ب‬ ‫زبان‬ ‫ه‬‫ـ‬‫نویسی‬ ‫رنامه‬Cg‫ک‬‫ـ‬‫ت‬ ‫ه‬‫ـ‬‫ش‬ ‫وسط‬‫ـ‬‫رکت‬NVIDIA‫ت‬‫ـ‬‫ش‬ ‫داده‬ ‫وسعه‬‫ـ‬‫اس‬ ‫ده‬‫ـ‬‫در‬ ‫را‬ ‫خود‬ ‫غیرگرافیکی‬ ‫برنامه‬ ،‫ت‬ ‫دهد‬ ‫توسعه‬ ‫محیط‬ ‫این‬.
  • 12. ‫صفحه‬12 ‫ای‬ ‫الزمه‬‫ـ‬‫آشن‬ ‫روش‬ ‫ن‬‫ـ‬‫برنامه‬ ‫محیط‬ ‫با‬ ‫کامل‬ ‫ایی‬‫نویسی‬‫محدودیت‬ ‫و‬ ‫گرافیکی‬‫برنامه‬ ‫های‬‫نویسی‬GPGPU‫می‬‫به‬ ‫باشد‬ ‫همی‬‫ـ‬‫دلی‬ ‫ن‬‫ـ‬‫برن‬ ‫ل‬‫ـ‬‫امه‬‫ن‬‫ـ‬‫ب‬ ‫ویس‬‫ـ‬‫ب‬ ‫یشتر‬‫ـ‬‫پیاده‬ ‫نحوه‬ ‫روی‬ ‫بر‬ ‫اید‬‫مرتفع‬ ‫و‬ ‫سازی‬‫محدودیت‬ ‫کردن‬‫بر‬ ‫تا‬ ‫باشد‬ ‫داشته‬ ‫تمرکز‬ ‫ها‬ ‫الگوریتم‬ ‫روی‬‫خود‬ ‫برنامه‬ ‫های‬. 1-‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬GPGPU‫ها‬ ‫کتابخانه‬ ‫و‬ ‫پیچی‬ ‫به‬ ‫توجه‬ ‫با‬‫ـ‬‫برنامه‬ ‫سازی‬ ‫پیاده‬ ،‫اول‬ ‫روش‬ ‫دگی‬‫زبان‬ ‫دلیل‬ ‫همین‬ ‫به‬ ‫است‬ ‫مشکل‬ ‫بسیار‬ ‫آن‬ ‫توسط‬ ‫بزرگ‬ ‫های‬‫های‬ ‫برن‬‫ـ‬‫نوی‬ ‫امه‬‫ـ‬‫س‬‫ـ‬‫خاص‬ ‫ی‬GPGPU‫نظر‬ ‫در‬ ‫با‬ ‫که‬ ‫اند‬ ‫شده‬ ‫ابداع‬‫محدودیت‬ ‫گرفتن‬‫برنامه‬ ‫مدل‬ ‫های‬‫نویسی‬Stream‫به‬ ‫برن‬‫ـ‬‫امه‬‫نوی‬‫ـ‬‫می‬ ‫امکان‬ ‫س‬‫دهن‬‫ـ‬‫الگوریتم‬ ‫روی‬ ‫بر‬ ‫بیشتری‬ ‫تمرکز‬ ‫تا‬ ‫د‬‫همچنی‬ ،‫باشد‬ ‫داشته‬ ‫خود‬ ‫برنامه‬ ‫های‬‫ـ‬‫ای‬ ‫ن‬‫ـ‬‫زبان‬ ‫ن‬‫ها‬ ‫برنامه‬ ‫مستقیم‬ ‫تعامل‬‫با‬ ‫نویس‬API‫برده‬ ‫بین‬ ‫از‬ ‫را‬ ‫گرافیکی‬‫برنامه‬ ‫و‬ ‫اند‬‫پ‬ ‫جهت‬ ‫آنها‬ ‫با‬ ‫آشنایی‬ ‫به‬ ‫نیازی‬ ‫نویس‬‫یاده‬‫سازی‬ ‫برن‬ ‫زبان‬ ‫دو‬ ‫کنون‬ ‫تا‬ .‫ندارد‬ ‫خود‬ ‫برنامه‬‫ـ‬‫نویسی‬ ‫امه‬GPGPU‫از‬ ‫عبارتند‬ ‫زبان‬ ‫دو‬ ‫این‬ ‫که‬ ‫شده‬ ‫معرفی‬Brook‫و‬Sh. ‫برن‬ ‫زبان‬‫ـ‬‫ن‬ ‫امه‬‫ـ‬‫ویسی‬Brook‫ت‬‫ـ‬‫تی‬ ‫وسط‬‫ـ‬‫ت‬ ‫استنفورد‬ ‫دانشگاه‬ ‫م‬‫ـ‬‫کاربردی‬ ‫جمله‬ ‫از‬ ‫زبان‬ ‫این‬ ،‫یافته‬ ‫وسعه‬‫زبان‬ ‫ترین‬‫های‬ ‫برن‬‫ـ‬‫ام‬‫ـ‬‫ن‬ ‫ه‬‫ـ‬‫وی‬‫ــ‬‫س‬‫ـ‬‫ی‬GPGPU‫ب‬‫ـ‬‫ش‬ ‫ه‬‫ـ‬‫م‬‫ـ‬‫ار‬‫م‬‫ـ‬‫ی‬‫ن‬ ‫در‬ ‫که‬ ‫رود‬‫ـ‬‫س‬‫ـ‬‫خ‬‫ـ‬‫ب‬ ‫ه‬‫ـ‬‫ه‬‫ـ‬‫ین‬‫ـ‬‫ش‬ ‫ه‬‫ـ‬‫ب‬ ‫ده‬‫ـ‬‫رن‬‫ـ‬‫ام‬‫ـ‬‫ه‬Folding@Home‫ب‬‫ـ‬‫رای‬ ‫پ‬‫ـ‬‫ردازنده‬‫برنامه‬ ‫زبان‬ .‫است‬ ‫شده‬ ‫گرفته‬ ‫بهره‬ ‫آن‬ ‫از‬ ‫نیز‬ ‫گرافیکیها‬‫نویسی‬Sh‫یافته‬ ‫توسعه‬ ‫واترلو‬ ‫دانشگاه‬ ‫تیم‬ ‫توسط‬ ‫نیز‬ ‫ت‬ ‫و‬‫ـ‬‫پروژه‬ ‫کنون‬ ‫ا‬‫کتابخانه‬ ‫این‬ ‫بر‬ ‫عالوه‬ .‫است‬ ‫شده‬ ‫اجرا‬ ‫آن‬ ‫با‬ ‫زیادی‬ ‫های‬‫متعددی‬ ‫های‬‫برنامه‬ ‫امکان‬ ‫که‬ ‫دارند‬ ‫وجود‬ ‫نویسی‬GPGPU‫پلتفورم‬ ‫در‬ ‫را‬.Net‫یا‬VC++ 6.0‫ف‬‫ـ‬‫راه‬‫ـ‬‫کرده‬ ‫م‬‫ان‬‫ـ‬‫جم‬ ‫از‬ ‫د‬‫ـ‬‫مع‬ ‫له‬‫ـ‬‫روف‬‫کت‬ ‫این‬ ‫ترین‬‫ـ‬‫اب‬‫ـ‬‫خ‬‫ـ‬‫ان‬‫ـ‬‫ه‬،‫ها‬ Accelerator‫است‬ ‫یافته‬ ‫توسعه‬ ‫مایکروسافت‬ ‫توسط‬ ‫که‬ ‫دارد‬ ‫نام‬. ‫کتابخانه‬‫پردازش‬ ‫اختصاصی‬ ‫های‬‫شده‬ ‫عرضه‬ ‫معقوله‬ ‫این‬ ‫در‬ ‫نیز‬ ‫متعددی‬ ‫تصویر‬‫به‬ ‫توان‬ ‫می‬ ‫آنها‬ ‫مهمترین‬ ‫از‬ ‫که‬ ‫اند‬ GPUCV‫و‬OpenVIDIA‫کتابخانه‬ ‫این‬ ‫کمك‬ ‫به‬ .‫کرد‬ ‫اشاره‬‫می‬ ‫ها‬‫الگوریتم‬ ‫توان‬‫و‬ ‫تصویر‬ ‫پردازش‬ ‫های‬ ‫بینایی‬‫پردازنده‬ ‫توسط‬ ‫پردازش‬ ‫جهت‬ ‫را‬ ‫ماشین‬‫داد‬ ‫توسعه‬ ‫گرافیکی‬.
  • 13. ‫صفحه‬13 1-‫تجاری‬ ‫های‬ ‫پلتفورم‬ ‫متداول‬‫برن‬ ‫روش‬ ‫ترین‬‫ـ‬‫امه‬‫نویسی‬GPGPU‫روش‬ ‫همان‬ ‫کنون‬ ‫تا‬‫چند‬ ‫طی‬ ‫اما‬ ‫است‬ ‫دوم‬‫پلتفورم‬ ‫اخیر‬ ‫ماه‬‫تجاری‬ ‫های‬ ‫ارائ‬‫ـ‬‫ش‬ ‫ه‬‫ـ‬‫ب‬ ‫نوید‬ ‫که‬ ‫ده‬‫ـ‬‫رنامه‬‫ساده‬ ‫نویسی‬‫تن‬ ‫نه‬ ‫تر‬‫ـ‬‫پردازنده‬ ‫برای‬ ‫ها‬‫ص‬ ‫به‬ ‫بلکه‬ ‫گرافیکی‬‫ـ‬‫ک‬ ‫ورت‬‫ـ‬‫پ‬ ‫برای‬ ‫لی‬‫ـ‬‫ردازنده‬‫های‬ ‫پ‬‫ـ‬‫رسرع‬‫ـ‬‫ق‬ ‫با‬ ‫ت‬‫ـ‬‫ابلی‬‫ـ‬‫م‬ ‫ت‬‫ـ‬‫وازی‬‫س‬‫ـ‬‫ن‬ ‫ازی‬‫ـ‬‫ظ‬‫ـ‬‫پ‬ ‫یر‬‫ـ‬‫ردازنده‬Cell‫می‬ ‫را‬‫دس‬ ‫این‬ ‫از‬ .‫دهند‬‫ـ‬‫پ‬ ‫دو‬ ‫ته‬‫ـ‬‫لتفورم‬PeakStream ‫و‬RapidMind‫م‬ ‫را‬‫ـ‬‫ی‬‫ن‬ ‫توان‬‫ـ‬‫ام‬‫ب‬ ،‫برد‬‫ـ‬‫رخ‬‫ـ‬‫الف‬PeakStream‫ک‬‫ـ‬‫ن‬ ‫ه‬‫ـ‬‫س‬‫ـ‬‫خ‬‫ـ‬‫ت‬ ‫ه‬‫ـ‬‫ج‬‫ـ‬‫ع‬ ‫آن‬ ‫اری‬‫ـ‬‫رض‬‫ـ‬‫ش‬ ‫ه‬‫ـ‬‫است‬ ‫ده‬، RapidMind‫می‬ ‫سر‬ ‫به‬ ‫آزمایشی‬ ‫مراحل‬ ‫در‬ ‫هنوز‬‫برد‬. ‫كاربرد‬‫پردازنده‬ ‫غيرگرافيكي‬ ‫هاي‬‫گرافيكي‬ ‫برنامه‬ ‫ساختار‬‫پردازنده‬ ‫توسط‬ ‫خوبی‬ ‫به‬ ‫که‬ ‫غیرگرافیکی‬ ‫های‬‫گرافیکی‬‫می‬ ‫پردازش‬‫ابتدای‬ ‫در‬ ‫مختصر‬ ‫صورت‬ ‫به‬ ‫شوند‬ ‫نمونه‬ ‫شد‬ ‫داده‬ ‫توضیح‬ ‫مقاله‬‫کاربرد‬ ‫این‬ ‫از‬ ‫ای‬‫از‬ ‫عبارتند‬ ‫گرفته‬ ‫صورت‬ ‫تاکنون‬ ‫که‬ ‫ها‬: ·‫برنامه‬‫برداری‬ ‫و‬ ‫ماتریسی‬ ‫ضرب‬ ‫پیچیده‬ ‫های‬ ·‫روش‬‫دیفرانسل‬ ‫معادالت‬ ‫دستگاه‬ ‫و‬ ‫خطی‬ ‫معادالت‬ ‫دستگاه‬ ‫حل‬ ‫های‬ ·‫برنامه‬‫شبیه‬ ‫های‬‫س‬ ‫سازی‬‫پروتئین‬ ‫اختار‬ ·‫برنامه‬‫نور‬ ‫شعاع‬ ‫مسیریابی‬ ‫های‬( Ray Tracing) ·‫برنامه‬‫شبیه‬ ‫های‬‫تصادم‬ ‫یا‬ ‫سیال‬ ‫جریان‬ ‫سازی‬ ‫شبیه‬ ‫مانند‬ ‫فیزیکی‬ ‫سازی‬ ·‫برنامه‬‫گراف‬ ‫تولید‬ ‫و‬ ‫پیمایش‬ ‫های‬ ·‫برنامه‬‫تصویر‬ ‫یا‬ ‫صوت‬ ‫پردازش‬ ‫های‬ ·‫برنامه‬‫ماشین‬ ‫بینایی‬ ‫های‬ ·‫برنامه‬‫های‬‫سریع‬ ‫فوریه‬ ‫تبدیل‬ ‫محاسبه‬(FFT)
  • 14. ‫صفحه‬14 ‫پردازنده‬ ‫كاربرد‬‫تصوير‬ ‫پردازش‬ ‫در‬ ‫گرافيكي‬ ‫بهره‬‫گی‬‫ـ‬‫ق‬ ‫از‬ ‫ری‬‫ـ‬‫ابلی‬‫ـ‬‫ت‬‫پ‬ ‫های‬‫ـ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ـ‬‫الگوریتم‬ ‫در‬ ‫رافیکی‬‫دست‬ ‫جهت‬ ‫تصویر‬ ‫پردازش‬ ‫و‬ ‫ماشین‬ ‫بینایی‬ ‫های‬‫سه‬ ‫به‬ ‫یابی‬ ‫ه‬‫ـ‬‫مط‬ ‫کلی‬ ‫دف‬‫ـ‬‫عملکرد‬ ‫به‬ ‫شدن‬ ‫نائل‬ ‫اول‬ ‫هدف‬ ،‫است‬ ‫شده‬ ‫رح‬Real-Time‫به‬ ‫نیاز‬ ‫بدون‬‫الگوریتم‬ ‫پیچیدگی‬ ‫کاهش‬ ‫ه‬ ،‫است‬‫ـ‬‫الگوریتم‬ ‫پردازشی‬ ‫عملیات‬ ‫از‬ ‫مرکزی‬ ‫پردازنده‬ ‫بارکاری‬ ‫کاهش‬ ‫دوم‬ ‫دف‬‫به‬ ‫آن‬ ‫اختصاص‬ ‫و‬ ‫ماشین‬ ‫بینایی‬ ‫های‬ ‫س‬‫ـ‬‫ب‬ ‫ایر‬‫ـ‬‫رن‬‫ـ‬‫امه‬‫برنامه‬ ‫محاسبات‬ ‫سرعت‬ ‫افزایش‬ ‫نیز‬ ‫سوم‬ ‫هدف‬ ‫و‬ ‫باشد‬ ‫می‬ ‫ها‬‫راه‬ ‫یك‬ ‫کمك‬ ‫به‬ ‫تصویر‬ ‫پردازش‬ ‫های‬‫به‬ ‫کار‬ ‫است‬ ‫اقتصادی‬ ‫صرفه‬. ‫الگ‬‫ـ‬‫وریت‬‫ـ‬‫م‬‫ه‬‫ـ‬‫بین‬ ‫ای‬‫ـ‬‫ای‬‫ـ‬‫م‬ ‫ی‬‫ـ‬‫اشی‬‫ـ‬‫مع‬ ‫طور‬ ‫به‬ ‫ن‬‫ـ‬‫سخت‬ ‫از‬ ‫کوس‬‫می‬ ‫استفاده‬ ‫گرافیکی‬ ‫افزار‬‫پردازنده‬ ‫که‬ ‫چرا‬ ‫کنند‬‫در‬ ‫گرافیکی‬ ‫داده‬ ‫مبنای‬ ‫بر‬ ‫بعدی‬ ‫سه‬ ‫تصویر‬ ‫ترسیم‬ ‫به‬ ‫موظف‬ ‫خود‬ ‫متداول‬ ‫کاربردهای‬‫کننده‬ ‫توصیف‬ ‫ریاضی‬ ‫آنالیزهای‬ ‫و‬ ‫عددی‬ ‫های‬ ‫تص‬ ‫آن‬‫ـ‬‫م‬ ‫ویر‬‫ـ‬‫ی‬‫ح‬ ‫در‬ ‫باشد‬‫ـ‬‫کاربرد‬ ‫در‬ ‫که‬ ‫الی‬‫بینایی‬ ‫های‬‫داده‬ ‫گرافیکی‬ ‫پردازنده‬ ‫به‬ ‫فریم‬ ‫یك‬ ‫از‬ ‫بخشی‬ ‫یا‬ ‫تصویر‬ ،‫ماشین‬ ‫می‬‫همی‬ ‫به‬ .‫شود‬ ‫استخراج‬ ‫عددی‬ ‫آنالیزهای‬ ‫آن‬ ‫از‬ ‫تا‬ ‫شود‬‫ـ‬‫خ‬ ‫ن‬‫ـ‬‫الگوریتم‬ ‫اطر‬‫به‬ ‫نسبت‬ ‫تصویر‬ ‫پردازش‬ ‫و‬ ‫ماشین‬ ‫بینایی‬ ‫های‬ ‫الگوریتم‬‫سخت‬ ‫از‬ ‫معکوس‬ ‫طور‬ ‫به‬ ، ‫کامپیوتری‬ ‫گرافیك‬ ‫های‬‫می‬ ‫استفاده‬ ‫گرافیکی‬ ‫افزار‬‫کنند‬. ‫ت‬ ‫با‬‫ـ‬‫وج‬‫ـ‬‫پشتیب‬ ‫به‬ ‫ه‬‫ـ‬‫پ‬ ‫انی‬‫ـ‬‫ردازنده‬‫ن‬ ‫استاندارد‬ ‫از‬ ‫جدید‬ ‫گرافیکی‬ ‫های‬‫ـ‬‫مای‬‫ـ‬‫اعداد‬ ‫ش‬11‫م‬ ‫بیت‬‫ـ‬‫م‬‫ـ‬‫ی‬‫ـ‬‫شن‬ ‫ز‬‫ـ‬‫اور‬IEEE 754، ‫دق‬‫ـ‬‫ج‬ ‫الزم‬ ‫ت‬‫ـ‬‫ه‬‫ـ‬‫پی‬ ‫ت‬‫ـ‬‫اده‬‫الگوریت‬ ‫سازی‬‫ـ‬‫م‬‫نمی‬ ‫عملکرد‬ ‫دقت‬ ‫نظر‬ ‫از‬ ‫لذا‬ ‫است‬ ‫گشته‬ ‫فراهم‬ ‫تصویر‬ ‫پردازش‬ ‫دقیق‬ ‫های‬‫توان‬ ‫پیاده‬ ‫با‬ ‫آن‬ ‫میان‬ ‫تفاوتی‬‫سازی‬‫متداول‬ ‫های‬‫الگوریتم‬‫پردازنده‬ ‫روی‬ ‫بر‬ ‫تصویر‬ ‫پردازش‬ ‫های‬‫کرد‬ ‫مشاهده‬ ‫مرکزی‬. ‫متداول‬ ‫مشكالت‬ ‫ع‬‫ـ‬‫مت‬ ‫وامل‬‫ـ‬‫پیاده‬ ‫هنگام‬ ‫که‬ ‫دارند‬ ‫وجود‬ ‫عددی‬‫پردازش‬ ‫الگوریتم‬ ‫یك‬ ‫سازی‬‫پردازنده‬ ‫روی‬ ‫بر‬ ‫تصویر‬‫اهداف‬ ‫به‬ ‫نیل‬ ‫از‬ ‫مانع‬ ‫گرافیکی‬ ‫می‬ ‫شده‬ ‫ذکر‬‫می‬ ‫عوامل‬ ‫این‬ ‫جمله‬ ‫از‬ ‫شوند‬‫محدود‬ ‫باند‬ ‫پهنای‬ ‫به‬ ‫توان‬‫کارت‬ ‫و‬ ‫اصلی‬ ‫حافظه‬ ‫میان‬‫کرد‬ ‫اشاره‬ ‫کامپیوتر‬ ‫گرافیك‬. ‫ی‬ ‫در‬‫ـ‬‫پردازنده‬ ‫توسط‬ ‫است‬ ‫قرار‬ ‫که‬ ‫فریمی‬ ‫از‬ ‫بخشی‬ ‫یا‬ ‫تصویر‬ ‫ابتدا‬ ‫تصویر‬ ‫پردازش‬ ‫الگوریتم‬ ‫ك‬‫حافظه‬ ‫از‬ ،‫شود‬ ‫پردازش‬ ‫گرافیکی‬ ‫اص‬‫ـ‬‫کارت‬ ‫حافظه‬ ‫به‬ ‫کامپیوتر‬ ‫لی‬‫می‬ ‫منتقل‬ ‫گرافیك‬‫شود‬(Download)‫نتا‬ ،‫پردازش‬ ‫عملیات‬ ‫اجرای‬ ‫از‬ ‫پس‬ ‫و‬‫می‬ ‫کار‬ ‫یج‬‫بایست‬ ‫کارت‬ ‫حافظه‬ ‫از‬‫بازگردد‬ ‫اصلی‬ ‫حافظه‬ ‫به‬ ‫مجددا‬ ‫گرافیك‬(Upload). ‫معم‬ ‫در‬‫ـ‬‫کامپیوتر‬ ‫اری‬‫از‬ ‫استفاده‬ ‫برای‬ ‫کاری‬ ‫راه‬ ‫هیچ‬ ‫هنوز‬ ‫متاسفانه‬ ‫مدرن‬ ‫های‬DMA‫عملیات‬ ‫در‬Upload‫اما‬ ‫است‬ ‫نشده‬ ‫تدبیر‬ ‫عملیات‬Download‫کمك‬ ‫به‬DMA‫می‬ ‫بخشیده‬ ‫تسریع‬ ‫کمی‬‫شود‬. ‫این‬ ‫به‬ ‫توجه‬ ‫با‬‫ای‬ ‫در‬ ‫که‬ ‫دارد‬ ‫امکان‬ ‫توضیحات‬‫ـ‬‫عملی‬ ‫ن‬‫ـ‬‫می‬ ‫داده‬ ‫انتقال‬ ‫ات‬‫ـ‬‫سیست‬ ‫حافظه‬ ‫ان‬‫ـ‬‫ح‬ ‫و‬ ‫م‬‫ـ‬‫ک‬ ‫افظه‬‫ـ‬‫ارت‬‫گ‬‫ـ‬‫زمان‬ ‫آنقدر‬ ‫رافیك‬ ‫سپ‬‫ـ‬‫ش‬ ‫ری‬‫ـ‬‫مزیت‬ ‫که‬ ‫ود‬‫ه‬‫ـ‬‫پ‬ ‫ای‬‫ـ‬‫س‬ ‫ردازش‬‫ـ‬‫داده‬ ‫ریع‬‫پردازنده‬ ‫توسط‬ ‫ها‬‫گرافیک‬‫ـ‬‫تب‬ ‫ی‬‫ـ‬‫س‬ ‫اه‬‫ـ‬‫خ‬ ‫همین‬ ‫به‬ .‫ازد‬‫ـ‬‫اط‬‫ـ‬‫می‬ ‫داده‬ ‫پیشنهاد‬ ‫ر‬‫از‬ ‫شود‬ ‫ف‬‫ـ‬‫بخش‬ ‫راخوانی‬‫فری‬ ‫از‬ ‫هایی‬‫ـ‬‫در‬ ‫که‬ ‫م‬‫الگ‬‫ـ‬‫تص‬ ‫پردازش‬ ‫وریتم‬‫ـ‬‫نمی‬ ‫گرفته‬ ‫کار‬ ‫به‬ ‫ویر‬‫شده‬ ‫مبادله‬ ‫داده‬ ‫حجم‬ ‫تا‬ ‫شده‬ ‫داری‬ ‫خود‬ ‫شوند‬ ‫کارت‬ ‫حافظه‬ ‫و‬ ‫اصلی‬ ‫حافظه‬ ‫میان‬‫گردد‬ ‫محدود‬ ‫گرافیك‬.
  • 15. ‫صفحه‬15 ‫كتابخانه‬OpenVIDIA‫و‬GPUCV 1-‫کتابخانه‬OpenVIDIA ‫ن‬‫ـ‬‫ام‬‫ک‬‫ـ‬‫تابخ‬‫ـ‬‫مت‬ ‫انه‬‫ـ‬‫ن‬‫ب‬‫ـ‬‫اس‬ ‫ازی‬‫ـ‬‫ک‬ ‫ت‬‫ـ‬‫دان‬ ‫در‬ ‫ه‬‫ـ‬‫ش‬‫ـ‬‫ت‬ ‫گاه‬‫ـ‬‫ب‬ ‫ورنتو‬‫ـ‬‫پ‬ ‫رای‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫ال‬ ‫ازی‬‫ـ‬‫گ‬‫ـ‬‫وریتم‬‫پ‬ ‫های‬‫ـ‬‫ت‬ ‫ردازش‬‫ـ‬‫ص‬‫ـ‬‫وی‬‫ـ‬‫روی‬ ‫بر‬ ‫ر‬ ‫پ‬‫ـ‬‫ردازنده‬‫گ‬‫ـ‬‫از‬ ‫استفاده‬ ‫با‬ ‫کتابخانه‬ ‫این‬ .‫است‬ ‫شده‬ ‫نگاشته‬ ‫رافیکی‬API‫گرافیکی‬OpenGL‫زبان‬ ‫و‬Cg‫شده‬ ‫داده‬ ‫توسعه‬ ‫سال‬ ‫در‬ ‫و‬ ‫است‬1115‫نرم‬ ‫جایزه‬ ‫برنده‬‫چند‬ ‫افزار‬‫رسانه‬‫متن‬ ‫ای‬‫گشته‬ ‫باز‬. OpenVIDIA‫س‬ ‫واسط‬‫ـ‬‫اده‬‫جه‬ ‫را‬ ‫ای‬‫ـ‬‫ت‬ ‫ت‬‫ـ‬‫وسع‬‫ـ‬‫ه‬‫برن‬‫ـ‬‫امه‬‫ه‬‫ـ‬‫پ‬ ‫ای‬‫ـ‬‫ت‬ ‫ردازش‬‫ـ‬‫بین‬ ‫و‬ ‫صویر‬‫ـ‬‫آن‬ ‫در‬ ‫که‬ ‫میدهد‬ ‫ارائه‬ ‫ماشین‬ ‫ایی‬ ‫الگوریتم‬‫فیلتر‬ ‫مانند‬ ‫تصویر‬ ‫پردازش‬ ‫متداول‬ ‫های‬‫می‬ ‫استفاده‬ ‫قابل‬ ، ‫لبه‬ ‫یافتن‬ ‫های‬‫باشد‬. ‫ی‬‫ـ‬‫پشتیب‬ ‫در‬ ‫آن‬ ‫قابلیت‬ ‫کتابخانه‬ ‫این‬ ‫امکانات‬ ‫از‬ ‫دیگر‬ ‫کی‬‫ـ‬‫کارت‬ ‫چندین‬ ‫از‬ ‫انی‬‫می‬ ‫گرافیك‬‫می‬ ‫ترتیب‬ ‫این‬ ‫به‬ ‫باشد‬‫توان‬‫آن‬ ‫راه‬ ‫را‬‫(شکل‬ ‫کرد‬ ‫بیان‬ ‫قدرتمند‬ ‫تصویر‬ ‫پردازش‬ ‫ماشین‬ ‫یك‬ ‫ایجاد‬ ‫جهت‬ ‫مناسبی‬ ‫اقتصادی‬ ‫کار‬1). ‫ای‬ ‫با‬‫ـ‬‫توابع‬ ‫است‬ ‫نتوانسته‬ ‫کامال‬ ‫کتابخانه‬ ‫این‬ ،‫وجود‬ ‫ن‬API‫برنامه‬ ‫دید‬ ‫از‬ ‫را‬ ‫گرافیکی‬‫نویس‬ ‫برنامه‬ ‫لذا‬ ،‫سازد‬ ‫مخفی‬ ‫نویس‬ ‫نی‬‫ـ‬‫مق‬ ‫جهت‬ ‫تا‬ ‫دارد‬ ‫از‬‫ـ‬‫ده‬ ‫دار‬‫ـ‬‫گ‬ ‫توابع‬ ‫به‬ ‫ی‬‫ـ‬‫رافی‬‫ـ‬‫ک‬ ‫به‬ ‫کی‬‫ـ‬‫ارگ‬‫ـ‬‫درگیر‬ ‫اندکی‬ ‫را‬ ‫خود‬ ،‫نیاز‬ ‫مورد‬ ‫بافرهای‬ ‫و‬ ‫شده‬ ‫رفته‬API ‫کند‬ ‫گرافیکی‬. ‫شکل‬1-‫کارت‬ ‫هفت‬ ‫با‬ ‫کامپیوتر‬ ‫یك‬‫گرافیك‬
  • 16. ‫صفحه‬16 2-‫کتابخانه‬GPUCV ‫ای‬‫ـ‬‫کت‬ ‫ن‬‫ـ‬‫پروژه‬ ‫در‬ ‫که‬ ‫رایگان‬ ‫ابخانه‬‫نام‬ ‫به‬ ‫ای‬Vision-‫پردازنده‬،‫است‬ ‫یافته‬ ‫توسعه‬ ‫فرانسه‬ ‫ریمز‬ ‫دانشگاه‬ ‫در‬ ‫گرافیکی‬ ‫ج‬‫ـ‬‫ه‬‫ـ‬‫پ‬ ‫ت‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫ع‬ ‫ازی‬‫ـ‬‫ملگر‬‫الگوریتم‬ ‫های‬‫بینایی‬ ‫های‬‫پردازنده‬ ‫روی‬ ‫بر‬ ‫ماشین‬‫نسخه‬ ‫عنوان‬ ‫به‬ ‫و‬ ‫شده‬ ‫ایجاد‬ ‫گرافیکی‬ ‫معروف‬ ‫کتابخانه‬ ‫الحاقی‬Intel OpenCV‫می‬ ‫عمل‬‫کند‬. ‫پ‬ ‫جهت‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫الگ‬ ‫یك‬ ‫ازی‬‫ـ‬‫ب‬ ‫وریتم‬‫ـ‬‫ی‬‫ـ‬‫نایی‬‫م‬‫ـ‬‫اشین‬GPUCV‫مح‬‫ــ‬‫ب‬ ‫یط‬‫ـ‬‫رنامه‬‫مشابه‬ ‫نویسی‬OpenCV‫اختیار‬ ‫در‬ ‫را‬ ‫برنامه‬‫قر‬ ‫نویسان‬‫می‬ ‫ار‬‫ت‬ ‫دهد‬‫ـ‬‫عملگر‬ ‫نام‬ ‫تغییر‬ ‫با‬ ‫بتوانند‬ ‫سادگی‬ ‫به‬ ‫ا‬‫عملوند‬ ‫و‬ ‫ها‬‫زمان‬ ‫حداقل‬ ‫در‬ ‫را‬ ‫الگوریتم‬ ‫خود‬ ‫های‬ ‫پ‬ ‫بارپردازشی‬ ‫از‬‫ـ‬‫ردازنده‬‫پ‬ ‫به‬ ‫مرکزی‬‫ـ‬‫ردازنده‬‫گراف‬‫ـ‬‫ی‬‫ـ‬‫من‬ ‫کی‬‫ـ‬‫ت‬‫ـ‬‫ق‬‫ـ‬‫ب‬ .‫کنند‬ ‫ل‬‫ـ‬‫ن‬‫ـ‬‫اب‬‫ـ‬‫ب‬ ‫راین‬‫ـ‬‫ک‬ ‫رای‬‫ـ‬‫کت‬ ‫این‬ ‫با‬ ‫ارکردن‬‫ـ‬،‫ابخانه‬ ‫نی‬‫ـ‬‫ف‬ ‫به‬ ‫ازی‬‫ـ‬‫دست‬ ‫راگیری‬‫ـ‬‫ورات‬API‫گرافی‬‫ـ‬‫م‬ ‫و‬ ‫کی‬‫ـ‬‫س‬ ‫راجع‬‫ـ‬‫ایه‬‫زن‬‫ک‬ ‫های‬‫ـ‬‫و‬ ‫نیست‬ ‫گرافیك‬ ‫ارت‬GPUCV‫توانسته‬ ‫برنامه‬ ‫گرافیکی‬ ‫جزئیات‬‫پردازنده‬ ‫نویسی‬‫برنامه‬ ‫دید‬ ‫از‬ ‫را‬ ‫گرافیکی‬‫سازد‬ ‫پهنان‬ ‫نویسان‬. ‫ت‬‫ـ‬‫عملیاتی‬ ‫وابع‬GPUCV‫عملگرهای‬ ‫همانند‬OpenCV‫می‬ ‫بهره‬ ‫مشابهی‬ ‫داده‬ ‫ساختمان‬ ‫از‬ ‫و‬ ‫شده‬ ‫فراخوانی‬‫به‬ ‫برند‬ ‫همی‬‫ـ‬‫خ‬ ‫ن‬‫ـ‬‫می‬ ‫اطر‬‫ت‬‫ـ‬‫الگ‬ ‫وان‬‫عملگ‬ ‫از‬ ‫را‬ ‫ترکیبی‬ ‫وریتم‬‫ـ‬‫ر‬‫های‬GPUCV‫و‬OpenCV‫ت‬‫ـ‬‫انتخاب‬ ‫به‬ ‫بسته‬ ‫که‬ ‫داد‬ ‫وسعه‬ ‫برنامه‬‫پردازنده‬ ‫توسط‬ ‫عملیات‬ ‫از‬ ‫بخشی‬ ‫نویس‬‫پردازنده‬ ‫توسط‬ ‫بخشی‬ ‫و‬ ‫مرکزی‬‫می‬ ‫پردازش‬ ‫گرافیکی‬‫شود‬. ‫اس‬ ‫بر‬‫ـ‬‫آزمایش‬ ‫نتایج‬ ‫اس‬‫عملگرهای‬ ‫کارایی‬ ‫گرفته‬ ‫صورت‬ ‫های‬GPUCV‫عملگر‬ ‫با‬‫های‬OpenCV‫شده‬ ‫مقایسه‬ ‫زمان‬ ‫احتساب‬ ‫بدون‬ ‫که‬ ‫است‬Upload‫عملگ‬‫ـ‬‫ر‬‫های‬GPUCV‫حدود‬5‫ب‬‫ـ‬‫راب‬‫ـ‬‫سریع‬ ‫ر‬‫عملگر‬ ‫از‬ ‫تر‬‫های‬OpenCV ‫زمان‬ ‫احتساب‬ ‫با‬ ‫برتری‬ ‫نسبت‬ ‫این‬ ‫که‬ ‫هستند‬Upload‫حدود‬ ‫به‬1‫می‬ ‫برابر‬‫رسد‬.
  • 17. ‫صفحه‬18 ‫آينده‬GPGPU ‫آین‬ ‫در‬‫ـ‬‫نه‬ ‫ده‬‫چن‬‫ـ‬‫دور‬ ‫دان‬GPGPU‫تکنولوژی‬ ‫از‬ ‫دیگر‬ ‫یکی‬‫م‬ ‫های‬‫ـ‬‫خ‬ ‫وفقی‬‫ـ‬‫در‬ ‫که‬ ‫بود‬ ‫واهد‬‫بیلیون‬ ‫چند‬ ‫بازار‬ ‫زمینه‬ ‫پس‬ ‫بازی‬ ‫و‬ ‫سرگرمی‬ ‫دالری‬‫مت‬ ‫کامپیوتری‬ ‫های‬‫ـ‬‫پروژه‬ ‫در‬ ‫بیشتر‬ ‫و‬ ‫نرسیده‬ ‫کامل‬ ‫بلوغ‬ ‫به‬ ‫هنوز‬ ‫تکنولوژی‬ ‫این‬ .‫است‬ ‫شده‬ ‫ولد‬‫ها‬ ‫گرفته‬ ‫کار‬ ‫به‬ ‫آکادمیك‬ ‫تحقیقات‬ ‫و‬‫می‬‫پیش‬ ‫اما‬ ،‫شود‬‫نیست‬ ‫تصور‬ ‫از‬ ‫دور‬ ‫آن‬ ‫شدن‬ ‫فراگیر‬ ‫بینی‬. ‫آین‬ ‫در‬‫ـ‬‫مجه‬ ‫شما‬ ‫کامپیوتر‬ ‫اگر‬ ‫نزدیك‬ ‫ده‬‫بازی‬ ‫از‬ ‫تنها‬ ‫نه‬ ‫نباشد‬ ‫قدرتمند‬ ‫گرافیك‬ ‫کارت‬ ‫یك‬ ‫به‬ ‫ز‬‫بازی‬ ‫کردن‬‫جذاب‬ ‫های‬ ‫آین‬ ‫نسل‬‫ـ‬‫مح‬ ‫ده‬‫ـ‬‫خواهی‬ ‫روم‬‫ـ‬‫ممک‬ ‫بلکه‬ ‫شد‬ ‫د‬‫ـ‬‫نتوانی‬ ‫است‬ ‫ن‬‫ـ‬‫فیل‬ ‫یك‬ ‫د‬‫ـ‬‫ح‬ ‫یا‬ ‫کیفیت‬ ‫با‬ ‫م‬‫ـ‬‫ت‬‫ـ‬.‫کنید‬ ‫اجرا‬ ‫را‬ ‫علمی‬ ‫برنامه‬ ‫یك‬ ‫ی‬ ‫فراگی‬ ‫با‬‫ـ‬‫نس‬ ‫شدن‬ ‫ر‬‫ـ‬‫نرم‬ ‫ساختار‬ ‫تنها‬ ‫نه‬ ،‫تکنولوژی‬ ‫این‬ ‫بی‬‫پردا‬ ‫معماری‬ ‫بلکه‬ ‫افزارها‬‫زنده‬،‫شد‬ ‫خواهد‬ ‫متحول‬ ‫نیز‬ ‫ها‬ ‫مرکزی‬ ‫پ‬‫ـ‬‫ادغ‬ ‫از‬ ‫س‬‫ـ‬‫ام‬AMD‫و‬ATI‫خ‬‫ـ‬‫ب‬‫ـ‬‫ر‬‫ه‬‫ـ‬‫مت‬ ‫ای‬‫ـ‬‫ع‬‫ـ‬‫مب‬ ‫ددی‬‫ـ‬‫ن‬‫ـ‬‫ادغ‬ ‫بر‬ ‫ی‬‫ـ‬‫پ‬ ‫ام‬‫ـ‬‫ردازنده‬‫پردازن‬ ‫و‬ ‫مرکزی‬‫ـ‬‫ده‬‫گرافی‬‫ـ‬‫ک‬‫ـ‬‫معماری‬ ‫و‬ ‫ی‬ ‫یك‬‫پارچه‬‫نام‬ ‫به‬ ‫ای‬Fusion‫مزایای‬ ‫از‬ ‫استفاده‬ ‫جهت‬GPGPU‫است‬ ‫شده‬ ‫منتشر‬. ‫است‬‫ـ‬‫قب‬‫ـ‬‫مح‬ ‫توسط‬ ‫جدید‬ ‫تکنولوژی‬ ‫این‬ ‫از‬ ‫ال‬‫ـ‬‫افل‬‫عل‬‫ـ‬‫م‬‫ـ‬‫آک‬ ‫و‬ ‫ی‬‫ـ‬‫توس‬ ‫جهت‬ ‫ادمیك‬‫ـ‬‫عل‬ ‫عه‬‫ـ‬‫وم‬‫آینده‬ ‫کامال‬ ‫آن‬،‫است‬ ‫نگرانه‬ ‫ه‬‫ـ‬‫دانشگاه‬ ‫اکنون‬ ‫م‬‫مع‬ ‫های‬‫ـ‬‫دن‬ ‫در‬ ‫دودی‬‫ـ‬‫تکن‬ ‫این‬ ‫روی‬ ‫بر‬ ‫یا‬‫ـ‬‫ول‬‫ـ‬‫سرم‬ ‫وژی‬‫ـ‬‫گ‬ ‫ایه‬‫ـ‬‫ک‬ ‫ذاری‬‫ـ‬‫رده‬‫ان‬‫ـ‬‫هم‬ ‫و‬ ‫د‬‫وط‬‫ـ‬‫ن‬‫ـ‬‫اک‬ ‫در‬ ‫ما‬ ‫ان‬‫ـ‬‫ثر‬ ‫گ‬‫ـ‬‫روه‬‫تح‬ ‫های‬‫ـ‬‫قیق‬‫ـ‬‫ح‬ ‫این‬ ‫اتی‬‫ـ‬‫ای‬ ‫با‬ ،‫دارند‬ ‫حضور‬ ‫وزه‬‫ـ‬‫می‬ ‫فرض‬ ‫ن‬‫بسیار‬ ‫زمینه‬ ‫که‬ ‫گفت‬ ‫توان‬‫علوم‬ ‫توسعه‬ ‫جهت‬ ‫مساعدی‬ ‫تکنولوژی‬ ‫در‬ ‫خود‬ ‫دانستن‬ ‫سهیم‬ ‫و‬ ‫کامپیوتر‬‫است‬ ‫آمده‬ ‫وجود‬ ‫به‬ ‫ما‬ ‫برای‬ ‫کامپیوترها‬ ‫آینده‬ ‫نسل‬ ‫های‬.
  • 18. ‫صفحه‬17 ‫خالصه‬ GPGPU‫؟‬ ‫چیست‬ GPGPU‫کامپیوتر‬ ‫علم‬‫که‬ ‫ي‬‫ه‬‫ـ‬‫نه‬ ‫دف‬‫ـ‬‫اي‬‫ـ‬‫فع‬ ‫ي‬‫ـ‬‫بهره‬ ‫عرصه‬ ‫اين‬ ‫االن‬‫گی‬‫ـ‬‫ک‬ ‫از‬ ‫ري‬‫ـ‬‫ارت‬‫گرافی‬‫ــ‬‫عن‬ ‫به‬ ‫ك‬‫ــ‬‫وان‬ ‫ي‬‫ـ‬‫پردازنده‬ ‫کمك‬ ‫ك‬‫محاسباتي‬‫برنامه‬ ‫در‬‫برنامه‬ ‫و‬ ‫غیرگرافیكي‬ ‫هاي‬‫است‬ ‫عمومي‬ ‫هاي‬. GPGPU‫صنعت‬ ‫و‬ ‫پردازش‬ ‫توان‬ ‫حداکثر‬‫ـ‬‫پردازنده‬ ‫ي‬‫گرافی‬‫ــ‬‫ه‬ ‫كي‬‫ـ‬‫س‬ ‫هر‬ ‫ا‬‫ــ‬‫اله‬2‫ب‬‫ـ‬‫راب‬‫ـ‬‫م‬ ‫رشد‬ ‫ر‬‫ـ‬‫ي‬‫چ‬ ،‫کند‬‫ـ‬‫ص‬ ‫که‬ ‫را‬‫ـ‬‫بازي‬ ‫نعت‬‫هاي‬ ‫است‬ ‫کرده‬ ‫فراهم‬ ‫را‬ ‫رشد‬ ‫اين‬ ‫اقتصادي‬ ‫انگیزه‬ ‫کامپیوتري‬ ‫مدرن‬ ‫گرافیکی‬ ‫های‬ ‫پردازنده‬ ‫های‬ ‫ویژگی‬ ،‫اول‬‫پردازنده‬‫هاي‬‫پردازنده‬ ،‫خود‬ ‫موازي‬ ‫معماري‬ ‫لطف‬ ‫به‬ ‫گرافیكي‬‫هستند‬ ‫سريعي‬ ‫بسیار‬ ‫هاي‬. ‫هستند‬ ‫ارزان‬ ،‫قیمت‬ ‫به‬ ‫کارايي‬ ‫مالك‬ ‫به‬ ‫توجه‬ ‫با‬ ،‫دوم‬. ‫پردازنده‬ ‫به‬ ‫نسبت‬ ‫کمتري‬ ‫بسیار‬ ‫مصرفي‬ ‫توان‬ ‫آنها‬ ،‫وات‬ ‫به‬ ‫کارايي‬ ‫مالك‬ ‫به‬ ‫توجه‬ ‫با‬ ،‫سوم‬.‫دارند‬ ‫ها‬ ‫مرکزي‬ ‫توانایی‬ ‫مقایسه‬‫پردازنده‬ ‫های‬‫گر‬‫پردازنده‬ ‫با‬ ‫افیکی‬‫مرکزی‬ ‫برنامه‬ ‫سه‬ ‫در‬«‫سازی‬ ‫مرتب‬»،«‫یا‬ ‫سریع‬ ‫فوریه‬ ‫تبدیل‬FFT»‫و‬«‫ماتریسی‬ ‫ضرب‬»‫نس‬‫ـ‬‫خ‬‫ــ‬‫ب‬ ‫ه‬‫ـ‬‫ه‬‫ـ‬‫ین‬‫ـ‬‫ش‬ ‫ه‬‫ـــ‬‫ای‬ ‫ده‬‫ــ‬‫ن‬ ‫س‬‫ـ‬‫برن‬ ‫ه‬‫ـ‬‫امه‬‫ب‬ ‫ها‬‫ـ‬‫پ‬ ‫رای‬‫ـ‬‫ردازنده‬‫گرافیکی‬1‫الی‬5‫نسخه‬ ‫از‬ ‫برابر‬‫پردازنده‬ ‫از‬ ‫که‬ ‫آنها‬ ‫استاندارد‬ ‫های‬‫برای‬ ‫مرکزی‬ ‫خود‬ ‫پیچیده‬ ‫محاسبات‬ ‫پردازش‬‫می‬ ‫استفاده‬‫سریع‬ ‫کنند‬‫است‬ ‫تر‬. ‫پردازنده‬‫پردازنده‬ ‫از‬ ‫گرافیکی‬‫سریع‬ ‫مرکزی‬‫است‬ ‫تر‬ ‫برنامه‬ ‫مدل‬‫برنامه‬ ‫نویسی‬‫پردازنده‬ ‫برای‬ ‫که‬ ‫هایی‬‫مرک‬‫ـ‬‫نوش‬ ‫زی‬‫ـ‬‫می‬ ‫ته‬‫اص‬ ‫در‬ ‫شوند‬‫ـ‬‫ی‬ ‫ل‬‫ـ‬‫م‬ ‫ك‬‫ـ‬‫به‬ ‫است‬ ‫سریال‬ ‫دل‬ ‫پ‬ ‫به‬ ‫باال‬ ‫از‬ ‫ترتیب‬ ‫به‬ ‫برنامه‬ ‫یك‬ ‫معنی‬ ‫این‬‫ـ‬‫اجرا‬ ،‫ترجمه‬ ‫از‬ ‫پس‬ ‫و‬ ‫شده‬ ‫خوانده‬ ‫ایین‬‫شده‬‫از‬ ‫ندرت‬ ‫به‬ ‫آن‬ ‫در‬ ‫و‬ «‫م‬‫ـ‬‫وازی‬‫س‬‫ـ‬‫ازی‬»‫پ‬ ‫در‬‫ـ‬‫داده‬ ‫ردازش‬‫ه‬‫ــ‬‫اس‬ ‫ا‬‫ـ‬‫ت‬‫ـ‬‫ف‬‫ـ‬‫م‬ ‫اده‬‫ــ‬‫ی‬‫ش‬‫ـ‬‫ود‬،‫ح‬ ‫در‬‫ـ‬‫ک‬ ‫الی‬‫ـ‬‫م‬ ‫ه‬‫ـ‬‫ب‬ ‫دل‬‫ــ‬‫رن‬‫ـ‬‫امه‬‫ن‬‫ـ‬‫ویس‬‫ـ‬‫برنامه‬ ‫ی‬‫های‬ ‫پ‬‫ـ‬‫ردازنده‬‫گ‬‫ـ‬‫رافیکی‬‫در‬‫اص‬‫ـ‬‫ی‬ ‫ل‬‫ـ‬‫م‬ ‫ك‬‫ـ‬‫م‬ ‫دل‬‫ـ‬‫اس‬ ‫وازی‬‫ـ‬‫ت‬
  • 19. ‫صفحه‬10 ‫ابزار‬‫برنامه‬ ‫های‬‫نویسی‬GPGPU ‫ابزار‬‫و‬ ‫گرافیکی‬ ‫نویسی‬ ‫برنامه‬ ‫های‬GPGPU‫حکم‬‫می‬ ‫فرمایی‬‫اب‬ ‫کلیه‬ ‫و‬ ‫کند‬‫ـ‬‫زار‬‫ب‬ ‫های‬‫ـ‬‫رنامه‬‫ای‬ ‫نویسی‬‫ـ‬‫ن‬ ‫مشتق‬ ‫جمله‬ ‫از‬ ‫حوزه‬‫های‬‫زبان‬C++‫می‬ ‫شمار‬ ‫به‬‫روند‬. ‫برنامه‬ ‫برای‬‫نویسی‬GPGPU‫دارد‬ ‫وجود‬ ‫روش‬ ‫سه‬: 0-API‫گرافیکی‬ ‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬ ‫و‬ ‫ها‬ 1-‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬GPGPU‫ها‬ ‫کتابخانه‬ ‫و‬ 1-‫تجاری‬ ‫های‬ ‫پلتفورم‬ ‫کاربرد‬‫ها‬‫پردازنده‬ ‫غیرگرافیکی‬ ‫ی‬‫گرافیکی‬ ‫برنامه‬ ‫ساختار‬‫پردازنده‬ ‫توسط‬ ‫خوبی‬ ‫به‬ ‫که‬ ‫غیرگرافیکی‬ ‫های‬‫می‬ ‫پردازش‬ ‫گرافیکی‬‫مختصر‬ ‫صورت‬ ‫به‬ ‫شوند‬ ‫مقاله‬ ‫ابتدای‬ ‫در‬‫شد‬ ‫داده‬ ‫توضیح‬‫و‬‫نمونه‬‫کاربرد‬ ‫این‬ ‫از‬ ‫ای‬‫گرفته‬ ‫صورت‬ ‫تاکنون‬ ‫که‬ ‫ها‬. ‫شده‬ ‫ذکر‬ ‫پردازنده‬ ‫کاربرد‬‫تصویر‬ ‫پردازش‬ ‫در‬ ‫گرافیکی‬ ‫بهره‬‫گی‬‫ـ‬‫ق‬ ‫از‬ ‫ری‬‫ـ‬‫ابلی‬‫ــ‬‫ت‬‫پ‬ ‫های‬‫ــ‬‫ردازن‬‫ـ‬‫ده‬‫گ‬‫ــ‬‫الگ‬ ‫در‬ ‫رافیکی‬‫ـ‬‫وریتم‬‫ماش‬ ‫بینایی‬ ‫های‬‫ـ‬‫ی‬‫ـ‬‫جهت‬ ‫تصویر‬ ‫پردازش‬ ‫و‬ ‫ن‬ ‫دس‬‫ـ‬‫ت‬‫س‬ ‫به‬ ‫یابی‬‫ـ‬‫ه‬ ‫ه‬‫ـ‬‫مط‬ ‫کلی‬ ‫دف‬‫ـ‬‫عملکرد‬ ‫به‬ ‫شدن‬ ‫نائل‬ ‫اول‬ ‫هدف‬ ،‫است‬ ‫شده‬ ‫رح‬Real-Time‫نیاز‬ ‫بدون‬ ‫ک‬ ‫به‬‫ـ‬‫پی‬ ‫اهش‬‫ـ‬‫چ‬‫ـ‬‫ال‬ ‫یدگی‬‫ـ‬‫ه‬ ،‫است‬ ‫گوریتم‬‫ـ‬‫پردازنده‬ ‫بارکاری‬ ‫کاهش‬ ‫دوم‬ ‫دف‬‫پ‬ ‫عملیات‬ ‫از‬ ‫مرکزی‬‫ـ‬‫ردازشی‬ ‫ال‬‫ـ‬‫گوریتم‬‫بینای‬ ‫های‬‫ـ‬‫م‬ ‫ی‬‫ـ‬‫اخت‬ ‫و‬ ‫اشین‬‫ـ‬‫ص‬‫ـ‬‫س‬ ‫به‬ ‫آن‬ ‫اص‬‫ـ‬‫ب‬ ‫ایر‬‫ـ‬‫رن‬‫ـ‬‫امه‬‫سرعت‬ ‫افزایش‬ ‫نیز‬ ‫سوم‬ ‫هدف‬ ‫و‬ ‫باشد‬ ‫می‬ ‫ها‬ ‫برنامه‬ ‫محاسبات‬‫راه‬ ‫یك‬ ‫کمك‬ ‫به‬ ‫تصویر‬ ‫پردازش‬ ‫های‬‫است‬ ‫اقتصادی‬ ‫صرفه‬ ‫به‬ ‫کار‬. ‫متداو‬ ‫مشکالت‬‫ل‬ ‫ع‬‫ـ‬‫مت‬ ‫وامل‬‫ـ‬‫پیاده‬ ‫هنگام‬ ‫که‬ ‫دارند‬ ‫وجود‬ ‫عددی‬‫یك‬ ‫سازی‬‫پردازش‬ ‫الگوریتم‬‫پردازنده‬ ‫روی‬ ‫بر‬ ‫تصویر‬‫گرافیکی‬ ‫می‬ ‫شده‬ ‫ذکر‬ ‫اهداف‬ ‫به‬ ‫نیل‬ ‫از‬ ‫مانع‬‫می‬ ‫عوامل‬ ‫این‬ ‫جمله‬ ‫از‬ ‫شوند‬‫اصلی‬ ‫حافظه‬ ‫میان‬ ‫محدود‬ ‫باند‬ ‫پهنای‬ ‫به‬ ‫توان‬ ‫کارت‬ ‫و‬‫کرد‬ ‫اشاره‬ ‫کامپیوتر‬ ‫گرافیك‬.
  • 20. ‫صفحه‬29 ‫کتابخانه‬OpenVIDIA‫و‬GPUCV ‫کتابخانه‬OpenVIDIA ‫ن‬‫ـ‬‫ام‬‫ک‬‫ـ‬‫تابخ‬‫ـ‬‫مت‬ ‫انه‬‫ـ‬‫ن‬‫ب‬‫ـ‬‫ازی‬‫اس‬‫ـ‬‫ک‬ ‫ت‬‫ـ‬‫دان‬ ‫در‬ ‫ه‬‫ـ‬‫ش‬‫ـ‬‫ت‬ ‫گاه‬‫ـ‬‫ب‬ ‫ورنتو‬‫ـ‬‫پ‬ ‫رای‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫ال‬ ‫ازی‬‫ـ‬‫گ‬‫ـ‬‫وریتم‬‫های‬ ‫پ‬‫ـ‬‫ت‬ ‫ردازش‬‫ـ‬‫ص‬‫ـ‬‫وی‬‫ـ‬‫پ‬ ‫روی‬ ‫بر‬ ‫ر‬‫ـ‬‫ردازنده‬‫گ‬‫ـ‬‫از‬ ‫استفاده‬ ‫با‬ ‫کتابخانه‬ ‫این‬ .‫است‬ ‫شده‬ ‫نگاشته‬ ‫رافیکی‬API ‫گرافیکی‬OpenGL‫زبان‬ ‫و‬Cg‫سال‬ ‫در‬ ‫و‬ ‫است‬ ‫شده‬ ‫داده‬ ‫توسعه‬1115‫نرم‬ ‫جایزه‬ ‫برنده‬‫افزار‬ ‫چند‬‫رسانه‬‫متن‬ ‫ای‬‫باز‬‫گشته‬. ‫کتابخانه‬GPUCV ‫ای‬‫ـ‬‫کت‬ ‫ن‬‫ـ‬‫پروژه‬ ‫در‬ ‫که‬ ‫رایگان‬ ‫ابخانه‬‫نام‬ ‫به‬ ‫ای‬Vision-‫پردازنده‬‫فرانسه‬ ‫ریمز‬ ‫دانشگاه‬ ‫در‬ ‫گرافیکی‬ ‫ج‬ ،‫است‬ ‫یافته‬ ‫توسعه‬‫ـ‬‫ه‬‫ـ‬‫پ‬ ‫ت‬‫ـ‬‫ی‬‫ـ‬‫اده‬‫س‬‫ـ‬‫ع‬ ‫ازی‬‫ـ‬‫ملگر‬‫الگوریتم‬ ‫های‬‫بینایی‬ ‫های‬‫روی‬ ‫بر‬ ‫ماشین‬ ‫پردازنده‬‫کتابخانه‬ ‫الحاقی‬ ‫نسخه‬ ‫عنوان‬ ‫به‬ ‫و‬ ‫شده‬ ‫ایجاد‬ ‫گرافیکی‬‫معروف‬Intel OpenCV‫عمل‬ ‫می‬‫کند‬. ‫آینده‬GPGPU ‫آین‬ ‫در‬‫ـ‬‫نه‬ ‫ده‬‫چن‬‫ـ‬‫دور‬ ‫دان‬GPGPU‫تکنولوژی‬ ‫از‬ ‫دیگر‬ ‫یکی‬‫م‬ ‫های‬‫ـ‬‫خ‬ ‫وفقی‬‫ـ‬‫پس‬ ‫در‬ ‫که‬ ‫بود‬ ‫واهد‬ ‫بازی‬ ‫و‬ ‫سرگرمی‬ ‫دالری‬ ‫بیلیون‬ ‫چند‬ ‫بازار‬ ‫زمینه‬‫مت‬ ‫کامپیوتری‬ ‫های‬‫ـ‬‫تکنولوژی‬ ‫این‬ .‫است‬ ‫شده‬ ‫ولد‬ ‫در‬ ‫بیشتر‬ ‫و‬ ‫نرسیده‬ ‫کامل‬ ‫بلوغ‬ ‫به‬ ‫هنوز‬‫پروژه‬‫گرفته‬ ‫کار‬ ‫به‬ ‫آکادمیك‬ ‫تحقیقات‬ ‫و‬ ‫ها‬‫می‬‫اما‬ ،‫شود‬ ‫پیش‬‫نیست‬ ‫تصور‬ ‫از‬ ‫دور‬ ‫آن‬ ‫شدن‬ ‫فراگیر‬ ‫بینی‬.
  • 21. ‫صفحه‬21 ‫مأخذ‬ ‫و‬ ‫منابع‬ 1. www.sarirservice.com 2. www.operating-system.ir 3. forum.ecl4u.com 4. www.daneshju.ir 5. en.wikipedia.org/wiki/GPGPU 6. gpgpu.org 7. blogs.msdn.com 8. en.wikipedia.org/wiki/GPGPU 9. www.linkedin.com 10.www.tidepowerd.com/gpu-net 11.www.gpusystems.com 12.stackoverflow.com 13.blog.joeferfecki.com 14.syrcose.ispras.ru 15.www.sakhtafzar.com 16.www.demo.informatic-laptop.com 17.www.culatools.com 18.vidia-graphic.blogfa.com 19.www.tebyan.net
  • 22. ‫صفحه‬22 : ‫ضمائم‬ ‫از‬ ‫که‬ ‫ای‬ ‫برنامه‬ ‫کد‬GPU .Net: ‫نماید‬ ‫می‬ ‫استفاده‬ 0- // Wrapper method (runs on the host) // Create a standard .NET array of integers const int Count = 0x1000000; float[] a = new float[Count]; float[] b = new float[Count]; // Create an array to hold the output values float[] c = new float[Count]; // Set grid/block size for GPU execution Launcher.SetGridSize(256); Launcher.SetBlockSize(128); // Call the kernel method AddGpu(a, b, c); // The results are immediately available in 'c'. // Kernel method (runs on the device) [Kernel] private static void AddGpu(float[] a, float[] b, float[] c) { // Get the thread id and total number of threads int ThreadId = BlockDimension.X * BlockIndex.X + ThreadIndex.X; int TotalThreads = BlockDimension.X * GridDimension.X; // Loop over the vectors 'a' and 'b', adding them // pairwise and storing the sums in 'c' for (int ElementIndex = ThreadId; ElementIndex < a.Length; ElementIndex += TotalThreads) { c[ElementIndex] = a[ElementIndex] + b[ElementIndex]; } }
  • 23. ‫صفحه‬23 1- using System; using System.Linq; using Microsoft.ParallelArrays; namespace AcceleratorSamples { static partial class Convolver2D { static FloatParallelArray convolve(this FloatParallelArray a, Func<int, int[]> shifts, float[] kernel) { return kernel .Select((k, i) => k * ParallelArrays.Shift(a, shifts(i))) .Aggregate((a1, a2) => a1 + a2); } static FloatParallelArray convolveXY(this FloatParallelArray input, float[] kernel) { return input .convolve(i => new[] { -i, 0 }, kernel) .convolve(i => new[] { 0, -i }, kernel); } static void Main(string[] args) { const int inputSize = 10; var random = new Random(42); var inputData = new float[inputSize, inputSize]; for (int row = 0; row < inputSize; row++) for (int col = 0; col < inputSize; col++) inputData[row, col] = (float)random.NextDouble() * random.Next(1, 100); var testKernel = new[] { 2F, 5, 7, 4, 3 }; var dx9Target = new DX9Target(); var inputArray = new FloatParallelArray(inputData); var result = dx9Target.ToArray2D(inputArray.convolveXY(testKernel)); for (int row = 0; row < inputSize; row++) { for (int col = 0; col < inputSize; col++) Console.Write("{0} ", result[row, col]); Console.WriteLine(); } } } }
  • 24. ‫صفحه‬24 ‫اشکال‬ ‫فهرست‬ ‫شكل‬1-‫پردازنده‬ ‫يك‬ ‫از‬ ‫نمايي‬‫مدرن‬ ‫گرافیكي‬.....................................................................................................................5 ‫شکل‬1-‫پردا‬ ‫خام‬ ‫پردازشی‬ ‫توان‬‫زنده‬‫پردازنده‬ ‫با‬ ‫مقایسه‬ ‫در‬ ‫گرافیکی‬‫مرکزی‬...........................................................................9 ‫شکل‬1-‫کارت‬ ‫هفت‬ ‫با‬ ‫کامپیوتر‬ ‫یك‬‫گرافیك‬....................................................................................................................05