آنچه در این مقاله میخوانید
واحد پردازش مرکزی یا بهاختصار CPU (central processing unit) جزء سختافزاری سیستم و واحد پردازشی اصلی در سرور است. این واحد انواع پردازشهای موردنیاز برای اجرای سیستمعامل و برنامهها را انجام میدهد. واحد پردازش گرافیکی (graphics processing unit) جزء سختافزاری مشابه اما تخصصیتر است. این واحد، عملیات پیچیده ریاضی را که بهصورت موازی اجرا میشوند نسبت به CPU عمومی، موثرتر انجام میدهد. پردازندههای گرافیکی در ابتدا برای گرفتن رندر گرافیکی در بازی و انیمیشن ایجاد شدند اما اکنون کاربردهایی بسیار فراتر از آن دارند. در این مقاله به بررسی دقیق تفاوتهای GPU و CPU میپردازیم.
شباهتهای GPU و CPU
GPU و CPU هر دو واحدهای سختافزاری هستند. آنها مانند مغز دستگاه پردازشی عمل میکنند. هر دوی آنها دارای اجزای داخلی مشابهی از جمله هسته، حافظه و واحدهای کنترل هستند.
هسته
ساختار GPU و CPU هستههایی دارد که تمام محاسبات و توابع منطقی را اجرا میکند. هسته آن، دستورالعملها را از حافظه بهشکل سیگنالهای دیجیتالی با نام بیت (bit) میگیرد. بیتها دستورالعمل را رمزگشایی میکنند و آنها را از طریق گیتهای منطقی (logical gate) در بازه زمانی به نام چرخه دستورالعمل (Instruction cycle) اجرا میکند. CPUها در ابتدا تکهستهای بودند اما امروزه CPUها و GPUهای چند هستهای رایجتر هستند.
حافظه
GPU و CPU در هر ثانیه میلیونها محاسبه را انجام میدهند و از حافظه داخلی خود برای بهبود عملکرد پردازش استفاده میکنند. حافظه پنهان، حافظه داخلی است که دسترسی به دادهها را تسریع میکند. در CPUها برچسب L۲، L۱ و L۳ ترتیب سرعت حافظه پنهان را نشان میدهد. بین آنها L۱ سریعترین و L۳ کندترین است. واحد مدیریت حافظه (memory management unit) حرکت دادهها را بین هسته CPU، حافظه پنهان و رم (RAM) در هر چرخه دستورالعمل کنترل میکند.
واحد کنترل
واحد کنترل، وظایف پردازش را هماهنگ میکند و فرکانس پالسهای الکتریکی تولید شده در واحد پردازش را تعیین میکند. GPU و CPU با فرکانسهای بالاتر، عملکرد بهتری را ارائه میدهند. با این حال، طراحی و پیکربندی این اجزا در GPU و CPU متفاوت است. بنابراین هرکدام در موقعیتهای مختلفی مفید هستند.
تفاوتهای کلیدی CPU با GPU
اولین بارهای کاری رایانشی (compute-intensive workloads) با ورود گرافیک و انیمیشن کامپیوتری رخ داد که CPUها برای انجام آن طراحی نشده بودند. بهعنوان مثال، انیمیشن بازیهای ویدیویی به برنامههایی برای پردازش دادهها نیاز داشت که برای نمایش هزاران پیکسل، هر کدام رنگ، شدت نور و حرکت خاص خود را داشته باشند. محاسبات ریاضی هندسی روی CPUها در آن زمان منجر به مشکلات عملکردی شد. سازندگان سختافزار بعد از آن دست به افزایش و بهبود عملکرد CPU زدند.
عملکرد
تفاوت اصلی GPU و CPU در عملکرد آنها نهفته است. سرورها نمیتوانند بدون CPU اجرا شود. CPU مسئول اجرای صحیح همه نرمافزارهای روی سرور است. از سوی دیگر، GPU برای انجام محاسبات همزمان از CPU پشتیبانی میکند. GPU میتواند کارهای ساده و تکراری را بسیار سریعتر انجام دهد زیرا کارها را به اجزای کوچکتر تقسیم میکند و آنها را بهصورت موازی به پایان میرساند.
طراحی
پردازندههای گرافیکی در پردازش موازی از طریق چندین هسته یا واحدهای منطقی حسابی (arithmetic logic units) برتری دارند. هستههای GPU قدرت کمتری نسبت به هستههای CPU داشته و همچنین حافظه کمتری دارند. CPUها میتوانند بهسرعت بین مجموعه دستورالعملهای مختلف جابهجا شوند اما GPU بهسادگی حجم بالایی از دستورالعملهای مشابه را میگیرد و آنها را با سرعت بالا هدایت میکند. در نتیجه، توابع GPU نقش مهمی در محاسبات موازی ایفا میکنند.
نمونهای از تفاوت واحدها
برای درک بهتر این موضوع قیاس پیشرو را در نظر بگیرید: CPU مانند سرآشپزی در رستوران بزرگی است که باید مطمئن شود صدها همبرگر برگردانده میشوند. حتی اگر سرآشپز بتواند شخصاً این کار را انجام دهد باز این کار استفاده درستی از زمان نیست. عملیات آشپزخانه حین انجام این کار ساده اما وقتگیر ممکن است متوقف یا کند شود. سرآشپز برای جلوگیری از این امر میتواند از دستیاران جوانی استفاده کند که چندین همبرگر را به موازات یکدیگر برگردانند. GPU بیشتر شبیه دستیار جوان با ده دست است که میتواند ۱۰۰ همبرگر را در ۱۰ ثانیه بچرخاند.
چه زمانی GPU را بهجای CPU استفاده کنیم؟
هر سرور در فضای ابری برای اجرا به CPU نیاز دارد. با این حال، برخی از سرورها دارای پردازندههای گرافیکی به عنوان پردازنده اضافی هستند. پردازندههای گرافیکی میتوانند برای محاسبات اعداد ممیز شناور، پردازش گرافیکی یا تطبیق الگوی داده عالی باشند.
در اینجا فهرست کوتاهی از مواردی که موجب برتری GPU بر CPU میشود آورده شده است:
یادگیری عمیق
یادگیری عمیق، روشی در هوش مصنوعی (AI) است که به رایانهها میآموزد تا دادهها را به روشی الهام گرفته از مغز انسان پردازش کنند. به عنوان مثال، الگوریتمهای یادگیری عمیق الگوهای پیچیده را در تصاویر، متن، صداها و سایر دادهها تشخیص میدهند تا بینشها و پیشبینیهای دقیقی ایجاد کنند. سرورهای مبتنی بر GPU عملکرد بالایی را برای یادگیری ماشین، شبکههای عصبی و یادگیری عمیق ارائه میدهند.
محاسبات با کارایی بالا
اصطلاح محاسبات با کارایی بالا به وظایفی اطلاق میشود که به قدرت محاسباتی بسیار بالایی نیاز دارند. در اینجا چند نمونه آورده شده است:
- شما باید شبیهسازیهای زمینشناسی و پردازش لرزهای را با سرعت و مقیاس اجرا کنید.
- شما باید شبیهسازیهای مالی را برای شناسایی ریسکهای سبد محصول، فرصتهای پوشش ریسک و موارد دیگر پیشبینی کنید.
- شما باید برنامههای کاربردی در حیطه پزشکی، ژنومیکس و کشف دارو بسازید.
سیستم کامپیوتری مبتنی بر GPU برای کارهای محاسباتی با کارایی بالا مناسبتر است.
سیستمهای خودران
برای توسعه و استقرار سیستمهای پیشرفته کمکراننده (advanced driver-assistance systems) و سیستمهای خودران (autonomous vehicle)، به فناوریهای محاسباتی، ذخیرهسازی، شبکهسازی و تجزیهوتحلیل بسیار مقیاسپذیر نیاز است. بهعلاوه، شما به قابلیتهای جمعآوری دادهها، برچسبگذاری و حاشیهنویسی، توسعه نقشه، توسعه الگوریتم، شبیهسازی و تأیید نیاز دارید. چنین بارهای کاری پیچیدهای برای عملکرد کارآمد نیاز به پشتیبانی از سیستمهای کامپیوتری مبتنی بر GPU دارند.
خلاصه تفاوتهای GPU و CPU
واحد پردازش مرکزی (central processing unit) | واحد پردازش گرافیکی (GPU) | |
عملکرد: | مدیریت کامپوننتهای تعمیمیافته در پردازش سرور | مدیریت کامپوننت تخصصی در محاسبات موازی |
پردازش: | دستورالعملهای سریالی | دستورالعملهای موازی |
طراحی: | هستههای کمتر اما قدرتمندتر | هستههای بیشتر اما کمقدرتتر |
متناسب با: | برنامههای محاسباتی همهمنظوره | برنامههای محاسباتی با کارایی بالا |
- تفاوت اصلی GPU و CPU در چیست؟
GPU و CPU از نظر طراحی و عملکرد متفاوت هستند. GPU برای پردازش موازی و سریع حجم زیادی از دادهها طراحی شده است، در حالی که CPU با هستههای قدرتمندتر برای پردازش سریالی و مدیریت وظایف عمومی و سیستمعاملها مناسبتر است.
- در چه مواقعی از GPU بهجای CPU استفاده کنیم؟
GPU برای کاربردهایی مانند یادگیری عمیق، محاسبات با کارایی بالا (مانند شبیهسازیهای زمینشناسی یا پردازش لرزهای) و توسعه سیستمهای خودران که نیازمند پردازش همزمان دادهها هستند، بسیار مناسبتر است.
- چرا GPU در پردازش گرافیکی برتری دارد؟
GPU به دلیل طراحی با هستههای متعدد و توانایی اجرای حجم بالایی از دستورالعملهای مشابه بهصورت همزمان، میتواند عملیات پیچیده ریاضی را که برای پردازش گرافیکی و رندر انیمیشنها ضروری هستند، با سرعت و کارایی بیشتری انجام دهد.
این مقاله را به اشتراک بگذارید