moji5
25th November 2009, 08:12 PM
اشتياق فراوان طرفداران بازيهاي كامپيوتري به بازيهاي زيبا و طبيعيتر، موجب بهوجود آمدن تحولات متعددي در كارتگرافيكها و فنآوريهاي وابسته به آن شده به طوري كه كارتگرافيكهاي مدرن ميتوانند به درمان سرطان كمك كنند! زمين لرزه برزگي در شهر سانفرانسيسكو را پيشبيني كنند و با فراهم آوردن توان پردازشي خارقالعاده، مسائل بسيار پيچيده محاسباتي و رياضي را به سادگي حل كنند. آيا تا كنون به اين موضوع فكر كردهايد كه كارتگرافيكهاي چندصد هزار توماني به غير از بازيهاي كامپيوتري در چه كاربردهاي ديگري به درد ميخورد؟
سالها است كه افزايش روز افزون عملكرد كارتگرافيكها، محققين را به فكر بهرهگيري از توان پردازشي آنها در كاربردهاي غيرگرافيكي انداخته است. در همين راستا شاخه جديدي در علوم كامپيوتر به نام GPGPU ايجاد گشته كه هدف نهايي فعالان اين عرصه بهرهگيري از كارتگرافيك به عنوان يك كمك پردازنده محاسباتي در برنامههاي غيرگرافيكي و برنامههاي عمومي است.
در همايش SuperComputing 2006 كه در شهر Tampa ايالت فلوريدا برگزار شد، محققين دانشگاه كارولينا نتايج آزمايشهاي گسترده خود را در مورد مقايسه عملكرد پردازندهگرافيكي(GPU) با پردازندهمركزي (CPU) منتشر كردند، پردازندهگرافيكي، نوعي پردازنده موازي است كه بر روي كارت گرافيكها قرار دارد (شكل 1). اين پردازنده به صورت كاملا اختصاصي براي پردازش گرافيكي محيطهاي سهبعدي و بازيهاي كامپيوتري طراحي شده است كه طي سالهاي گذشته توسط صنعت چند بيليون دلاري بازيهاي كامپيوتري آن چنان تحول يافته كه امروزه از نظر كارايي با پردازندهمركزي كه يك پردازنده همه منظوره به شمار ميرود رقابت ميكند. بكار گيري پردازندهگرافيكي در محاسبات عمومي جايگاه جديدي براي كارتگرافيكهاي قدرتمند ايجاد كرده است، جايي كه از پردازندهگرافيكي ديگر براي پردازش محاسبات گرافيكي بازيهايكامپيوتري استفاده نميشود، در عوض در نقش يك پردازنده كمكي، بخشي يا تمامي بار محاسباتي پردازندهمركزي را تقبل كرده و به عمليات پردازش سرعت ميبخشد.
http://www.sarirservice.com/Attach/SMMArticles/Sections/700/c072d7f8121bdabd1ad91fdbeba59c0a.jpg (http://www.sarirservice.com/index.php?Module=SMM&SMMOp=showImgs&SMM_CMD=&Path=./Attach/SMMArticles/Sections/700/c072d7f8121bdabd1ad91fdbeba59c0a.jpg)
شكل 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 «با بهرهبرداري از توان پردازشي پردازندهگرافيكي ها ما شاهد يك انقلاب واقعي بوديم كه هرگز قابل تصور نميبود».
در اين مقاله به كاربردهاي كارتگرافيك در برنامههاي عمومي اشاره شده كه در اين كاربردها پردازنده گرافيكي به عنوان يك كمك پردازنده محاسباتي قدرتمند به خدمت گرفته ميشود، علاوه بر اين مقايسهاي ميان پردازنده گرافيكي و پردازنده مركزي صورت گرفته تا برتريهاي نسبي پردازندههاي گرافيكي مشخص گردد سپس به روشهاي متداول برنامهنويسي عمومي پردازندهگرافيكي اشاره كوتاهي كرده و در انتها برخي از كاربردهاي روش برنامهنويسي مذكور در برنامههاي پردازش تصوير و بينايي ماشين بررسي شده است.
ويژگيهاي پردازندههايگرافيكي مدرن
پردازندهگرافيكي داراي واحدهاي محاسباتي متعددي است كه حجم بسيار زيادي از دادهها در كوتاهترين زمان به طور موازي پردازش ميكند. طي پنجسال گذشته استقبال مشتاقان بازيهاي كامپيوتري از كارتگرافيكهاي مدرن و قدتمند، موجب شده تا پردازندهگرافيكي ها به عنوان هستهي اصلي پردازش گرافيكي در كامپيوترها به سرعت توسعه يابند. چهار نكته اساسي در رابطه با پردازندهگرافيكيهاي مدرن وجود دارد كه قابليتهاي آنها را به خوبي ترسيم ميكند.
اول، پردازندههايگرافيكي به لطف معماري موازي خود، پردازندههاي بسيار سريعي هستند.
دوم، با توجه به ملاك كارايي به قيمت، ارزان هستند.
سوم، با توجه به ملاك كارايي به وات، آنها توان مصرفي بسيار كمتري نسبت به پردازندهمركزي ها دارند. شايد تعجب كرده باشيد و اين سوال در ذهن شما ايجاد شده باشد كه اگر پردازندهگرافيكي ها سريعتر، ارزانتر و كم مصرف تر از پردازندهمركزيها هستند چرا كامپيوتر به كمك يكي از آنها تمامي برنامههاي خود را اجرا نميكند!؟
پاسخ اين سوال در چهارمين نكته نهفته است كه محدوديتهاي پردازندهگرافيكي را به عنوان يك پردازنده اختصاصي بيان ميكند.
پردازندههایگرافيكي تنها قادر به پردازش سريع برنامههايي هستند كه همانند يك بازي كامپيوتري، محاسبات پيچيده و سنگين همزماني دارند. بنابراين شما نميتوانيد برنامه Word مجموعه Office را به كمك يك پردازندهگرافيكي اجرا كرده و از افزايش عملكرد آن لذت ببريد! چرا كه اين گونه برنامهها بيشتر از سوي دستگاههاي ورودي و خروجي محدود شدهاند تا از سوي پردازنده، به طور كلي برنامههايي كه نرخ محاسبات نسبت به نرخ ورودي و خروجي در آنها بسيار بزرگ بوده و داراي چگالي محاسباتي (Arithmetic Intensity) بالايي باشند به خوبي توسط پردازندهگرافيكي پردازششده و افزايش عملكرد محسوسي نسبت به پياده سازي بر پايه پردازندهمركزي خواهند داشت.
اكثر برنامههاي علمي از اين دسته هستند، به عنوان مثال برنامه حل دستگاه معادلات خطي، برنامهاي است كه چند معادله ساده از ورودي دريافت كرده و بعد از اعمال يك سري محاسبات پيچيده كه ممكن است ساعتها زمان ببرد، چند جواب به خروجي ارسال ميكند. اين دسته برنامهها كه علاوه بر كم بودن نرخ ارتباطات آنها، محاسبات سنگيني داشته و اغلب محاسبات آنها جنبه تكراري دارند، توسط پردازندهگرافيكي به خوبي پردازش ميشوند.
سالها است كه افزايش روز افزون عملكرد كارتگرافيكها، محققين را به فكر بهرهگيري از توان پردازشي آنها در كاربردهاي غيرگرافيكي انداخته است. در همين راستا شاخه جديدي در علوم كامپيوتر به نام GPGPU ايجاد گشته كه هدف نهايي فعالان اين عرصه بهرهگيري از كارتگرافيك به عنوان يك كمك پردازنده محاسباتي در برنامههاي غيرگرافيكي و برنامههاي عمومي است.
در همايش SuperComputing 2006 كه در شهر Tampa ايالت فلوريدا برگزار شد، محققين دانشگاه كارولينا نتايج آزمايشهاي گسترده خود را در مورد مقايسه عملكرد پردازندهگرافيكي(GPU) با پردازندهمركزي (CPU) منتشر كردند، پردازندهگرافيكي، نوعي پردازنده موازي است كه بر روي كارت گرافيكها قرار دارد (شكل 1). اين پردازنده به صورت كاملا اختصاصي براي پردازش گرافيكي محيطهاي سهبعدي و بازيهاي كامپيوتري طراحي شده است كه طي سالهاي گذشته توسط صنعت چند بيليون دلاري بازيهاي كامپيوتري آن چنان تحول يافته كه امروزه از نظر كارايي با پردازندهمركزي كه يك پردازنده همه منظوره به شمار ميرود رقابت ميكند. بكار گيري پردازندهگرافيكي در محاسبات عمومي جايگاه جديدي براي كارتگرافيكهاي قدرتمند ايجاد كرده است، جايي كه از پردازندهگرافيكي ديگر براي پردازش محاسبات گرافيكي بازيهايكامپيوتري استفاده نميشود، در عوض در نقش يك پردازنده كمكي، بخشي يا تمامي بار محاسباتي پردازندهمركزي را تقبل كرده و به عمليات پردازش سرعت ميبخشد.
http://www.sarirservice.com/Attach/SMMArticles/Sections/700/c072d7f8121bdabd1ad91fdbeba59c0a.jpg (http://www.sarirservice.com/index.php?Module=SMM&SMMOp=showImgs&SMM_CMD=&Path=./Attach/SMMArticles/Sections/700/c072d7f8121bdabd1ad91fdbeba59c0a.jpg)
شكل 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 «با بهرهبرداري از توان پردازشي پردازندهگرافيكي ها ما شاهد يك انقلاب واقعي بوديم كه هرگز قابل تصور نميبود».
در اين مقاله به كاربردهاي كارتگرافيك در برنامههاي عمومي اشاره شده كه در اين كاربردها پردازنده گرافيكي به عنوان يك كمك پردازنده محاسباتي قدرتمند به خدمت گرفته ميشود، علاوه بر اين مقايسهاي ميان پردازنده گرافيكي و پردازنده مركزي صورت گرفته تا برتريهاي نسبي پردازندههاي گرافيكي مشخص گردد سپس به روشهاي متداول برنامهنويسي عمومي پردازندهگرافيكي اشاره كوتاهي كرده و در انتها برخي از كاربردهاي روش برنامهنويسي مذكور در برنامههاي پردازش تصوير و بينايي ماشين بررسي شده است.
ويژگيهاي پردازندههايگرافيكي مدرن
پردازندهگرافيكي داراي واحدهاي محاسباتي متعددي است كه حجم بسيار زيادي از دادهها در كوتاهترين زمان به طور موازي پردازش ميكند. طي پنجسال گذشته استقبال مشتاقان بازيهاي كامپيوتري از كارتگرافيكهاي مدرن و قدتمند، موجب شده تا پردازندهگرافيكي ها به عنوان هستهي اصلي پردازش گرافيكي در كامپيوترها به سرعت توسعه يابند. چهار نكته اساسي در رابطه با پردازندهگرافيكيهاي مدرن وجود دارد كه قابليتهاي آنها را به خوبي ترسيم ميكند.
اول، پردازندههايگرافيكي به لطف معماري موازي خود، پردازندههاي بسيار سريعي هستند.
دوم، با توجه به ملاك كارايي به قيمت، ارزان هستند.
سوم، با توجه به ملاك كارايي به وات، آنها توان مصرفي بسيار كمتري نسبت به پردازندهمركزي ها دارند. شايد تعجب كرده باشيد و اين سوال در ذهن شما ايجاد شده باشد كه اگر پردازندهگرافيكي ها سريعتر، ارزانتر و كم مصرف تر از پردازندهمركزيها هستند چرا كامپيوتر به كمك يكي از آنها تمامي برنامههاي خود را اجرا نميكند!؟
پاسخ اين سوال در چهارمين نكته نهفته است كه محدوديتهاي پردازندهگرافيكي را به عنوان يك پردازنده اختصاصي بيان ميكند.
پردازندههایگرافيكي تنها قادر به پردازش سريع برنامههايي هستند كه همانند يك بازي كامپيوتري، محاسبات پيچيده و سنگين همزماني دارند. بنابراين شما نميتوانيد برنامه Word مجموعه Office را به كمك يك پردازندهگرافيكي اجرا كرده و از افزايش عملكرد آن لذت ببريد! چرا كه اين گونه برنامهها بيشتر از سوي دستگاههاي ورودي و خروجي محدود شدهاند تا از سوي پردازنده، به طور كلي برنامههايي كه نرخ محاسبات نسبت به نرخ ورودي و خروجي در آنها بسيار بزرگ بوده و داراي چگالي محاسباتي (Arithmetic Intensity) بالايي باشند به خوبي توسط پردازندهگرافيكي پردازششده و افزايش عملكرد محسوسي نسبت به پياده سازي بر پايه پردازندهمركزي خواهند داشت.
اكثر برنامههاي علمي از اين دسته هستند، به عنوان مثال برنامه حل دستگاه معادلات خطي، برنامهاي است كه چند معادله ساده از ورودي دريافت كرده و بعد از اعمال يك سري محاسبات پيچيده كه ممكن است ساعتها زمان ببرد، چند جواب به خروجي ارسال ميكند. اين دسته برنامهها كه علاوه بر كم بودن نرخ ارتباطات آنها، محاسبات سنگيني داشته و اغلب محاسبات آنها جنبه تكراري دارند، توسط پردازندهگرافيكي به خوبي پردازش ميشوند.