CPU (واحد پردازش مرکزی) اغلب مغز کامپیوتر نامیده میشود اما به طور فزاینده ای این مغز توسط بخش دیگری از کامپیوتر ارتقاء می یابد، این بخش GPU (واحد پردازش گرافیکی) نام دارد که به نوعی روح کامیپوتر محسوب میشود.
تمام رایانه های شخصی دارای تراشههایی هستند که تصاویر را روی صفحه مانیتور، نمایش میدهند. اما همه این تراشهها یکسان نیستند. بعنوان نمونه، کنترلر گرافیک یکپارچه اینتل قابلیتهای گرافیکی پایه را فراهم میکند که تنها میتواند برنامههای کاربردی مانند پاورپوینت مایکروسافت، تصاویری با تفکیک پذیری کم و بازیهای ساده را نمایش دهد.
GPU اما جایگاه خود را دارد و فراتر از توابع کنترلکننده گرافیکی ساده عمل میکند و بعبارت دیگر یک پردازنده قدرتمند و مستقل برنامهپذیر محاسباتی محسوب می گردد.
GPU چیست ؟
GPU مخفف Graphics Processing Unit به معنای واحد پردازش گرافیگی، یک نوع خاص از ریز پردازندهها است که برای نمایش محتواهای گرافیکی بهینهسازی شده و انجام عملیاتهای پردازشی بسیار خاصی را عهدهدار است. GPU سرعت کلاک پائینتری نسبت به CPU دارد اما تعداد هستههای پردازشی آن چندین برابر است.
تقریبا میتوان GPU را یک CPU خاص در نظر گرفت که برای یک هدف بسیار مشخص ساخته شده است. رندر کردن ویدیو تماماً نیاز به عملیاتهای ساده ریاضی به تعداد و تکرار زیاد دارد، همان کاری که GPU به خوبی از پس آن بر میآیند. یک GPU هزاران هسته پردازشی دارد که همزمان در حال عمل هستند. هر هسته آن، که سرعت پائینتری نسبت به هسته CPU دارد، برای انجام عملیاتهای ساده مورد نیاز پردازش محتواهای گرافیکی، بهینهسازی شده است. این تقارن و هماهنگی عملکرد هزاران هسته، GPU را قادر میسازد تا پردازشهای سنگین موجود در بازی های مدرن امروزی مانند ویدیوهای ۳D یا سه بعدی را انجام دهند.
قابلیت های پیشرفته GPU بدواً در تصویرسازی بازیهای سه بعدی مورد استفاده قرار میگرفت. اما اکنون این قابلیتها به طور گسترده تر به منظور شتاب بخشیدن به عملیات محاسباتی به کار گرفته میشود از جمله مدل سازی مالی، تحقیقات علمی پیشرفته و همچنین اکتشافات نفت و گاز .
در مقاله اخیر نشریه BusinessWeek، قابلیتهای منحصر به فرد GPU چنین توصیف شده است: پردازندههای گرافیکی (GPU) برای انجام سریع عملیاتی یکسان، روی بستههای عظیم داده، بهینه سازی شدهاند بر خلاف ریز پردازندهها (CPU) که همه منظوره هستند و همه جای رایانه سرک میکشند.
GPU همجنین نقش بسیار مهمی در هوش مصنوعی مدرن ایفا میکند.
از نقطه نظر معماری کامپیوتر، یک پردازنده (CPU) از چند هسته به همراه تعداد زیادی حافظه نهان تشکیل شده است که میتواند همزمان چندین مجموعه دستورالعمل را اجرا کند. در مقابل، یک GPU متشکل از صدها هسته است که میتواند به طور همزمان هزاران مجموعه دستور (البته با طیفی محدودتر در مقایسه با CPU)* را اجرا کند. چنین قابلیتی به تنهایی، اجرای برخی برنامهها را تا ۱۰۰ برابر سریع تر میکند. علاوه بر این، پردازنده گرافیکی (GPU) در حالی این شتاب را ایجاد میکتد که در مصرف انرژی، بهینهتر و از نظر هزینه نیز مقرون به صرفه تر از CPU است.
رواج کاربرد فراگیر GPU
امروزه بواسطه پشتیبانی نسخههای جدید سیستم عاملهای اپل (به همراه Open CL) و مایکروسافت (بر مبنای Direct Compute) از قابلیت شتاب دهنگی پردازش GPU، کاربرد آن بسیار فراگیر شده است و دلیلش چنانکه پیشتر اشاره شد قدرت پردازشی و همچنین رشد سریعتر قابلیتهای آن در مقایسه با پردازندههای x86 است
در رایانه های شخصی امروزی، پردازشگر گرافیکی یا GPU می تواند بسیاری از وظایف چند رسانه ای را نظیر شتابدهی به ویدپوهای فلش ادوبی، تبدیل فرمتهای گوناگون تصاویر ویدئویی به یکدیگر، تشخیص تصویر، تطبیق الگوی ویروسی… بر عهده گیرد. هنوز مشکلات پیچیدهتری باید حل شوند آنهایی که دارای طبیعت موازی ذاتی هستند نظیر پردازش تصویر، تجزیه و تحلیل تصویر و پردازش سیگنال …
ترکیبی از CPU و GPU میتواند بهترین سیستم را از نظر عملکرد و قیمت ارائه دهد.
چه تفاوتی میان CPU و GPU وجود دارد؟
GPU هسته های بیشتر با سرعت کمتر دارد.
یک GPU تنها کسری از عملیاتهای یک CPU را انجام میدهد اما با سرعتی بسیار بالا. GPU با بهرهگیری از صدها پردازنده، محاسباتی که باید به سرعت انجام شوند را برای هزاران پیکسل به صورت همزمان انجام میدهد که نهایتاً نمایش ویدیوهای ۳D را ممکن میکند. هرچند سرعت GPU بسیار بالا است اما تنها عملیاتهای بسیار ساده را اجرا میکند.
برای مثال GPU مدرن Nvidia GTX 1080 مجهز به ۲۵۶۰ هسته سایهزن است. به لطف این هستهها میتواند ۲۵۶۰ دستورالعمل یا عملیات را به در یک سیکل کلاک پردازش کند. زمانی که میخواهید پیکسلهای صفحه نمایش را روشنتر کنید، عملکرد آن عالی است. برای مقایسه میتوان به پردازشگر چهار هستهای Intel Core-i5 اشاره کرد که تنها چهار دستورالعمل همزمان در هر سیکل کلاک پردازش میکند (عبارت core-i5 نام تجاری این پردازنده است و هیچ ارتباطی به تعداد هستههای پردازشی آن ندارد(.
به هر حال CPU عملکرد بسیار منعطفتری دارد. CPU ها مجموعه دستورالعملهای بسیار بزرگتری دارند پس کارهای بسیار بیشتر و وسیعتری انجام میدهند. همچنین با سرعت کلاک بسیار بالاتری، توانایی مدیریت ورودی و خروجیهای تمام اجزای کامپیوتر را دارد. مثلاً CPU میتواند حافظه مجازی (virtual memory) را مدیریت کند که در عملکرد سیستمهای مدرن ضروری است. این کاری نیست که GPU از پس آن بر بیاید.
در این تصویر تفاوت سایز میان CPU و GPU در کنسول Nintendo Wii U مشخص است.
GPU دیگر چه توانایی هایی دارد؟
هر چند GPU در پردازش ویدیوها عالی است اما توانایی انجام بیشتر از این را دارند. گرافیگها تنها یک نوع از انواع پردازشگرهای تکرارکننده با عملکرد موازی هستند. عملیاتهایی مانند برخی از شبکههای مجازی و بازیابی پسوردها هم از همان محاسبات ساده ریاضی به تعداد بسیار زیاد استفاده میکند. به همین دلیل گاهاً برخی از GPU برای اجرای عملیاتهایی غیر از پردازش گرافیگی استفاده میکنند. این کار به عنوان GPU Computation شناخته میشود.
و در نهایت
CPU و GPU هر دو یک هدف دارند و تنها برای کاربردهای متفاوتی بهینهسازی شدهاند. یک کامپیوتر خوب به هر دوی آنها احتیاج دارد.
CPU و GPU چه تفاوتی دارند؟
1. تعداد هستههای GPU نسبت به CPU بسیار بیشتر است
2. GPU دستورالعملهای ساده را انجام میدهد اما به تعداد و با تکرار بسیار زیاد
3. سرعت کلاک CPU از GPU بیشتر است
4. GPU برای نمایش محتویات گرافیکی بهینهسازی شده است اما CPU محدودیتی ندارد