بيشتر كاربران چندان توجه و علاقهاي به نوع كارت گرافيكي و GPU كه در تركيب پيكربندي رايانهشان وجود دارد، ندارند. تنها كاربراني مانند بازيخورهاي حرفهاي يا مصرفكنندگان برنامههاي كاربردي سنگين هستند كه نوع كارت گرافيكي براي آنها حائز اهميت است.
اما اين روزها GPU، براي انجام كارها و مقاصد ديگري بهغير از نگاشت پسزمينه و رندر كردن بازيهاي رايانهاي سهبعدي مورد استفاده قرار ميگيرد. كاربردها و قابليتهايي كه نهتنها براي شتاب دادن به فرآيند ايجاد گرافيكهايي با كارآيي بالا موثرند، بلكه در انجام بسياري از كارهاي ريز و درشت و سبك و سنگين نيز بسيار خوب عمل كرده و از سرعت و چالاكي كافي برخوردارند.
دانشمندان علوم رايانه سرمايهگذاري روي فناوري پردازش گرافيكي را آغاز كردهاند تا رايانههاي امروزي بتوانند خيلي روانتر از گذشته كار كنند؛ از برنامههاي نرمافزاري كاربردي پيچيده مورد استفاده براي يافتن پسوردهاي گمشده مدارك رمزگذاري شده گرفته تا ابررايانههايي كه در نوع خود شاهكاري هنري بوده و شبيهسازي غيرقابل باور مواد شيميايي را هدف قرار دادهاند.
تاريخچه پردازش گرافيكي
اوايل رواج استفاده از محاسبات رايانهاي و رايانههاي شخصي، اصلا چيزي بهعنوان GPU وجود نداشت، پردازنده مركزي مسووليت قرار دادن تصاوير روي صفحه نمايش را بر عهده داشت و پردازش ساده بود. در وجه گرافيك در دوران پيش از ويندوز (كه فقط توانايي توليد تصاوير متني محض را داشت) ناحيهاي از حافظه سيستم طراحي شده بود تا تحت عنوان حافظه گرافيكي كار كند.
برخلاف حافظه رم معمولي، حافظه گرافيكي متشكل از نوع خاصي از حافظه به نام رم دو درگاهه (dual-port) بود. اين حافظه، هم براي پردازنده و هم براي سختافزار مسووليت قرار دادن تصاوير روي صفحه نمايش را داشت و هر بخش از آن حافظه، به يك پيكسل مشخص روي صفحه نمايش وابسته بود. بهعنوان مثال، براي رسم يك خط از بالاي سمت چپ صفحه نمايش تا پايين سمت راست آن، پردازنده نقاطي را كه روي خط هستند از كار درآورده و پس از آن، براي هر نقطه يك عدد در مكان متناظر مربوط به آن روي حافظه گرافيكي مينوشت. سپس سختافزار گرافيكي هر يك از آن پيكسلها را روشن ميكرد تا خط را تشكيل دهند.
اولين كارت گرافيكي رايانه كه بهجز ايجاد متون ساده قادر به توليد تصاوير گرافيكي نيز بود، هماهنگكننده گرافيك رنگي1 يا CGA ناميده ميشد. بالاترين تفكيكپذيري صفحه نمايش آن در حالت گرافيك، 640 در 200 پيكسل بود، اما اين تفكيكپذيري فقط در حالت تكرنگ قابل دسترس بود. حالت گرافيك رنگي آن، تنها اجازه ايجاد 4 رنگ را ميداد اما در اين حالت فقط تفكيكپذيري 320 در 200 ارائه ميشد. البته قدرت پردازشي مورد نياز براي اين تفكيكپذيريها بههيچوجه قابل مقايسه با حدي از نيروي پردازش گرافيكي كه لازم است تا از عهده تفكيكپذيري 2560 در 1600 پيكسلي 7/16 ميليون رنگي صفحه نمايشهاي امروزي برآيد، نيست بهويژه مفهومي كه امروزه ما از گرافيك سه بعدي درك كردهايم، در دوران CGA، تنها يك روياي دست نيافتني بود.
دهه 1980 و 1990 شاهد ظهور و صعود رابط كاربري گرافيكي2 يا GUI بود و كنترل دسكتاپ رايانه از طريق يك ماوس جايگزين ورودي متني شد. همچنانكه اين مدل كاربرد رايانه در بين مردم متداولتر ميشد، بتدريج گرافيك از صورت يك بخش اضافي درآمد و تفكيكپذيري نيز افزايش يافت. فناوريهاي گوناگوني پا به ميدان گذاشتند تا كار اضافي كه بر دوش پردازنده گذاشته شده بود را كاهش دهند.
هنگامي كه شتاب دادن به سختافزار گرافيكي3 پديدار و متداول شد، براي اولينبار پردازنده ميتوانست دستورالعملهاي سادهاي چون: "يك خط آبي از نقطه (0،0) تا نقطه (1023،767) ترسيم كن" را بهجاي اجبار براي از كار درآوردن همه و هر يك از پيكسلها در امتداد آن خط، صادر كند. كارتهاي گرافيكي ابتدايي كه اجزاي جانبي را بهكار ميگرفتند، راه را براي پردازشگرهاي سفارشي طراحي شده گرافيك دو بعدي هموار ساختند تا سرانجام به پديد آمدن پردازشگرهاي گرافيكي سه بعدي امروزي انجاميد. امروزه ما شاهد ظهور پردازندههايي هستيم كه ميتوانند در جهتي هوشمندانه برنامهريزي شده و دستورالعملهايي را بهترتيب اجرا كنند، اما سختافزار آنها بايد بهصورت مناسب و اختصاصي ساخته شود تا پاسخگوي ملزومات گرافيك سه بعدي باشد.
مقايسه كار يك GPU با پردازنده
اگرچه GPUها در اصل براي برنامههاي كاربردي مخصوصي كه بهقصد توليد گرافيك سه بعدي كاربرد دارند، ساخته شدهاند اما يك GPU در نهايت فقط يك پردازنده است كه وظايفي كه در محاسبات رياضي و منطقي دخالت دارند را انجام ميدهد و از اينرو به پردازنده اصلي مركزي شباهت دارد.
براي اينكه بفهميم چه چيزي اينقدر GPU را مهم و تكاليف آن را خطير ميسازد، بايد به ويژگيهايي كه آن را از ريزپردازنده با كاربرد در مصارف عمومي متفاوت ميكند، نگاهي بيندازيم.
واضحترين تفاوت آنها، تعداد هستههاي آنهاست. پردازندههاي x
86 امروزي كه در رايانههاي ما هستند، 1،2،3،4 يا 6 هسته دارند و انواعي مانند Core i7 نيز فناوري ابرچندنخي4 را بهكار ميبرند تا تعداد هستههايشان را 2 برابر كنند.
مهندسان اين صنعت بر اين عقيدهاند كه در كوتاهمدت پردازندههاي معمولي خيلي فراتر از اين حد نخواهند رفت. دليل آنهم به محاسبات رايانهاي با كاربري عمومي برميگردد. در همين حال، قانون كاهش بازده5 پا به ميدان ميگذارد. اين قانون بر اساس اين حقيقت است كه با افزايش تعداد هستهها، سپردن موقت كارها به همه هستهها به شيوهاي كارآمد و با حفظ كارايي، مشكلتر ميشود. در واقع افزودن هستههاي اضافي مستلزم درگير شدن مديريت اضافي است كه بايد در امر محول كردن وظايف مختلف و اجتناب از ايجاد تنگناها صورت بگيرد.
اين امر، بهجاي سرعت بخشيدن به فرآيند پردازش ممكن است موجب آهستهتر كردن روند آن شود. پردازشگر گرافيكي داراي واحدهاي محاسباتي متعددي است كه حجم بسيار زيادي از دادهها را در كوتاهترين زمان بهطور موازي پردازش ميكند. در چند سال اخير پردازندههاي گرافيكي بهعنوان هسته اصلي پردازش گرافيكي در كامپيوترها بسرعت توسعه مييابند. ريزپردازندهها و واحدهاي پردازشگر گرافيكي 4 تفاوت عمده به شرح زير دارند:
1ـ GPUها بهلطف معماري موازي خود، بسيار سريعتر از پردازندههاي مركزي هستند.
2ـ از نظر ملاك نسبت كارآيي به قيمت، GPUها ارزانتر هستند.
3ـ از نظر معيار نسبت كارايي به وات، GPUها توان مصرفي بسيار كمتري نسبت به پردازندههاي مركزي دارند.
4ـ پردازندههايگرافيكي تنها ميتوانند به پردازش سريع برنامههايي مانند بازيهاي رايانهاي، محاسبات پيچيده و سنگين بهصورت همزمان بپردازند كه توسط GPU بخوبي پردازش شده و افزايش عملكرد محسوسي نسبت به پيادهسازي بر پايه پردازنده مركزي خواهند داشت. بنابراين شما نميتوانيد يك GPUرا در اجراي برنامه ورد مجموعه آفيس، جايگزين يك پردازنده كنيد و از افزايش عملكرد و كارآيي بهرهمند شويد.
جمعبندي
با فراگير شدن فناوري پردازش گرافيكي، GPUها بتدريج خود را بهعنوان ابررايانههاي آينده اثبات ميكنند. در آيندهاي نزديك نهتنها ساختار نرمافزارها بلكه معماري پردازندههاي مركزي نيز متحول خواهد شد كه ما هماكنون شاهد جلوههاي آن در نمونههاي جديد پردازندههاي مركزي ادغام شده با واحد پردازنده گرافيكي و معماري يكپارچه آنها هستيم.
منابع
http://desinformado.com
http://hexus.net
http://ixbtlabs.com/articles2
پينوشت
1. Color Graphic Adapter
2. Graphical User Interface
3. Hardware Graphics Acceleration
4. hyper-threading
5. Diminishing returns
جواد ودودزاده