بررسی تفاوت های CPU و GPU
امروزه برای هر کاری که باشد از برنامههای یادگیری ژرف گرفته تا رایانش موازی، بازیهای سهبُعدی یا سایر کارها، انتظار میرود سیستمها عملکرد خوبی داشته باشند. یک واحد پردازش مرکزی (CPU) و یک واحد پردازش گرافیکی (GPU) نقشهای متفاوتی دارند. کاربرد این پردازندهها چیست و چه نقشی ایفا میکنند؟ اینها سوالاتی است که در ادامهی این مطلب ایساج در مورد انها و همینطور تفاوت CPU و GPU صحبت خواهیم کرد.
Cpu چیست
مسالهای که ابتدا به آن میپردازیم، ارائهی تعریفی از CPU یا Central Processing Unit است. CPU یا واحد پردازش مرکزی از میلیونها ترانزیستور ساخته شده است و میتواند چندین هستهی پردازشی داشته باشد. در واقع CPU به عنوان مغز کامپیوتر شناخته میشود و برای سیستمهای محاسباتی مدرن ضروری است زیرا دستورات و فرآیندهای مورد نیاز برای رایانه و سیستم عامل شما را اجرا میکند.
CPU همچنین در تعیین سرعت اجرای برنامهها، از وبگردی گرفته تا ساخت صفحات گسترده مهم است.
(از مطلبی که در مورد متاورس نوشتهایم، بازدید کنید.)
GPU چیست؟
GPU یا Graphics Processing Unit پردازندهای است که از هستههای کوچکتر و تخصصیتری تشکیل شده است. این هستهها با کار کردن با یکدیگر میتوانند عملکرد بسیار خوبی ارائه دهند و وظیفهی پردازش را میتوان در بسیاری از هستهها تقسیم و پردازش کرد.
تفاوت CPU و GPU از نظر عملکرد
واحد پردازش مرکزی یا CPU وظیفهی انجام تمام عملیات پردازشی یک دستگاه را بر عهده دارد. این بخش مانند مغز دستگاه کامپیوتر شما عمل میکند و GPU نیز وظیفهی پردازش تمام چیزهای که در صفحه نمایش کامپیوتر خود میبینید را بر عهده دارد. واحد پردازش مرکزی (CPU) در تمام دستگاهها به صورت یک پردازندهی مجزا طراحی میشود که عملکرد مستقلی دارد اما GPU هم میتواند به صورت مجزا و هم به عنوان بخشی از CPU باشد.
با این حال، واحد پردازش گرافیکی که با CPU ادغام شده باشد، نسبت به واحد پردازش گرافیکی مجزا، قدرت پردازشی کمتری دارد. به همین خاطر است که افرادی که به دنبال سیستمی برای انجام بازیهای گرافیکی سنگین هستند یا از لپتاپ و کامپیوتر خود از نرمافزارهای گرافیکی سنگین استفاده میکنند، لازم است از GPU مجزا استفاده کنند.
نوع دیگری از پردازنده با عنوان شتابدهندهی پردازنده گرافیکی (GPU Accelerator یا Graphic Accelerator) نیز وجود دارد که برای تقویت عملکرد GPU مورد استفاده قرار میگیرد و دادههای بصری را پردازش میکند.
(با بهترین نرم افزارهای مدیریت پسورد آشنا شوید.)
تفاوت CPU و GPU از نظر ساختار در دسکتاپ و موبایل
ساختار CPU و GPU در کامپیوتر و موبایل کاملا متفاوت است. نوع واحد پردازش مرکزی که در موبایلها مورد استفاده قرار میگیرد، معمولا سختافرازهای کوچک و کممصرف است اما CPU در کامپیوتر ساختار پیچیدهتری دارد و حتی در برخی از ابرکامپیوترها نیز شبکهای از CPU وجود دارد که برای انجام فعالیتها و محاسبات پیچیده و سنگینی مورد استفاده قرار میگیرد که نیاز به قدرت پردازش بسیار بالایی دارد و اگر با CPUهای ضعیفی مانند موبایل انجام شود، میتواند باعث انفجار و نابودی آنها شود.
کاربرد پردازندههای گرافیکی مجزا
پردازنده گرافیکی مجزا (GPU) معمولا در کنسولهای قدرتمند و کامپیوتر و لپتاپهایی که برای انجام کارهای گرافیکی سنگین مانند ویرایش حرفهای تصاویر و ویدئوها و یا اجرای بازیهای سنگین طراحی شدهاند، دیده میشود. از GPU مجزا بعلاوه برای استخراج ارزهای دیجیتال و کاربردهای مرتبط با یادگیری ماشینی نیز استفاده میشود.
سایر تفاوتهای CPU با GPU
از دیگر تفاوت های CPU و GPU میتوان به این موارد اشاره کرد:
- واحد پردازش مرکزی (CPU) دارای قابلیت موازیسازی وظیفه و GPU دارای قابلیت موازی داده است. در واقع CPU میتواند فعالیتهای پردازشی را توسط واحدهای پردازنده به صورت همزمان انجام دهد و GPU نیز میتواند یک دستورالعمل یکسان را مکررا و همزمان با سرعت بالا برای دادههای متفاوت اجرا کند.
- واحد پردازش مرکزی متشکل از تعداد کمی هسته با قدرت پردازش بالا است و در مقابل GPU از تعداد زیادی هسته تشکیل شده که در مقایسه با هستههای CPU کوچکتر هستند و فعالیتهای پردازشی توزیعشده را با یکدیگر و با سرعت بالا به صورت همزمان انجام میدهند.
- واحد پردازش مرکزی ظرفیت بالایی دارد اما واحد پردازندهی گرافیکی پهنای باند بالا دارد و میتواند اطلاعات را با سرعت بالا بخواند.
- در CPU دستورالعملهای زیادی ایجاد میشود که بین واحدهای پردازشی آن توزیع میشود اما در GPU تعداد دستورالعملها کم است و در عوض، تا حد زیادی بهینهسازی میشوند.
(با روش رمزگذاری برنامه ها در اندروید آشنا شوید.)
تفاوت CPU و GPU: نحوهی کار واحد پردازندهی مرکزی
تا اینجا در مورد تفاوت های CPU با GPU توضیح دادیم اما اصلیترین تفاوت این دو واحد، در نحوهی کار آنها است. فعالیتهای پردازشی در CPU به صورت متوالی و سریالی انجام میشود. همانطور که گفتیم CPU متشکل از واحدهای پردازندهی مختلفی است که هر کدام از آنها عملیات پردازشی خاصی را انجام میدهند و برای دستیابی به بهترین عملکرد، وظایف بین پردازندهها تقسیم میشود.
بعلاوه CPUهای مدرن از چند هسته تشکیل میشوند که هر کدام بخشی از فعالیتهای پردازشی در CPU را انجام میدهند. اکثر پردازندههای مرکزی دارای 4 تا 8 هسته هستند و با فعال شدن CPU، هر کدام از این هستهها یک فعالیت پردازشی را به صورت مجزا انجام میدهد. در واقع وظایف یا تسکهایی که در تسک منیجر کامپیوتر خود میبینید، در حال انجام توسط هستههای CPU و یا در صف انجام توسط این هستهها هستند.
یک نمونه تفاوت CPU و GPU این است که پردازندهی مرکزی وظایف را بین هستههای مختلف تقسیم میکند تا سرعت انجام کارها را بالاتر ببرد.
(اگر قصد فلش کردن گوشی سامسونگ خود را دارید، از مطلبی که در همین مورد نوشتهایم، بازدید کنید.)
تفاوت CPU و GPU: نحوهی کار واحد پردازش گرافیکی
همانطور که گفتیم CPU فعالیتهای پردازشی مختلف را با سرعت بالا انجام میدهد اما این سختافزار قدرت لازم برای پردازش دادههای گرافیکی سنگین مانند دادههای سهبُعدی را ندارد و برای این کار حتما به یک GPU نیاز دارد. GPU از شیوهی پردازش متفاوتی استفاده میکند و وقتی وظیفهای به آن محول میشود، پردازندهی گرافیکی آن را به هزاران وظیفهی بسیار کوچک تقسیم کرده و به طور همزمان پردازش میکند.
برای مثال تصور کنید یک بازی متشکل از تعدادی چندضلعی است. برای ایجاد یک بازی و بخشهای مختلف آن، چندضلعیها باید با آیتمها و عناصر گرافیکی پر بشوند. این چندضلعیها توسط GPU به صورت همزمان و مجزا پر میشوند. از آنجایی که ممکن است تعداد این چندضلعیها بسیار زیاد باشد و همهی آنها باید همزمان و در مدت کوتاهی پردازش شوند، GPU باید قدرت پردازش بالایی داشته باشد.
ضعیف بودن GPU باعث مشاهدهی مشکل در نمایشگر میشود و بافتهای پردازش نشده در آنچه روی کامپیوتر خود مشاهده میکنید، نمایانگر میشود.
(در مورد رمز و رازهای شارژ کردن باتری در طول شب بازدید کنید.)
تفاوت معماری CPU با GPU
معماری سختافزاری نیز یکی از نقاط تفاوت CPU و GPU است. گفتیم که پردازندهی مرکزی دادهها و وظایف دریافتی خود ر به صورت متوالی و با سرعت بالا پردازش میکند. سرعت بالای کلاک هستهها، انجام سریع پردازشها را امکانپذیر میسازد. CPU از نظر کاهش تاخیر در انجام وظایف بهینهسازی شده و به همین دلیل میتواند بین فعالیتهای پردازشی متفاوت سوئیچ کند. این ویژگی ساختاری CPU باعث شده با وجود اینکه این سختافراز برای انجام یک فعالیت پردازشی در لحظه طراحی شده اما بتواند در زمینهی پردازش و رایانش موازی نیز به خوبی عمل کند.
از سوی دیگر معماری GPU یا واحد پردازندهی گرافیکی دارای هستههای بیشتری نسبت به CPU است و دستورالعملهای درنظر گرفته شده برای این هستهها، برای انجام پردازشها و محاسبات مربتط با ماتریس ابعادی و محاسبات نقطه شناور بهینهسازی شده است.
حافظهی پردازندهی گرافیکی رابط عریضی دارد که با ایجاد اتصال نقطه به نقطه باعث افزایش پهنای باند و سرعت بیشتر فعالیتهای پردازشیمیشود.
(در ایساج بخوانید: رم بیشتر یا رم سریعتر؟)
تفاوت CPU و GPU از نظر محدودیتها
محدودیتهای CPU و GPU نیز میتوانید یکی از نقاط تفاوت این دو سختافزار باشد. تفاوت CPU و GPU باعث شده است که در برخی موارد استفاده از CPU برای انجام پردازشها مناسب باشد و در برخی موارد نیز پردازندهی گرافیکی عملکرد بهتری داشته باشد. در ادامه در مورد محدودیت هر یک از این سختافزارها توضیح خواهیم داد.
محدودیتهای CPU
محدودیت در انجام دستورالعملهای سنگین
طراحی مدرن پردازنده به سمت وارد کردن دستورالعملهای سنگین به CPU پیش میرود اما این مساله بدون عیب نیست. پردازندهی مرکزی برای انجام وظایف سنگین، با سرعتی بالا بین صدها سیکل کلاک سوئیچ میکند. اگرچه شرکت اینتل با بهرهوری از فناوری خط لوله دستورالعمل (Instruction pipeline) تلاش کرده این محدودیت را کاهش دهد و توانسته پردازندههای خود را به گونهای طراحی کند که بخشهای پردازش به طور مداوم در فعالیت باشند؛ اما باز هم پردازش همزمان دستورالعملهای سنگین و پیچیده باعث افت عملکرد پردازندهی مرکزی میشود.
تاخیر در سوئیچ
منظور از تاخیر در سوئیچ یا Switch Latency در CPU همان زمان مورد نیاز برای سوئیچ شدن هسته CPU بین رشتهها است. سوئیچ شدن بین رشتهها فرایند کندی است زیرا پردازنده برای انجام این کار باید بین رجیسترها و متغیرها، وضعیت را ذخیره کرده و حافظهی کش را خالی کند. با این حال در طراحی پردازندههای جدیدتر تلاش شده با تقسیم وضعیت تسک در حال پردازش، این مشکل را تا حد زیادی برطرف کرده و میزان تاخیر سوئیچ را کاهش دهند اما با این حال باز هم میزان تاخیر قابلقبول نیست.
قانون مور
طبق قانون مور تعداد ترانزیستورهای هر اینچ مربع سطح مدار مجتمع، هر دو سال دو برابر میشود. اگرچه این قانون در حال فراموش شدن است و برای افزایش تعداد ترانزیستورها محدودیت وجود دارد. با این حال، مهندسین سختافزار تلاش میکنند با کمک روش توزیع محاسباتی، قدرت و کارآیی محاسباتی پردازندهها را بیشتر کنند. مهندسان همچنین به دنبال آزمایش و بررسی قابلیتهای کامپیوترهای کوانتومی هستند و تلاش میکنند جایگزینی برای سیلیکون برای ساخت CPU پیدا کنند.
محدودیتهای GPU
تفاوت CPU و GPU از نظر تعداد کمتر هستههای قدرتمند در GPU
گفتیم که تعداد هستههای GPU بیشتر از هستههای CPU است با این حال قدرت آنها از نظر سرعت کلاک کمتر از واحد پردازنده است. بعلاوه اینکه هستههای پردازندهی گرافیکی تعداد کمتری از دستورالعملها را پردازش میکنند و برای پردازش تسکهای خاصی طراحی شدهاند. البته این مساله به خودی خود بد نیست چرا که این پردازندهها برای پردازش مجموعهی کوچکی از دستورالعملها بسیار کارآمد و موثر هستند.
حافظهی کمتر GPU
حافظهی پردازندههای گرافیکی بسیار محدود است اما عملکرد آن از نظر پردازش حجم بیشتری از اطلاعات در زمان خاص، از CPU بهتر است. با این حال دسترسی به حافظهی GPU با تاخیر بیشتری نسبت به CPU انجام میشود و از این نظر تفاوت CPU و GPU در میزان تاخیر دسترسی به حافظه مشهود است.
دارای واسط برنامهنویسی کاربردی (API) محدود
واسط برنامهنویسی کاربردی اوپن سیال (Open CL) و کودا (Cuda) از انواع واسطهای برنامهنویسی کاربردی شناخته شده برای GPU هستند که باگهای آنها به سختی برطرف میشود. واسط برنامه نویسی اوپن سیال از نوع متن باز است اما روی سختافزار انویدیا به کندی عمل میکند. اگر Open CL به عنوان API اختصاصی انویدیا است و برای پردازندههای گرافیکی این شرکت بهینهسازی شده است.
تفاوت CPU و GPU: مزایای استفاده از GPU بجای CPU
گفتیم که پردازندههای گرافیکی در مقایسه با پردازندهی مرکزی دارای قدرت پردازشی بیشتر و سختافزار کارآمدتر است. استفاده از GPU برای انجام کارهای گرافیکی سنگین و بازیهای مختلف ضروری است و بعلاوه میتوان از آن برای استخراج ارز دیجیتال و یا در حوزهی هوش مصنوعی نیز بهره برد.
پردازندههای گرافیکی به عنوان بخشی از کارت گرافیک، به خاطر داشتن مجموعهای از واحدهای پردازشگر که به آنها واحدهای محاسبه و منطق گفته میشود، به طور ویژه برای انجام محاسبات ریاضی طراحی شدهاند و از آنها برای استخراج ارز دیجیتال استفاده میشود.
بعلاوه از GPU میتوان برای کاربردهای مرتبط با فناوری یادگیری ماشینی استفاده کرد. از آنجایی که برای این کار حجم زیادی از دادهها پردازش میشود، با توجه به تفاوت CPU و GPU، استفاده از پردازندهی گرافیکی مناسبتر است.
(در مورد روش های عیب یابی گوشی اندروید بخوانید.)
تفاوت CPU و GPU: مزایای استفاده از CPU در مقایسه با GPU
در مورد مزایای استفاده از GPU نسبت به CPU صحبت کردیم با این حال GPU صرفا نقش خود را به عنوان پردازندهی گرافیکی بر عهده دارد و نمیتواند به عنوان پردازندهی مرکزی عمل کند. این مساله بدان خاطر است که GPU تسکهای پردازشی خود را به صورت همزمان انجام میدهد و اگر از GPU به عنوان پردازندهی اصلی در کامپیوترها استفاده شود, عملکرد خوبی نخواهند داشت.
برای مثال، اگر از GPU به عنوان پردازنده مرکزی در کامپیوترها استفاده شود، تقسیم برخی از تسکهای پردازشی مانند پردازشهای مرتبط با نوشتن یک مقاله و باز کردن یک مرورگر، کار سختتری خواهد بود. در مقابل ویژگیهای CPU باعث میشود استفاده از آن به عنوان پردازندهی مرکزی مناسبتر باشد.
اگرچه تعداد معدودی از تسکها در CPU در قدرت پردازشی CPU تقسیم میشوند اما سرعت انجام این تسکها با سرعت بیشتری انجام میشود.