MAHDIAR
21st October 2009, 01:39 PM
:-/:)):-?gpu در كارت گرافیك چیست
به نام خالق هستی
امروزه پردازندههای گرافیكی كه بر روی كارتگرافیكهای گرانقیمت نصب میشوند توان پردازشی خارقالعادهای را نسبت به پردازندههای مركزی ارائه میدهند، این موضوع موجب گسترش كاربردهای این پردازندهها در حوزههایی فراتر از بازیهای كامپیوتری گشته است، پردازندههای گرافیكی مدرن با معماری موازی خود پردازندههای بسیار سریعی به شمار میروند، در عین حال با قیمت و توان مصرفی كمتری عرضه میشوند و جهت پیادهسازی الگوریتمها و برنامه های بینایی ماشین و پردازش تصویر كه بار پردازشی زیادی را جهت رسیدن به نرخ فریم بیشتر طلب میكنند، یك راهكار اقتصادی و كارآمد به شمار میرود، طوری كه برنامه نویس بدون نیاز به فراگیری واسطهای برنامه نویسی گرافیكی به كمك كتابخانههای موجود برای اینكار میتواند بار پردازشی برنامه خود را به سادگی از پردازنده مركزی به پردازنده گرافیكی منتقل كند.
اشتیاق فراوان طرفداران بازیهای كامپیوتری به بازیهای زیبا و طبیعیتر، موجب بهوجود آمدن تحولات متعددی در كارتگرافیكها و فنآوریهای وابسته به آن شده به طوری كه كارتگرافیكهای مدرن میتوانند به درمان سرطان كمك كنند! زمین لرزه برزگی در شهر سانفرانسیسكو را پیشبینی كنند و با فراهم آوردن توان پردازشی خارقالعاده، مسائل بسیار پیچیده محاسباتی و ریاضی را به سادگی حل كنند. آیا تا كنون به این موضوع فكر كردهاید كه كارتگرافیكهای چندصد هزار تومانی به غیر از بازیهای كامپیوتری در چه كاربردهای دیگری به درد میخورد؟
سالها است كه افزایش روز افزون عملكرد كارتگرافیكها، محققین را به فكر بهرهگیری از توان پردازشی آنها در كاربردهای غیرگرافیكی انداخته است. در همین راستا شاخه جدیدی در علوم كامپیوتر به نام GPGPU ایجاد گشته كه هدف نهایی فعالان این عرصه بهرهگیری از كارتگرافیك به عنوان یك كمك پردازنده محاسباتی در برنامههای غیرگرافیكی و برنامههای عمومی است.
در همایش SuperComputing 2006 كه در شهر Tampa ایالت فلوریدا برگزار شد، محققین دانشگاه كارولینا نتایج آزمایشهای گسترده خود را در مورد مقایسه عملكرد پردازندهگرافیكی(GPU) با پردازندهمركزی (CPU) منتشر كردند، پردازندهگرافیكی، نوعی پردازنده موازی است كه بر روی كارت گرافیكها قرار دارد (شكل 1).
این پردازنده به صورت كاملا اختصاصی برای پردازش گرافیكی محیطهای سهبعدی و بازیهای كامپیوتری طراحی شده است كه طی سالهای گذشته توسط صنعت چند بیلیون دلاری بازیهای كامپیوتری آن چنان تحول یافته كه امروزه از نظر كارایی با
پردازندهمركزی كه یك پردازنده همه منظوره به شمار میرود رقابت میكند. بكار گیری پردازندهگرافیكی در محاسبات عمومی جایگاه جدیدی برای كارتگرافیكهای قدرتمند ایجاد كرده است، جایی كه از پردازندهگرافیكی دیگر برای پردازش محاسبات گرافیكی بازیهایكامپیوتری استفاده نمیشود، در عوض در نقش یك پردازنده كمكی، بخشی یا تمامی بار محاسباتی پردازندهمركزی را تقبل كرده و به عملیات پردازش سرعت میبخشد.
GPGPU و صنعت
NVIDIA و ATI به عنوان به دو تولیدكننده بزرگ پردازندههایگرافیكی، از این ایدهی نوین استقبال كردهاند و برای گسترش فروش محصولات خود در بازارهایی فراتر از بازار بازیهای كامپیوتری، فنآوریهای جدیدی برای به كارگیری پردازندهگرافیكی در كاربردهای غیرگرافیكی ارائه كردهاند. همزمان با عرضه Geforce 8800 ، شركت Nvidia اولین محیط توسعه برنامههای GPGPU را مبتنی بر كامپایلر C، موسوم به CUDA معرفی كرده كه به كمك این فنآوری بهرهبرداری از پردازندهگرافیكی در برنامههای عمومی بسیار آسانتر خواهد شد. به گفته مدیر ارشد شركت NVIDIA در حوزه محاسبات پردازندهگرافیكی ، آقای andy keane ، معماری كاملا جدیدی در پردازندهگرافیكی های نسل هشتم شركت به كار گرفته شده كه در آن با اضافه كردن حافظه كاشه، استفاده از پردازندهگرافیكی در دو مد گرافیكی و غیر گرافیكی به سهولت امكان پذیر است: «هم اكنون پردازندهگرافیكی شباهت بسیاری به پردازندهمركزی پیدا كرده است و CUDA مسیر انعطاف پذیر و سادهای را برای دستیابی به كارایی شگفتانگیز نهفته شده در پردازندهگرافیكی برای برنامهنویسان به ارمغان میآورد».
تجربههای بسیار موفق به دست آمده در پروژه Folding@Home دانشگاه اِستَنفورد، مهر تاییدی بر كاربردی بودن این سبك جدید برنامهها است ، در این پروژهی عمومی كه سالهاست آغاز شده كامپیوترهای هزاران نفر از سراسر دنیا با همدیگر از طریق اینترنت متصل میگردد تا به كمك توان پردازشی پردازندهمركزی های خود، پروتئینهای موثر در ایجاد بیماریهای سرطانی و بیماریهای غددی را شبیهسازی كرده و محققین را در یافتن روشهای درمان آنها یاری كنند. چند ماه پیش با همكاری شركت ATI، نسخه آزمایشی از نرمافزاری عرضه شد كه در آن از توان پردازش كارتگرافیك كامپیوترهایی كه از طریق اینترنت به همدیگر متصل شدهاند به جای استفاده از پردازندهمركزی آنها در شبیهسازیها استفاده میكند. آخرین نتایج به دست آمده از این آزمایش جهش 20 الی 40 درصدی نرخ رشد پروژه را نشان میدهد، آرایهای از 536 كارتگرافیك با پردازندهگرافیكیی Radeon X1900 كه طی چند ماه به این پروژه پیوسته اند با 35 تریلیون محاسبه در ثانیه، سرعت پردازشی بیش از 17485 پردازندهمركزی شركت كننده با پلتفورم linux با حداكثر 21 تریلیون محاسبه در ثانیه ارائه كردهاند. افزایش عملكرد حاصل از بكارگیری پردازندهگرافیكی در برنامههای غیرگرافیكی، محققین و دانشمندان علوم كامپیوتر را مجذوب خود كرده به طوری كه روز به روز بر تعداد مقالات و تحقیقات حوزه GPGPU افزوده میشود، Denish Manocha یكی از اساتید تیم تحقیقاتی Gamma در دانشگاه كارولینا، در این مورد میگوید:
«حداكثر توان پردازشی پردازندهگرافیكی ها هر ساله 2 برابر رشد میكند، چرا كه صنعت بازیهای كامپیوتری انگیزه اقتصادی این رشد را فراهم كرده است».
همچنین ایشان به همراه همكار خود در دانشكده علوم كامپیوتر دانشگاه كارولینا، مدتهاست اقدام به برگزاری دورههای آموزشی ویژه محاسبات عمومی به كمك پردازندهگرافیكی كردهاند. این امر نوید آن را میدهد كه بهرهگیری از پردازندهگرافیكی در محاسبات عمومی به یكی از دروس استاندارد محافل آكادمیك تبدیل شود.
گروهی از محققین بر این باورند كه قدرت پردازشی بسیار بالای سوپركامپیوترها با بهره برداری از توان پردازشی پردازندهگرافیكیهایی كه برای صنعت بازیهای كامپیوتری توسعه یافتهاند، قابل دستیابی است. به گفته Vijay Pande مدیر پروژه Folding@Home «با بهرهبرداری از توان پردازشی پردازندهگرافیكی ها ما شاهد یك انقلاب واقعی بودیم كه هرگز قابل تصور نمیبود».
در این مقاله به كاربردهای كارتگرافیك در برنامههای عمومی اشاره شده كه در این كاربردها پردازنده گرافیكی به عنوان یك كمك پردازنده محاسباتی قدرتمند به خدمت گرفته میشود، علاوه بر این مقایسهای میان پردازنده گرافیكی و پردازنده مركزی صورت گرفته تا برتریهای نسبی پردازندههای گرافیكی مشخص گردد سپس به روشهای متداول برنامهنویسی عمومی پردازندهگرافیكی اشاره كوتاهی كرده و در انتها برخی از كاربردهای روش برنامهنویسی مذكور در برنامههای پردازش تصویر و بینایی ماشین بررسی شده است
به نام خالق هستی
امروزه پردازندههای گرافیكی كه بر روی كارتگرافیكهای گرانقیمت نصب میشوند توان پردازشی خارقالعادهای را نسبت به پردازندههای مركزی ارائه میدهند، این موضوع موجب گسترش كاربردهای این پردازندهها در حوزههایی فراتر از بازیهای كامپیوتری گشته است، پردازندههای گرافیكی مدرن با معماری موازی خود پردازندههای بسیار سریعی به شمار میروند، در عین حال با قیمت و توان مصرفی كمتری عرضه میشوند و جهت پیادهسازی الگوریتمها و برنامه های بینایی ماشین و پردازش تصویر كه بار پردازشی زیادی را جهت رسیدن به نرخ فریم بیشتر طلب میكنند، یك راهكار اقتصادی و كارآمد به شمار میرود، طوری كه برنامه نویس بدون نیاز به فراگیری واسطهای برنامه نویسی گرافیكی به كمك كتابخانههای موجود برای اینكار میتواند بار پردازشی برنامه خود را به سادگی از پردازنده مركزی به پردازنده گرافیكی منتقل كند.
اشتیاق فراوان طرفداران بازیهای كامپیوتری به بازیهای زیبا و طبیعیتر، موجب بهوجود آمدن تحولات متعددی در كارتگرافیكها و فنآوریهای وابسته به آن شده به طوری كه كارتگرافیكهای مدرن میتوانند به درمان سرطان كمك كنند! زمین لرزه برزگی در شهر سانفرانسیسكو را پیشبینی كنند و با فراهم آوردن توان پردازشی خارقالعاده، مسائل بسیار پیچیده محاسباتی و ریاضی را به سادگی حل كنند. آیا تا كنون به این موضوع فكر كردهاید كه كارتگرافیكهای چندصد هزار تومانی به غیر از بازیهای كامپیوتری در چه كاربردهای دیگری به درد میخورد؟
سالها است كه افزایش روز افزون عملكرد كارتگرافیكها، محققین را به فكر بهرهگیری از توان پردازشی آنها در كاربردهای غیرگرافیكی انداخته است. در همین راستا شاخه جدیدی در علوم كامپیوتر به نام GPGPU ایجاد گشته كه هدف نهایی فعالان این عرصه بهرهگیری از كارتگرافیك به عنوان یك كمك پردازنده محاسباتی در برنامههای غیرگرافیكی و برنامههای عمومی است.
در همایش SuperComputing 2006 كه در شهر Tampa ایالت فلوریدا برگزار شد، محققین دانشگاه كارولینا نتایج آزمایشهای گسترده خود را در مورد مقایسه عملكرد پردازندهگرافیكی(GPU) با پردازندهمركزی (CPU) منتشر كردند، پردازندهگرافیكی، نوعی پردازنده موازی است كه بر روی كارت گرافیكها قرار دارد (شكل 1).
این پردازنده به صورت كاملا اختصاصی برای پردازش گرافیكی محیطهای سهبعدی و بازیهای كامپیوتری طراحی شده است كه طی سالهای گذشته توسط صنعت چند بیلیون دلاری بازیهای كامپیوتری آن چنان تحول یافته كه امروزه از نظر كارایی با
پردازندهمركزی كه یك پردازنده همه منظوره به شمار میرود رقابت میكند. بكار گیری پردازندهگرافیكی در محاسبات عمومی جایگاه جدیدی برای كارتگرافیكهای قدرتمند ایجاد كرده است، جایی كه از پردازندهگرافیكی دیگر برای پردازش محاسبات گرافیكی بازیهایكامپیوتری استفاده نمیشود، در عوض در نقش یك پردازنده كمكی، بخشی یا تمامی بار محاسباتی پردازندهمركزی را تقبل كرده و به عملیات پردازش سرعت میبخشد.
GPGPU و صنعت
NVIDIA و ATI به عنوان به دو تولیدكننده بزرگ پردازندههایگرافیكی، از این ایدهی نوین استقبال كردهاند و برای گسترش فروش محصولات خود در بازارهایی فراتر از بازار بازیهای كامپیوتری، فنآوریهای جدیدی برای به كارگیری پردازندهگرافیكی در كاربردهای غیرگرافیكی ارائه كردهاند. همزمان با عرضه Geforce 8800 ، شركت Nvidia اولین محیط توسعه برنامههای GPGPU را مبتنی بر كامپایلر C، موسوم به CUDA معرفی كرده كه به كمك این فنآوری بهرهبرداری از پردازندهگرافیكی در برنامههای عمومی بسیار آسانتر خواهد شد. به گفته مدیر ارشد شركت NVIDIA در حوزه محاسبات پردازندهگرافیكی ، آقای andy keane ، معماری كاملا جدیدی در پردازندهگرافیكی های نسل هشتم شركت به كار گرفته شده كه در آن با اضافه كردن حافظه كاشه، استفاده از پردازندهگرافیكی در دو مد گرافیكی و غیر گرافیكی به سهولت امكان پذیر است: «هم اكنون پردازندهگرافیكی شباهت بسیاری به پردازندهمركزی پیدا كرده است و CUDA مسیر انعطاف پذیر و سادهای را برای دستیابی به كارایی شگفتانگیز نهفته شده در پردازندهگرافیكی برای برنامهنویسان به ارمغان میآورد».
تجربههای بسیار موفق به دست آمده در پروژه Folding@Home دانشگاه اِستَنفورد، مهر تاییدی بر كاربردی بودن این سبك جدید برنامهها است ، در این پروژهی عمومی كه سالهاست آغاز شده كامپیوترهای هزاران نفر از سراسر دنیا با همدیگر از طریق اینترنت متصل میگردد تا به كمك توان پردازشی پردازندهمركزی های خود، پروتئینهای موثر در ایجاد بیماریهای سرطانی و بیماریهای غددی را شبیهسازی كرده و محققین را در یافتن روشهای درمان آنها یاری كنند. چند ماه پیش با همكاری شركت ATI، نسخه آزمایشی از نرمافزاری عرضه شد كه در آن از توان پردازش كارتگرافیك كامپیوترهایی كه از طریق اینترنت به همدیگر متصل شدهاند به جای استفاده از پردازندهمركزی آنها در شبیهسازیها استفاده میكند. آخرین نتایج به دست آمده از این آزمایش جهش 20 الی 40 درصدی نرخ رشد پروژه را نشان میدهد، آرایهای از 536 كارتگرافیك با پردازندهگرافیكیی Radeon X1900 كه طی چند ماه به این پروژه پیوسته اند با 35 تریلیون محاسبه در ثانیه، سرعت پردازشی بیش از 17485 پردازندهمركزی شركت كننده با پلتفورم linux با حداكثر 21 تریلیون محاسبه در ثانیه ارائه كردهاند. افزایش عملكرد حاصل از بكارگیری پردازندهگرافیكی در برنامههای غیرگرافیكی، محققین و دانشمندان علوم كامپیوتر را مجذوب خود كرده به طوری كه روز به روز بر تعداد مقالات و تحقیقات حوزه GPGPU افزوده میشود، Denish Manocha یكی از اساتید تیم تحقیقاتی Gamma در دانشگاه كارولینا، در این مورد میگوید:
«حداكثر توان پردازشی پردازندهگرافیكی ها هر ساله 2 برابر رشد میكند، چرا كه صنعت بازیهای كامپیوتری انگیزه اقتصادی این رشد را فراهم كرده است».
همچنین ایشان به همراه همكار خود در دانشكده علوم كامپیوتر دانشگاه كارولینا، مدتهاست اقدام به برگزاری دورههای آموزشی ویژه محاسبات عمومی به كمك پردازندهگرافیكی كردهاند. این امر نوید آن را میدهد كه بهرهگیری از پردازندهگرافیكی در محاسبات عمومی به یكی از دروس استاندارد محافل آكادمیك تبدیل شود.
گروهی از محققین بر این باورند كه قدرت پردازشی بسیار بالای سوپركامپیوترها با بهره برداری از توان پردازشی پردازندهگرافیكیهایی كه برای صنعت بازیهای كامپیوتری توسعه یافتهاند، قابل دستیابی است. به گفته Vijay Pande مدیر پروژه Folding@Home «با بهرهبرداری از توان پردازشی پردازندهگرافیكی ها ما شاهد یك انقلاب واقعی بودیم كه هرگز قابل تصور نمیبود».
در این مقاله به كاربردهای كارتگرافیك در برنامههای عمومی اشاره شده كه در این كاربردها پردازنده گرافیكی به عنوان یك كمك پردازنده محاسباتی قدرتمند به خدمت گرفته میشود، علاوه بر این مقایسهای میان پردازنده گرافیكی و پردازنده مركزی صورت گرفته تا برتریهای نسبی پردازندههای گرافیكی مشخص گردد سپس به روشهای متداول برنامهنویسی عمومی پردازندهگرافیكی اشاره كوتاهی كرده و در انتها برخی از كاربردهای روش برنامهنویسی مذكور در برنامههای پردازش تصویر و بینایی ماشین بررسی شده است