پردازنده (CPU) چه تفاوتی با پردازنده گرافیکی (GPU) دارد؟
CPU واحدی برای انجام پردازشهای اصلی در کامپیوتر است که از آن در مقالهی حاضر با عنوان پردازنده یاد میکنیم. GPU نیز واحدی برای پردازش گرافیکی با قابلیت انجام محاسبات ریاضی پیشرفته و یادگیری ماشینی است. این واحدها وظیفهای مشابه برعهده دارند که همان پردازش اطلاعات است.
درواقع، تفاوت اصلی CPU و GPU در نوع اطلاعاتی است که پردازش میکنند؛ بههمیندلیل، نمیتوان این دو را جایگزین دیگری کرد؛ اما استفاده از پردازنده و پردازندهی گرافیکی بهطور همزمان ترکیبی ایدئال برای کاربر فراهم میکند و بهترین عملکرد را بهارمغان میآورد.
پردازندهی گرافیکی گرافیکهای استفادهشده در بازیها، ویدئوها، محتوا و حتی هوش مصنوعی را پردازش و پردازنده نیز برنامههای عملکردی کامپیوتر مانند پردازشهای سیستمعامل را مدیریت میکند. از این واحد با عنوان مغز کامپیوتر یاد میکنند. GPU نمیتواند مانند CPU پردازشها را بهطور مداوم انجام دهد و برای عملکرد کاملاً متفاوتی ساخته شده است. درمقابل، CPU به حافظهی بیشتری برای پردازش درمقایسهبا GPU نیاز دارد.
آنچه در این مقاله میخوانید:
- واحد پردازش مرکزی (CPU) یا پردازنده چیست؟
- واحد پردازش گرافیکی (GPU) یا پردازندهی گرافیکی چیست؟
- شباهتها و تفاوتهای پردازنده و پردازندهی گرافیکی
- مزایا و معایب پردازنده چیست؟
- مزایا و معایب پردازندهی گرافیکی چیست؟
- آیا برای بازی وجود پردازندهی گرافیکی لازم است؟
کامپیوترها را میتوان بدون واحدی برای پردازش گرافیکی استفاده کرد؛ البته در این شرایط نباید انتظار عملکرد گرافیکی چشمگیر و قدرتمندی از این سیستم داشت؛ اما کامپیوترها بدون CPU نمیتوانند به حیات خود ادامه دهند و دادههای ورودی و خروجی را مدیریت و برنامهای را اجرا کنند. آنچه باعث میشود پردازندهی گرافیکی را بهعنوان واحدی مهم در کامپیوتر بشناسیم، قابلیت انجام پردازشهای موازی این واحد است که بهلطف تعداد هستههای قدرتمند بیشتر، پردازش بسیار سریع دادهها را امکانپذیر میکند.
واحد پردازش مرکزی (CPU) یا پردازنده چیست؟
واحد پردازش مرکزی یا پردازنده مغز هر کامپیوتر بهحساب میآید که پردازشها و محاسبات اصلی را در یک سیستم کامپیوتری هدایت میکند.
کامپیوترها بهکمک پردازش دادههای باینری (صفر و یک) کار میکنند و برای ترجمه این دادههای باینری به زبانی که برای نرمافزارها، گرافیکها، انیمیشنها و فرایندهای دیگر مفهوم باشد، به عملکرد منطقی پردازنده نیاز داریم. این عملکردهای منطقی توابع اساسی حسابی و منطقی (AND و OR و NOT) و عملیات ورودی و خروجی را شامل میشوند. برای مثال، هنگامیکه برنامهای را میبندید یا اجرا میکنید، پردازنده دستورالعملهای صحیح را برای فراخوانی اطلاعات از هارد دیسک ارسال و کدهای اجرایی را از رم اجرا میکند.
هنگام انجام بازیها، پردازنده اطلاعات گرافیکی را برای نمایش روی نمایشگر پردازش و هنگام کامپایل کد و پردازنده تمام محاسبات و ریاضیات مربوط به آن کد را مدیریت میکند. بهطورکلی، پردازنده یا CPU مغز کامپیوتر است که اطلاعات را دریافت و پردازش و محاسبه میکند و به مسیری مناسب انتقال میدهد. هر پردازنده از چند مؤلفهی استاندارد زیر تشکیل شده است:
- هسته(ها): معماری اصلی پردازنده بهطور مستقیم به هستههای (Cores) آن مربوط میشود که تمام محاسبات و پردازشهای منطقی در آن اتفاق میافتد. هستهها از آنچه «چرخهی دستورالعمل» نامیده میشود، پیروی میکنند. در این چرخه، دستورالعملها از حافظه فراخوانی (واکشی) و به زبان پردازش رمزگشایی (decode) و ازطریق توابع منطقی هسته اجرا میشوند. در ابتدای توسعه، همهی پردازندهها تکهستهای بودند و بهمرور با گسترش پردازندههای چندهستهای، قدرت پردازشی این واحدها نیز افزایش یافت.
- حافظهی کش: حافظه کش حافظه بسیار سریعی است که داخل پردازنده یا روی بردی نزدیک به آن قرار دارد و امکان دسترسی سریع به دادههای موردنیاز را برای پردازنده فراهم میکند. هرچه ظرفیت حافظهی کش (Cache) پردازنده بیشتر باشد، این واحد میتواند محاسبات بیشتری را در ثانیه پردازش کند. بههمیندلیل، امروزه در پیکربندی هر CPU لایههای مختلفی از حافظهی کش قرار داده میشود: L1 (سریعترین) و L2 و L3 (کندترین). پردازنده اطلاعاتی که به سریعترین دسترسی نیاز دارند، در لایهی اول حافظهی کش یا L1 ذخیره میکند. حافظهی کش سطح یک (L1) سریعترین و کمظرفیتترین و نزدیکترین حافظه به پردازنده است و مهمترین دادههای موردنیاز برای پردازش را در خود ذخیره میکند. دادههایی با اولویت بعدی دسترسی در L2 و L3 ذخیره میشوند. حافظهی کش سطح دو (L2) یا حافظهی کش خارجی درمقایسهبا L1 سرعت کمتر و حجم بیشتری دارد و حافظهی کش L3 نیز حافظهای است که در پردازنده بین تمام هستهها مشترک است و درمقایسهبا L1 و L2 حجم بیشتر و سرعت کمتری دارد. پردازنده دادههایی با کمترین اولویت را به رم یا هارد دیسک منتقل و آنها را در موقع لزوم از رم اصلی (DDR) فراخوانی میکند.
- واحد مدیریت حافظه: واحد مدیریت حافظه (MMU) انتقال داده بین پردازنده و رم را در طول فرایند چرخهی دستورالعمل کنترل میکند.
- فرکانس پردازنده و واحد کنترل: هر پردازنده محاسبات و پردازشها را با فرکانسی مشخصی انجام میدهد. این فرکانس تعداد پالسهای الکتریکی تولیدشده در بازهی زمانی معین (یک ثانیه) را نشان میدهد و روش اصلی پردازش و انتقال دادهها و سرعت عملکرد پردازنده را تعیین میکند. هرچه فرکانس پردازندهای بیشتر باشد، پردازشها را سریعتر انجام میدهد.
ترکیب ایدئالی از تمام این مؤلفهها شرایطی را فراهم میکند که واحد پردازش مرکزی بتواند محاسبات موازی را با سرعت زیاد انجام دهد. با همین فرایند کامپیوترها همزمان چندین برنامه را اجرا میکنند، دسکتاپ را نمایش میدهند، امکان وبگردی را فراهم میکنند و… . بهطورکلی، میتوان گفت پردازندهها بهگونهای برنامهریزی شدهاند که بتوانند علاوهبراینکه یک کار را با کمترین تأخیر و بیشترین سرعت انجام میدهند، خیلی سریع هم بین عملیات جابهجا شوند. درواقع، نحوهی پردازش در CPUها سریالی است.
واحد پردازش گرافیکی (GPU) یا پردازندهی گرافیکی چیست؟
پردازندههای گرافیکی عملکردی مشابه با پردازندهها دارند و از مؤلفههای مشابهی هم (هسته و حافظه و سایر اجزا) تشکیل شدهاند. مهمترین برتری GPU بر CPU را میتوان قابلیت مدیریت همزمان چندین کار و پردازش موازی دادهها بهلطف تعداد هستههای فراوان آن دانست. درواقع، شاخصترین عملکردی که GPUها ارائه میدهند، یکی از وظایف پیچیده پردازشی است که CPU بهسختی ازپسِ آن برمیآید.
مسئلهای که در پردازش گرافیک مطرح میشود، محاسبهی موازی ریاضیات پیچیدهای است که برای رندر گرافیکی فراخوان میشوند. برای مثال، بازیای ویدئویی با گرافیکی پیچیده ممکن است در بازهای مشخص صدها یا هزاران چندضلعی را روی نمایشگر رندر کند که هرکدام حرکت، رنگ، نور و… مجزایی را دارند. ازآنجاکه پردازندهها برای تحمل چنین حجم کاری ساخته نشدهاند، واحدهای پردازش گرافیکی (GPU) وارد عمل میشوند.
هستههای پردازندههای گرافیکی معمولاً از هستههای پردازندهها عملکرد ضعیفتری دارند و خود پردازندههای گرافیکی نیز معمولاً در تعامل با APIهای سختافزاری چندان موفق عمل نمیکنند. همانطورکه گفته شد، GPUها بهطور خاص در پردازش همزمان حجم زیادی از دادهها عملکرد شاخصی دارند، این واحد پردازشی بهجای جابجایی بین چندین کار، بهسادگی دستورالعملها را دستهدسته دریافت و آنها را در حجم فراوان پردازش میکند و درنهایت، گرافیک مدنظر را نمایش میدهد.
شباهتها و تفاوتهای CPU و GPU
با مقایسهی معماری کلی پردازندهها و پردازندههای گرافیکی میتوان شباهتهای زیادی بین این دو واحد پیدا کرد. این واحدها از ساختارهای مشابهی در لایههای کش بهره میبرند و هر دو از کنترلری برای حافظه و یک رم اصلی استفاده میکنند. تصویر زیر تعداد هستههای یک پردازنده و تعداد هستههای یک پردازندهی گرافیکی را نشان میدهد:
نمای کلی از معماری پردازندههای مدرن حاکی از آن است که در این واحد با تمرکز بر حافظه و لایههای کش، دسترسی به حافظه با تأخیرِ کم مهمترین عامل در طراحی پردازندهها بهحساب میآید. ناگفته نماند چیدمان دقیق به فروشنده و مدل پردازنده بستگی دارد. پردازندههای گرافیکی درمقایسهبا پردازندهها، لایههای حافظهی کش کمتر و کمظرفیتتری دارند. این واحدها از ترانزیستورهای بیشتری برای محاسبات بهره میبرند و بازیابی دادهها از حافظه در آنها اهمیت زیادی ندارد.
پردازندهی گرافیکی با رویکرد انجام محاسبات موازی توسعه داده شده است و محاسبات با کارایی بالا (High Performance Computing) یکی از کاربردهای مؤثر و مطمئن در پردازشهای موازی برای اجرای برنامههای کاربردی پیشرفته است. فرض کنید برای انجام نوعی محاسبات سنگین، تعداد کمی هستهی قدرتمند با قابلیت پردازش سریالی داشته باشد.
در چنین شرایطی، اگر یکی از هستهها را از دست بدهیم، عملکرد دو هستهی دیگر تحتالشعاع قرار خواهد گرفت و قدرت پردازش کلی نیز بهشدت کاهش خواهد یافت. اگر هستههای زیاد و نهچندان قدرتمندی داشته باشیم که بتوانند چندین پردازش را همزمان انجام دهند، درصورت ازدستدادن یکی از آنها، تغییر محسوسی در روند پردازش بهوجود نمیآید و باقی هستهها به کار خود ادامه میدهند.
علاوهبراین، پهنای باند پردازندههای گرافیکی از پهنای باند پردازندهها بسیار بیشتر است و پردازشهای موازی با حجم فراوان را خیلی بهتر انجام میدهند. همانطورکه گفتیم، مهمترین مسئله دربارهی پردازندههای گرافیکی این است که پردازشهای موازی را بهخوبی انجام میدهند و درصورتیکه الگوریتم یا محاسبات سری باشد و قابلیت موازیسازی نداشته باشند، اصلاً اجرا نمیشوند و باعث کُندی سیستم میشوند. هستههای پردازنده از هستههای پردازندههای گرافیکی قدرتمندتر هستند و پهنای باند این واحد نیز از پهنای باند GPU بسیار کمتر است.
مزایا و معایب پردازنده یا CPU چیست؟
با اینکه امروزه پردازندههای گرافیکی بهطور فزایندهای به ابزاری برای پردازش با کارایی بالا تبدیل شدهاند، هنوز دلایل متعدد و مهمی وجود دارد که نمیتوان از این واحدها بهعنوان جایگزینی برای پردازندهها استفاده کرد. برخی از این دلایل عبارتاند از:
- انعطافپذیری در انجام پردازشهای مختلف: پردازندهها میتوانند بهغیر از پردازشهای گرافیکی، پردازشها و محاسبات دیگری را هم انجام دهند. قابلیت پردازش سریالی این امکان را برای پردازندهها فراهم میکند تا بتواند چندین کار را در زمینههای مختلف مدیریت کنند؛ بنابراین، پردازندهای قدرتمند میتواند سرعتی بیشتر از پردازندهای گرافیکی در کاربری عادی ارائه دهد.
- سرعت در پردازشهایی خاص: پردازندهها گاهی در برخی شرایط بهتر از پردازندههای گرافیکی عمل میکنند. برای مثال، CPU در مدیریت چندین نوع مختلف عملیات سیستم بسیار سریعتر از GPU عمل میکند.
- دقت در انجام محاسبات: پردازندهها محاسبات معادلات ریاضی متوسط را با دقت بیشتری انجام میدهند و میتوانند عمق و پیچیدگی محاسباتی را راحتتر کنترل کنند. این قابلیت در راهاندازی برخی برنامههای خاص، اهمیت زیادی دارد.
- دسترسی به حافظه: ازآنجاکه حافظهی کش پردازندهها ظرفیت فراوانی دارد، این واحدها میتوانند مجموعه بزرگتری از دستورالعملهای خطی و درنتیجه، سیستمها و عملیات محاسباتی پیچیدهتری را انجام دهند.
- هزینه اندک و دردسترس بودن: پردازندهها برای کاربری معمولی و سازمانی راحتتر دردسترس است و بهطور گستردهتر تولید میشوند و مقرونبهصرفهتر هم هستند.
پردازندهها علاوهبر مزایایی که درمقایسهبا پردازندههای گرافیکی ارائه میدهند، معایبی هم دارند:
- ناتوانی در انجام پردازش موازی: پردازندهها نمیتوانند پردازش موازی را بهخوبی پردازندههای گرافیکی انجام دهند، بنابراین، استفاده از این واحدها برای پردازش هزاران یا میلیونها عملیات یکسان کارآمد نخواهد بود.
- روند آهستهی تکامل: مطابق با قانون مور، توسعهی پردازندههای قدرتمندتر روزبهروز کُندتر میشود و روند بهبود آنها نیز هر سال درمقایسهبا سال گذشته آهستهتر خواهد بود؛ البته گسترش پردازندههای چندهستهای تا حدودی این نگرانی را کاهش داده است.
- ناسازگاری با برخی سیستمها: هر سیستم یا نرمافزاری با هر پردازندهای سازگار نیست. برای مثال، برنامههای توسعهدادهشده برای پردازندههای x86 اینتل روی پردازندههای ARM اجرا نمیشوند. البته این مشکل آنچنان دردسرساز نیست؛ چراکه امروزه دیگر بیشتر تولیدکنندگان از مجموعههایی استاندارد برای توسعهی نرمافزارهای خود استفاده میکنند.
مزایا و معایب پردازنده گرافیکی یا GPU چیست؟
امروزه، پردازندههای گرافیکی جایگاه روبهرشدی در میان کاربران و سازمانهایی پیدا کردهاند که بهدنبال استفاده از محاسبات با کارایی بالا برای رفع مشکلات منحصربهفرد هستند. دو مزیت اصلی GPUها درمقایسهبا CPUها عبارتاند از:
- توان عملیاتی بالا: پردازندهی گرافیکی از تعداد زیادی هسته تشکیل شده است که میتوانند عملیات یکسانی را بهصورت موازی انجام دهند و درمقایسهبا پردازندهها، حجم دادههای بسیاری را با سرعتی بسیار زیاد پردازش کنند.
- محاسبات موازی گسترده: همانطورکه گفتیم، پردازندهها محاسبات پیچیده را بهتر از پردازندههای گرافیکی انجام میدهند؛ بااینحال، پردازندههای گرافیکی در انجام محاسبات گستردهای برتری دارند که در آنها عملیات مشابه متعددی تکرار میشوند.
علاوهبر دو مزیت گفتهشده، ساختار GPU باعث میشود تا توسعهدهندگان و مهندسان از فناوری این واحد برای اجرای برخی برنامههای کاربردی با کارایی بالا استفاده کنند:
- استخراج بیت کوین: فرایند استخراج بیتکوین به قدرت محاسباتی بسیاری برای حل هشهای رمزنگاری پیچیده نیاز دارد. توان عملیاتی فراوان و انرژی موردنیاز نسبتاً اندک پردازندههای گرافیکی، این واحدها را برای انجام فرایند استخراج که بهتازگی نیز طرفداران زیادی پیدا کرده است، به ابزاری مناسب تبدیل کرده است.
- یادگیری ماشینی: پردازندههای گرافیکی مدرن در یادگیری ماشینی کاربرد دارند. یادگیری ماشین شکلی از تجزیهوتحلیل داده است که ساخت مدلهای تحلیلی را بهصورت خودکار انجام میدهد. در اصل، یادگیری ماشینی از دادهها برای یادگیری و شناسایی الگوها و تصمیمگیریهایی مستقل از ورودی انسان استفاده میکنند و بهدلیل ماهیت بسیار پرمصرف این سیستم و نیاز به پردازشهای موازی آن، پردازندههای گرافیکی را میتوان جزئی ضروری از این فناوری دانست.
آیا برای بازی وجود جیپییو لازم است؟
بهرهمندی از پردازندهای گرافیکی میتواند در تجربهی کاربری گیمرها تغییر چشمگیری ایجاد کند. این واحد در ارائهی محتوای گرافیکی و ویدئویی استفاده میشود و هنگام بازی میتواند عملکردی تأثیرگذار داشته باشد. علاوهبراین، پردازندهی گرافیکی پردازشها را با سرعتی زیاد انجام میدهد و با این کار از حجم کاری پردازنده کم میکند.
این بدانمعنی است که عملکرد کلی کامپیوتر افزایش مییابد و بازیها با کیفیت بهتر و روانتری اجرا میشوند. امروزه، توسعهدهندگان بازیها تلاش میکنند تا گرافیکهای محصولاتشان تجربهای واقعی را برای گیمرها تداعی کنند؛ پس میتوان گفت برای رندرهای بهتر و طبیعیتر وجود پردازندهای گرافیکی ضروری است.