پردازنده های گرافیکی (GPU)
اشاره :
سختافزارهای گرافيكي در ده سال گذشته نسبت به
كنترلكنندههاي ساده صفحه نمايش و سایر پردازش کننده
های تخصصي به حد كمال رسيده و رشد چشمگيرتري داشته
است، بطوریکه مقدار حافظه به كار رفته در آنها از
چند كيلو بايت به صدها مگابايت رسيده است. اما سوال
اين است كه يك كارت ويديويي جز مصارف بازی های
کامپیوتری و یا احیانا استفاده از آخرین بسته های نرم
افزار CAD چه کاربرد دیگری نیز می تواند داشته باشد؟
واحدهاي پردازش مركزي (CPU) پردازندههاي همهمنظورهاي هستند (در مورد CPUها مقالات متعددی در سایت میکرو رایانه وجود دارد، به فهرست مقالات رجوع کنید) كه اصولا براي انجام عملیات و محاسبات عمومي طراحي شدهاند و الزاما براي كنار آمدن با عملياتي كه به منظور بازسازي، اعمال بافت، نور پردازي و رسم سايهها در صحنههاي سه بُعدي موردنياز است، بهينه نميشوند.
ايده توليد واحدهاي تخصصي براي
پردازش و كار با اين نوع عمليات گرافيكي، از اوايل دهه
1990 بهوجود آمد. اما در ابتدا آنها فقط برای کارهای
گرافیکی مدرن مورد استفاده قرار می گرفت تا اینکه شرکت
3DFX (که هم اکنون NVIDIA نامیده می شود) ارائه تراشه
های ارزان قیمتی را شروع کرد که قابل نصب در
کامپیوترهای شخصی و تجاری بودند.
سختافزارهاي گرافيكي امروزي بسيار پيچيده هستند. اين
نوع سختافزارها معمولا شامل واحدهاي پردازش فوق
تخصصي (GPU) با چندين شاخه اجرايي و حافظه سريع (VRAM)
به منظور بافر نمودن و نیز مجموعه ایی از دستورالعمل
های معین هستند. که این مجموعه دستورالعمل ها، اغلب
دستورالعمل هایی کلی با عملیات متعدد به صورت پردازش
بُرداري و ماتریسی عمل می کنند. به این گونه
دستورالعمل ها SIMD گفته می شود. (Single Instruction
Multiple Data)
البته واقعیت این است که کامپیوترهای شخصی مدرن، اغلب
حاوی یک یا چند دستورالعمل SIMD هستند که شامل MMX
،SSE، 2SSE،3DNOW می شوند، اما عملكرد آنها ممكن است
به خوبي آنچه كه كارتهاي ويديويي ارائه ميدهند،
نباشد. با اين حال همه چيز آنطور كه بهنظر ميرسد،
ساده نيست. سخت افزارهای گرافیکی برای ارتباط با بقیه
سیستم از طریق پورت های AGP، PCI دارای پهنای باند
محدودی هستند. بنابراين، درگاههاي (پورت) فوق در
هنگام انتقال دادهها به درون يا خارج از سيستم
گرافيكي، مانند يك تنگه عمل ميكنند.
اکنون سوال این است که آیا واقعا می توان با استفاده
از GPU ، کار واحد پردازش مرکزی را انجام داد؟ پاسخ
این است که این کار دارای محدودیت هایی است:
1)مجوعه دستورالعمل های محدود است، که ممکن است به
کار گیری بعضی از الگوریتم ها را مشکل کند.
2) در اختیار قرار دادن رشته های اجرای چند گانه
(تا 24 رشته در مدل های جدید)، بنابراین پردازش موازی
از اهمیت خاصی برخوردار خواهد بود.
3) SIMD بودن اغلب دستورالعمل ها. بنابراین رفع
مشکلاتی که به سادگی از طریق ماتریس ها قابل حل
نیستند، برای GPU نیز آسان نخواهد بود.
4) پهناي باند محدود ارتباط دهنده سختافزار
گرافيكي و واحد پردازش مركزي اصلي. اين امر ايجاب می
کند كه برنامه نویسان کدی را طراحی کنند که مکان یابی
دقیق برای به حداقل رساندن مقدار داده ها در کد مبادله
شده بین GPU و بقیه سیستم را ارائه دهد.
برخی از مشکلاتی که می توان آنها را با استفاده از
GPU به شکلی مناسب حل کرد، پردازش سیگنالهای دیجیتالی
، بازسازی صحنه و پردازش حجمی تصاوبر است. هرچند برخی
از الگوریتم های رایج تر مانند مرتب سازی و جستجوی
سریع بانک های اطلاعات و الگوریتم های مشابه و تشخیص
بافت در دید کامپیوتری را نیز می توان با GPU به کار
گرفت.
برای کسب اطلاعات بیشتر به سایت زیر مراجعه نمایید:
http://www.gpgpu.org
|