واحد پردازش گرافیکی ( GPU ) عموماً برای پردازش محاسبات گرافیکی رایانه طراحی و تولید می شود. به بهره برداری از واحد پردازش گرافیکی یک رایانه برای انجام محاسبات معمولی که در گذشته به کمک CPUها صورت می گرفته است، محاسبات همه منظوره بر روی واحد پردازش گرافیکی ( مخفف انگلیسی: GPGPU ) گفته می شود. [ ۱]
در حال حاضر اوپن سی ال زبان متن باز رایج برنامه نویسی چندمنظوره بر روی جی پی یوها بوده و زبان کودا ( محصول شرکت انویدیا ) نیز پراستفاده ترین بستر مالکیتی این زمینه محسوب می شود. [ ۲]
از آنجایی که واحدهای پردازش گرافیکی برای کارهای گرافیکی طراحی شده اند، در انجام عملیات و برنامه نویسی بسیار محدود هستند. بر اساس مدل طراحی GPUها، استفاده از آن ها تنها در مسائلی که به کمک پردازش جریانی قابل حل هستند مفید بوده و قدرت سخت افزار آن ها تنها به روش های خاصی قابل بهره برداری است.
GPUها تنها می توانند بر روی داده ها و آرایه های مستقل از هم پردازش انجام دهند؛ اما این پردازش را در تعداد بسیار بالا و به صورت هم زمان اعمال می کنند. این ویژگی هنگامی که نیاز به کار یکسان بر روی تعداد زیادی داده داشته باشید، مفید واقع می شود. به بیان دیگر، GPUها پردازشگرهای جریانی هستند؛ پردازش گرهایی که به صورت موازی یک روند را بر روی جریانی از داده ها اعمال می کنند.
یک جریان، به بیان ساده، مجموعه ای از داده هاست که نیاز به محاسبات یکسانی دارند. جریان ها اساس موازات داده ها در پردازش موازی محسوب می شوند. کرنل ها ( به معنای هسته ) که توسط GPUها فراخوانده می شوند نیز توابعی هستند که بر روی تک تک اعضای جریان داده اجرا می شوند. در برنامه هایی که برای GPUها نوشته می شوند، توجه به میزان عملیات ریاضی بر واحد حافظه ضروری است. از آنجایی که سرعت دسترسی به حافظه بسیار کمتر از سرعت پردازش این سخت افزارها است، اگر تعداد عملیات ریاضی برای هر دادهٔ موجود در حافظه کم باشد، میزان افزایش سرعت اجرا محدود می گردد. [ ۳]
نرم افزارهای ایده آل برای GPGPU نرم افزارهایی هستند که داده های فراوان، موازات بالا و وابستگی کم داده ای داشته باشند.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفدر حال حاضر اوپن سی ال زبان متن باز رایج برنامه نویسی چندمنظوره بر روی جی پی یوها بوده و زبان کودا ( محصول شرکت انویدیا ) نیز پراستفاده ترین بستر مالکیتی این زمینه محسوب می شود. [ ۲]
از آنجایی که واحدهای پردازش گرافیکی برای کارهای گرافیکی طراحی شده اند، در انجام عملیات و برنامه نویسی بسیار محدود هستند. بر اساس مدل طراحی GPUها، استفاده از آن ها تنها در مسائلی که به کمک پردازش جریانی قابل حل هستند مفید بوده و قدرت سخت افزار آن ها تنها به روش های خاصی قابل بهره برداری است.
GPUها تنها می توانند بر روی داده ها و آرایه های مستقل از هم پردازش انجام دهند؛ اما این پردازش را در تعداد بسیار بالا و به صورت هم زمان اعمال می کنند. این ویژگی هنگامی که نیاز به کار یکسان بر روی تعداد زیادی داده داشته باشید، مفید واقع می شود. به بیان دیگر، GPUها پردازشگرهای جریانی هستند؛ پردازش گرهایی که به صورت موازی یک روند را بر روی جریانی از داده ها اعمال می کنند.
یک جریان، به بیان ساده، مجموعه ای از داده هاست که نیاز به محاسبات یکسانی دارند. جریان ها اساس موازات داده ها در پردازش موازی محسوب می شوند. کرنل ها ( به معنای هسته ) که توسط GPUها فراخوانده می شوند نیز توابعی هستند که بر روی تک تک اعضای جریان داده اجرا می شوند. در برنامه هایی که برای GPUها نوشته می شوند، توجه به میزان عملیات ریاضی بر واحد حافظه ضروری است. از آنجایی که سرعت دسترسی به حافظه بسیار کمتر از سرعت پردازش این سخت افزارها است، اگر تعداد عملیات ریاضی برای هر دادهٔ موجود در حافظه کم باشد، میزان افزایش سرعت اجرا محدود می گردد. [ ۳]
نرم افزارهای ایده آل برای GPGPU نرم افزارهایی هستند که داده های فراوان، موازات بالا و وابستگی کم داده ای داشته باشند.