پردازنده (CPU) چه تفاوتي با پردازنده گرافيكي (GPU) دارد؟
CPU واحدي براي انجام پردازشهاي اصلي در كامپيوتر است كه از آن در مقالهي حاضر با عنوان پردازنده ياد ميكنيم. GPU نيز واحدي براي پردازش گرافيكي با قابليت انجام محاسبات رياضي پيشرفته و يادگيري ماشيني است. اين واحدها وظيفهاي مشابه برعهده دارند كه همان پردازش اطلاعات است.
درواقع، تفاوت اصلي CPU و GPU در نوع اطلاعاتي است كه پردازش ميكنند؛ بههميندليل، نميتوان اين دو را جايگزين ديگري كرد؛ اما استفاده از پردازنده و پردازندهي گرافيكي بهطور همزمان تركيبي ايدئال براي متخصص فراهم ميكند و بهترين عملكرد را بهارمغان ميآورد.
پردازندهي گرافيكي در ابزارهاي هوشمند مانند موبايل، تبلت يا تلويزيون قرار دارد و در كامپيوترها معمولا در قالب كارت گرافيك مورد استفاده قرار ميگيرد تا بخش مهمي از وظيفهي پردازش بازيها، ويدئوها، محتوا و حتي هوش مصنوعي را برعهده بگيرد و CPU نيز برنامههاي عملكردي كامپيوتر مانند پردازشهاي سيستمعامل را مديريت ميكند. از اين واحد با عنوان مغز كامپيوتر ياد ميكنند. GPU نميتواند مانند CPU پردازشها را بهطور مداوم انجام دهد و براي عملكرد كاملاً متفاوتي ساخته شده است. درمقابل، 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 باعث ميشود تا توسعهدهندگان و مهندسان از فناوري اين واحد براي اجراي برخي برنامههاي متخصصدي با كارايي بالا استفاده كنند:
- استخراج بيت كوين: فرايند استخراج بيتكوين به قدرت محاسباتي بسياري براي حل هشهاي رمزنگاري پيچيده نياز دارد. توان عملياتي فراوان و انرژي موردنياز نسبتاً اندك پردازندههاي گرافيكي، اين واحدها را براي انجام فرايند استخراج كه بهتازگي نيز طرفداران زيادي پيدا كرده است، به ابزاري مناسب تبديل كرده است.
- يادگيري ماشيني: پردازندههاي گرافيكي مدرن در يادگيري ماشيني متخصصد دارند. يادگيري ماشين شكلي از تجزيهوتحليل داده است كه ساخت مدلهاي تحليلي را بهصورت خودكار انجام ميدهد. در اصل، يادگيري ماشيني از دادهها براي يادگيري و شناسايي الگوها و تصميمگيريهايي مستقل از ورودي انسان استفاده ميكنند و بهدليل ماهيت بسيار پرمصرف اين سيستم و نياز به پردازشهاي موازي آن، پردازندههاي گرافيكي را ميتوان جزئي ضروري از اين فناوري دانست.
آيا براي بازي وجود جيپييو لازم است؟
بهرهمندي از پردازندهاي گرافيكي ميتواند در تجربهي متخصصي گيمرها تغيير چشمگيري ايجاد كند. اين واحد در ارائهي محتواي گرافيكي و ويدئويي استفاده ميشود و هنگام بازي ميتواند عملكردي تأثيرگذار داشته باشد. علاوهبراين، پردازندهي گرافيكي پردازشها را با سرعتي زياد انجام ميدهد و با اين كار از حجم كاري پردازنده كم ميكند.
اين بدانمعني است كه عملكرد كلي كامپيوتر افزايش مييابد و بازيها با كيفيت بهتر و روانتري اجرا ميشوند. امروزه، توسعهدهندگان بازيها تلاش ميكنند تا گرافيكهاي محصولاتشان تجربهاي واقعي را براي گيمرها تداعي كنند؛ پس ميتوان گفت براي رندرهاي بهتر و طبيعيتر وجود پردازندهاي گرافيكي ضروري است.
هم انديشي ها