تاریخ امروز : 1405/05/20

وبلاگ

یاقوت سرخ » مقالات اموزشی » تفاوت CPU، GPU و NPU چیست؟ بررسی معماری، عملکرد، کاربرد و آینده پردازنده‌ها

تفاوت CPU، GPU و NPU چیست؟ بررسی معماری، عملکرد، کاربرد و آینده پردازنده‌ها

تفاوت CPU، GPU و NPU چیست؟ بررسی معماری، عملکرد، کاربرد و آینده پردازنده_ها

برای سال‌ها وقتی درباره «پردازنده» صحبت می‌کردیم، منظور تقریباً همیشه CPU بود. واحد پردازش مرکزی، مغز اصلی کامپیوتر محسوب می‌شد و تقریباً تمام عملیات نرم‌افزاری، از اجرای سیستم‌عامل و برنامه‌های کاربردی گرفته تا پردازش داده و مدیریت ورودی و خروجی، در نهایت به آن وابسته بود. اما افزایش حجم داده، رشد پردازش‌های گرافیکی و مهم‌تر از همه، گسترش هوش مصنوعی باعث شده معماری سیستم‌های محاسباتی به‌تدریج تغییر کند.

امروزه در بسیاری از سیستم‌های مدرن، دیگر یک پردازنده قرار نیست به‌تنهایی همه کارها را انجام دهد. CPU برای پردازش‌های عمومی و اجرای منطق برنامه مناسب است، GPU می‌تواند حجم بزرگی از محاسبات موازی را با توان بالا انجام دهد و NPU برای اجرای برخی عملیات هوش مصنوعی با مصرف انرژی پایین‌تر طراحی شده است. در واقع، تفاوت CPU، GPU و NPU را نباید صرفاً در «قدرت پردازش» جست‌وجو کرد؛ مسئله اصلی این است که هرکدام برای چه نوع محاسبه‌ای طراحی شده‌اند و چگونه در کنار یکدیگر قرار می‌گیرند.

این تغییر معماری در کامپیوترهای شخصی با ظهور AI PCها کاملاً قابل مشاهده است. برای مثال، پردازنده‌های جدیدی مانند Intel Core Ultra و AMD Ryzen AI، CPU، GPU و NPU را در یک پلتفرم واحد در کنار یکدیگر قرار می‌دهند تا هر بخش از بار کاری به واحدی منتقل شود که برای آن مناسب‌تر است. Intel نیز در مستندات مربوط به پردازش ناهمگون روی Core Ultra صراحتاً امکان توزیع Workload بین CPU، GPU و NPU را توضیح می‌دهد.

اما این موضوع در دیتاسنترها شکل متفاوتی دارد. در یک سرور سازمانی، CPU همچنان پایه اصلی سیستم است و GPUها معمولاً به‌عنوان شتاب‌دهنده‌های تخصصی در کنار آن قرار می‌گیرند. برای نمونه، HPE در نسل فعلی سرورهای AI خود از ترکیب پردازنده‌های AMD EPYC یا Intel Xeon با GPUهای NVIDIA و AMD برای آموزش و استنتاج مدل‌های هوش مصنوعی استفاده می‌کند.

بنابراین برای درک صحیح تفاوت این سه فناوری، باید از یک سؤال ساده‌تر شروع کنیم: CPU، GPU و NPU دقیقاً چه مسئله‌ای را حل می‌کنند؟


CPU چیست و چرا هنوز مهم‌ترین پردازنده سیستم است؟

CPU یا Central Processing Unit، واحد پردازش مرکزی سیستم است. وظیفه اصلی آن اجرای دستورالعمل‌های عمومی برنامه‌ها، کنترل جریان اجرای نرم‌افزار، انجام محاسبات مختلف و هماهنگ‌کردن اجزای سیستم است. تقریباً هر سیستم کامپیوتری عمومی، از لپ‌تاپ و کامپیوتر رومیزی گرفته تا سرورهای سازمانی، برای اجرای سیستم‌عامل و نرم‌افزارهای اصلی خود به CPU متکی است.

نکته مهم این است که CPU برای انعطاف‌پذیری طراحی شده است. یک CPU می‌تواند طیف بسیار بزرگی از دستورالعمل‌ها و الگوریتم‌ها را اجرا کند؛ از محاسبات ساده عددی گرفته تا منطق پیچیده یک سیستم‌عامل، مدیریت ماشین‌های مجازی، اجرای Database Engine و پردازش درخواست‌های کاربران. همین انعطاف‌پذیری یکی از مهم‌ترین دلایلی است که باعث شده CPU همچنان مرکز اصلی بسیاری از سیستم‌های محاسباتی باشد.

معماری CPU معمولاً تعداد نسبتاً محدودی هسته پردازشی بسیار قدرتمند دارد. هر هسته برای اجرای سریع و انعطاف‌پذیر Threadها طراحی شده و مجموعه‌ای از اجزای داخلی مانند Cache، واحدهای اجرای دستور، Branch Prediction و واحدهای محاسباتی مختلف را در اختیار دارد. در معماری‌های مدرن، افزایش تعداد هسته‌ها نیز اهمیت زیادی پیدا کرده است، اما تعداد هسته به‌تنهایی معیار کافی برای ارزیابی عملکرد یک CPU نیست؛ معماری هسته، فرکانس، IPC، ظرفیت و ساختار Cache، پهنای باند حافظه و نوع Workload همگی روی نتیجه نهایی اثر می‌گذارند.

در سرورها این موضوع اهمیت بیشتری دارد. برای مثال، پردازنده‌های Intel Xeon و AMD EPYC برای اجرای Workloadهای متنوع Enterprise طراحی شده‌اند؛ Workloadهایی که ممکن است شامل Virtualization، Database، سرویس‌های شبکه، Application Server، Storage Services و تعداد زیادی درخواست هم‌زمان باشند. در چنین محیطی، انعطاف‌پذیری CPU یک مزیت اساسی است.

بنابراین اگر بخواهیم نقش CPU را با یک جمله توضیح دهیم، می‌توان گفت CPU پردازنده همه‌کاره سیستم است؛ واحدی که برای تعداد بسیار زیادی از وظایف مختلف طراحی شده و می‌تواند منطق پیچیده و غیرقابل پیش‌بینی برنامه‌ها را به‌خوبی اجرا کند.


GPU چیست و چرا معماری آن با CPU متفاوت است؟

GPU یا Graphics Processing Unit در ابتدا برای پردازش گرافیک و تولید تصاویر سه‌بعدی توسعه پیدا کرد، اما معماری آن به‌تدریج به یکی از مهم‌ترین ابزارهای پردازش موازی تبدیل شد. دلیل این اتفاق، ساختار متفاوت GPU نسبت به CPU است.

فرض کنید باید یک عملیات مشابه را روی میلیون‌ها داده انجام دهید. اگر الگوریتم به‌گونه‌ای باشد که بتوان این عملیات را به بخش‌های زیادی تقسیم کرد، اجرای آن روی تعداد زیادی واحد پردازشی موازی می‌تواند بسیار سریع‌تر از اجرای متوالی آن روی تعداد محدودی هسته عمومی باشد. GPU دقیقاً در چنین شرایطی مزیت خود را نشان می‌دهد.

این تفاوت را می‌توان در پردازش تصویر به‌خوبی مشاهده کرد. اگر قرار باشد یک فیلتر مشخص روی میلیون‌ها پیکسل اعمال شود، بسیاری از این محاسبات مستقل از یکدیگر هستند. در چنین حالتی، GPU می‌تواند تعداد زیادی عملیات مشابه را به‌صورت هم‌زمان اجرا کند.

همین ویژگی بعدها GPU را از دنیای گرافیک خارج کرد و وارد حوزه‌هایی مانند شبیه‌سازی علمی، محاسبات مهندسی، تحلیل داده و هوش مصنوعی کرد. فناوری‌هایی مانند CUDA نیز اکوسیستم نرم‌افزاری گسترده‌ای برای استفاده از GPU در محاسبات عمومی ایجاد کردند.

در GPUهای مدرن، علاوه بر واحدهای پردازشی عمومی، سخت‌افزارهای تخصصی‌تری نیز وجود دارد. برای نمونه، NVIDIA از Tensor Coreها برای شتاب‌دهی محاسبات ماتریسی و عملیات مرتبط با AI استفاده می‌کند. این واحدها با پشتیبانی از دقت‌های محاسباتی مختلف مانند FP16، BF16، TF32، INT8 و INT4 می‌توانند برای آموزش و استنتاج مدل‌های هوش مصنوعی عملکرد بسیار بالایی ارائه کنند.

به همین دلیل، مقایسه GPU و CPU با این جمله که «GPU هسته بیشتری دارد» بیش از حد ساده‌سازی است. تفاوت اصلی در فلسفه طراحی آنهاست. CPU تلاش می‌کند تعداد محدودی کار پیچیده را با انعطاف‌پذیری بالا و تأخیر پایین انجام دهد، در حالی که GPU برای اجرای تعداد بسیار زیادی عملیات قابل موازی‌سازی بهینه شده است.

البته GPU برای هر کاری بهترین انتخاب نیست. اگر یک برنامه دارای Branchهای زیاد، وابستگی شدید بین عملیات یا بخش‌های متوالی و غیرقابل موازی‌سازی باشد، ممکن است مزیت GPU نسبت به CPU بسیار کمتر شود. هزینه انتقال داده بین CPU و GPU نیز می‌تواند در برخی Workloadها به یک عامل محدودکننده تبدیل شود.


NPU چیست و چه مسئله‌ای را حل می‌کند؟

NPU مخفف Neural Processing Unit است؛ واحد پردازشی‌ای که به‌طور تخصصی برای شتاب‌دهی برخی عملیات مرتبط با شبکه‌های عصبی و هوش مصنوعی طراحی شده است.

ظهور NPU را باید در کنار یک تغییر مهم در نحوه استفاده از AI بررسی کرد. در گذشته بخش بزرگی از پردازش‌های سنگین هوش مصنوعی در Cloud یا دیتاسنتر انجام می‌شد. اما بسیاری از قابلیت‌های جدید AI به پردازش روی خود دستگاه نیاز دارند؛ از تشخیص گفتار و حذف نویز گرفته تا پردازش تصویر، افکت‌های ویدئویی، قابلیت‌های دستیار هوشمند و برخی مدل‌های مولد.

اجرای این وظایف روی CPU امکان‌پذیر است و GPU نیز می‌تواند عملکرد بسیار بالایی ارائه دهد، اما در دستگاه‌هایی مانند لپ‌تاپ و موبایل، مصرف انرژی اهمیت زیادی دارد. NPU با هدف انجام بخشی از عملیات AI با بازده انرژی مناسب‌تر وارد معماری سیستم می‌شود.

Qualcomm نیز NPU را به‌عنوان واحدی تخصصی برای شتاب‌دهی AI، به‌ویژه Inference با مصرف انرژی پایین، معرفی می‌کند و آن را بخشی از یک معماری ناهمگون در کنار CPU و GPU می‌داند.

این نکته بسیار مهم است: NPU قرار نیست جای CPU و GPU را بگیرد.

در یک سیستم مدرن، ممکن است CPU وظایف عمومی برنامه را انجام دهد، GPU بخش‌هایی از پردازش موازی یا گرافیکی را بر عهده بگیرد و NPU عملیات مشخصی از مدل AI را اجرا کند. در واقع هدف، انتخاب «بهترین پردازنده» نیست؛ هدف انتخاب مناسب‌ترین واحد برای هر قسمت از Workload است.


تفاوت معماری CPU، GPU و NPU در چیست؟

برای درک تفاوت این سه پردازنده، بهتر است به نوع محاسباتی که برای آن بهینه شده‌اند نگاه کنیم.

CPU معمولاً برای محاسبات عمومی و پیچیده‌ای مناسب است که در آنها ترتیب اجرای دستورها، Branchها، حافظه Cache و واکنش سریع به رویدادهای مختلف اهمیت زیادی دارد. GPU در مقابل برای محاسباتی طراحی شده که می‌توانند در مقیاس وسیع موازی شوند.

NPU یک قدم تخصصی‌تر است. بخش مهمی از Workloadهای AI شامل عملیات‌هایی مانند Matrix Multiplication، Convolution و عملیات Tensor هستند. معماری NPU به‌گونه‌ای طراحی می‌شود که این محاسبات را با بازده انرژی مناسب انجام دهد.

البته مرزها کاملاً مطلق نیستند. GPUهای مدرن خودشان دارای واحدهای تخصصی AI هستند و CPUهای جدید نیز قابلیت‌های شتاب‌دهی AI را در اختیار دارند. بنابراین بهتر است CPU، GPU و NPU را سه جعبه کاملاً جدا تصور نکنیم. این سه، نقاط مختلفی در طیف پردازش عمومی تا پردازش تخصصی هستند.

یکی دیگر از تفاوت‌های مهم، مسئله Memory است. عملکرد یک شتاب‌دهنده تنها به قدرت محاسباتی آن وابسته نیست. اگر داده با سرعت کافی به واحد محاسباتی نرسد، ظرفیت محاسباتی بالاتر الزاماً به عملکرد واقعی بالاتر منجر نمی‌شود. به همین دلیل Memory Bandwidth، Cache، ظرفیت حافظه و نحوه اشتراک حافظه بین CPU، GPU و NPU در معماری‌های جدید اهمیت زیادی پیدا کرده‌اند.

در برخی سیستم‌های Client، این سه واحد حتی می‌توانند در یک SoC یا پکیج واحد قرار بگیرند. Intel در معماری Core Ultra از طراحی مبتنی بر Tile استفاده می‌کند و CPU، GPU و NPU را در یک پلتفرم ناهمگون کنار یکدیگر قرار داده است.


چرا نمی‌توان گفت CPU یا GPU یا NPU «قوی‌تر» است؟

این یکی از رایج‌ترین اشتباهات هنگام مقایسه پردازنده‌هاست.

قدرت پردازشی یک مفهوم مطلق نیست. یک CPU ممکن است برای اجرای Database یا Virtual Machine بسیار مناسب‌تر از یک GPU باشد، در حالی که همان GPU در پردازش ماتریسی چندین برابر سریع‌تر عمل کند. NPU نیز ممکن است در یک مدل AI مشخص با مصرف انرژی پایین عملکرد مناسبی ارائه دهد، اما برای یک الگوریتم عمومی یا برنامه‌ای که از NPU پشتیبانی نمی‌کند، عملاً کاربردی نداشته باشد.

در نتیجه سؤال صحیح این نیست که «CPU قوی‌تر است یا GPU؟» بلکه باید پرسید:

برای Workload موردنظر، کدام معماری می‌تواند عملکرد، تأخیر، مصرف انرژی و هزینه مناسب‌تری ارائه کند؟

این تفاوت بین Peak Performance و Real-World Performance بسیار مهم است.


TOPS چیست و چرا در مشخصات NPU دیده می‌شود؟

یکی از اصطلاحاتی که با گسترش NPUها بسیار رایج شده، TOPS است.

TOPS مخفف Trillion Operations Per Second است و به تعداد تریلیون عملیات در ثانیه اشاره می‌کند. این معیار معمولاً برای بیان ظرفیت محاسباتی تئوری یک شتاب‌دهنده AI استفاده می‌شود.

اما TOPS را نباید با عملکرد واقعی یک برنامه یا مدل AI یکی دانست.

فرض کنید یک NPU دارای ظرفیت مشخصی بر اساس INT8 باشد. این عدد به‌تنهایی به ما نمی‌گوید که یک مدل مشخص با چه سرعتی اجرا خواهد شد. نوع مدل، Precision، معماری حافظه، Kernelها، نرم‌افزار Runtime، میزان استفاده از واحدهای محاسباتی و حتی اینکه تمام عملیات مدل واقعاً روی NPU قابل اجرا هستند یا نه، روی عملکرد واقعی اثر می‌گذارند.

Qualcomm نیز در راهنمای رسمی خود تأکید می‌کند که TOPS یک معیار برای بیان Peak AI Inference Performance است و برای ارزیابی کامل عملکرد یک پلتفرم کافی نیست.

بنابراین هنگام مقایسه دو NPU، صرفاً مقایسه عدد TOPS می‌تواند گمراه‌کننده باشد. باید مشخص شود این عدد با چه Precision و تحت چه شرایطی محاسبه شده و نرم‌افزارهای موردنظر تا چه حد از آن سخت‌افزار استفاده می‌کنند.


CPU، GPU و NPU هرکدام برای چه Workloadهایی مناسب هستند؟

اگر یک سیستم را از منظر Workload بررسی کنیم، نقش هر سه پردازنده روشن‌تر می‌شود.

CPU برای کارهایی مناسب است که نیاز به انعطاف‌پذیری بالا، Branchهای پیچیده، اجرای دستورهای عمومی و مدیریت سیستم دارند. اجرای سیستم‌عامل، سرویس‌های سازمانی، Database، Application Server، Virtualization و بسیاری از برنامه‌های روزمره در این گروه قرار می‌گیرند.

GPU زمانی ارزش خود را نشان می‌دهد که حجم زیادی از محاسبات قابل موازی‌سازی باشد. Rendering، پردازش تصویر، شبیه‌سازی‌های علمی، برخی الگوریتم‌های تحلیل داده و به‌خصوص آموزش و استنتاج مدل‌های بزرگ AI از نمونه‌های مهم هستند.

NPU بیشتر زمانی ارزش دارد که هدف اجرای عملیات AI با مصرف انرژی مناسب و تأخیر پایین روی خود دستگاه باشد. قابلیت‌هایی مانند پردازش صوت، تشخیص تصویر، برخی قابلیت‌های ویدئویی و اجرای مدل‌های AI پشتیبانی‌شده روی دستگاه می‌توانند از NPU استفاده کنند.

در عمل، بسیاری از Workloadهای جدید حتی فقط به یکی از این سه واحد وابسته نیستند. یک برنامه AI ممکن است بخشی از عملیات را روی CPU، بخش دیگری را روی GPU و قسمت دیگری را روی NPU اجرا کند.

این همان مفهوم Heterogeneous Computing است.


نقش CPU، GPU و NPU در هوش مصنوعی

برای فهم این موضوع باید بین Training و Inference تفاوت قائل شویم.

در Training، مدل باید با حجم عظیمی از داده آموزش ببیند و پارامترهای آن بارها به‌روزرسانی شوند. این فرایند معمولاً به توان محاسباتی بسیار بالا، Memory Bandwidth زیاد و مقیاس‌پذیری مناسب نیاز دارد. به همین دلیل GPUهای شتاب‌دهنده نقش بسیار مهمی در زیرساخت‌های Training دارند.

برای مثال، HPE در زیرساخت‌های AI خود از سرورهایی استفاده می‌کند که چندین GPU شتاب‌دهنده را در کنار CPUهای سروری قرار می‌دهند. در محصولات فعلی HPE، پلتفرم‌هایی مانند ProLiant Compute و خانواده‌های Compute XD برای Workloadهای AI با ترکیب CPU و GPUهای شتاب‌دهنده عرضه می‌شوند.

Inference داستان متفاوتی دارد. وقتی مدل آموزش داده شد، اجرای آن برای پاسخ به درخواست‌های واقعی ممکن است روی GPU، CPU، NPU یا ترکیبی از آنها انجام شود. انتخاب به اندازه مدل، تعداد درخواست‌ها، محدودیت Latency، هزینه انرژی و معماری نرم‌افزار بستگی دارد.

در سیستم‌های Client، NPU می‌تواند برای Inference سبک‌تر و کم‌مصرف مناسب باشد. AMD نیز در مستندات فنی جدید خود نمونه‌ای از اجرای LLM روی Ryzen AI را توضیح داده که در آن بخشی از پردازش روی NPU و بخشی روی GPU انجام می‌شود. این مثال نشان می‌دهد آینده AI الزاماً متعلق به یک نوع پردازنده نیست؛ تقسیم هوشمندانه Workload بین چند Engine می‌تواند نتیجه بهتری ایجاد کند.


آیا NPU جای GPU را در هوش مصنوعی می‌گیرد؟

خیر؛ دست‌کم نمی‌توان چنین نتیجه‌ای را از روند فعلی گرفت.

NPU و GPU برای یک سطح از نیاز طراحی نشده‌اند. GPUهای مدرن دیتاسنتر، علاوه بر تعداد بسیار زیادی واحد پردازشی، از حافظه‌های پرسرعت، Interconnectهای تخصصی و شتاب‌دهنده‌هایی مانند Tensor Core بهره می‌برند و برای Training و Inference در مقیاس بالا طراحی شده‌اند.

NPU بیشتر به سمت AI کم‌مصرف و On-Device Computing حرکت کرده است. اگر یک لپ‌تاپ بخواهد دائماً یک قابلیت AI مشخص را اجرا کند، انجام تمام این پردازش روی GPU ممکن است از نظر مصرف انرژی منطقی نباشد. در اینجا NPU می‌تواند بخش مشخصی از Workload را با بازده انرژی مناسب‌تر اجرا کند.

بنابراین مسیر منطقی‌تر، رقابت مستقیم NPU و GPU نیست؛ بلکه همکاری بین آنها است.


CPU، GPU و NPU در کامپیوترهای شخصی مدرن

نسل جدید سیستم‌های شخصی به‌سمت معماری ناهمگون حرکت کرده‌اند. در این معماری، CPU، GPU و NPU هرکدام یک نقش مشخص دارند.

برای مثال، در یک تماس ویدئویی، CPU می‌تواند مدیریت اصلی برنامه و سیستم‌عامل را بر عهده داشته باشد، GPU مسئول پردازش و نمایش تصویر باشد و NPU برخی قابلیت‌های AI مانند حذف نویز یا پردازش تصویر را اجرا کند.

همین مدل در نرم‌افزارهای تولید محتوا، ابزارهای هوش مصنوعی و برخی قابلیت‌های سیستم‌عامل نیز قابل استفاده است.

Intel در مستندات مربوط به Core Ultra حتی سناریویی را توضیح می‌دهد که در آن جریان‌های مختلف یک Pipeline پردازش تصویر می‌توانند بین GPU و NPU تقسیم شوند. نکته مهم این است که عملکرد واقعی چنین معماری‌ای به مدل، Resolution، Pipeline و نحوه تقسیم Workload بستگی دارد و نمی‌توان یک نتیجه ثابت برای تمام برنامه‌ها در نظر گرفت.

AMD نیز در نسل‌های Ryzen AI خود ترکیب CPU، Radeon GPU و NPU را به‌عنوان پایه AI PC معرفی می‌کند. در مدل‌های جدیدتر این خانواده، NPU می‌تواند ده‌ها TOPS توان محاسباتی AI ارائه کند، اما این عدد همچنان باید در کنار سایر اجزای سیستم و Workload واقعی تفسیر شود.


CPU، GPU و NPU در سرورها و دیتاسنترها

برای مجموعه‌ای مانند یاقوت سرخ که تمرکز آن بر سرورهای HPE و زیرساخت دیتاسنتر است، این بخش اهمیت ویژه‌ای دارد؛ زیرا معماری AI در یک لپ‌تاپ با معماری یک سرور Enterprise یکسان نیست.

در یک سرور معمولی HPE، CPU همچنان پردازنده اصلی سیستم است و منابعی مانند Memory، Storage، Network و PCIe را مدیریت می‌کند. در صورت نیاز به شتاب‌دهی محاسباتی، می‌توان GPU Accelerator را به سرور اضافه کرد.

در سرورهای AI، این GPUها دیگر یک قطعه جانبی ساده نیستند. آنها به بخش مهمی از معماری محاسباتی تبدیل می‌شوند و باید مواردی مانند Power Delivery، Cooling، PCIe یا Interconnect، Memory Capacity، GPU-to-GPU Communication و Software Stack در طراحی سرور در نظر گرفته شود.

HPE در سبد فعلی AI خود از سرورهایی مانند ProLiant Compute DL380a Gen12 و خانواده Compute XD استفاده می‌کند که با شتاب‌دهنده‌های NVIDIA و AMD برای Workloadهای AI ارائه می‌شوند. برخی از این سیستم‌ها به چندین GPU مجهز هستند و حتی از خنک‌سازی مایع برای پیکربندی‌های پرمصرف استفاده می‌کنند.

در مقیاس بزرگ‌تر، موضوع حتی از خود GPU نیز فراتر می‌رود. HPE در معماری‌های AI جدید خود GPU، CPU، شبکه پرسرعت، DPU و Storage را به‌عنوان اجزای یک زیرساخت یکپارچه در نظر می‌گیرد. برای نمونه، HPE در راهکارهای AI Factory جدید خود از ترکیب سرورها، GPUهای NVIDIA، شبکه‌های پرسرعت و فناوری‌هایی مانند NVIDIA BlueField DPU استفاده می‌کند.

در مورد NPU، وضعیت سرورها متفاوت است. بخش بزرگی از توجه فعلی NPU به سیستم‌های Client، Edge و Embedded مربوط است و نمی‌توان آن را با GPUهای دیتاسنتری یکسان دانست. در سرورهای AI، شتاب‌دهنده‌های تخصصی با توان محاسباتی بالا، حافظه زیاد و قابلیت Scale-out همچنان نقش بسیار پررنگی دارند.

به همین دلیل، هنگام انتخاب سرور HPE برای AI نمی‌توان صرفاً با دیدن عبارت «NPU» یا «AI Accelerator» تصمیم گرفت. باید مشخص شود مدل موردنظر چیست، Training انجام می‌شود یا Inference، چه مقدار حافظه لازم است، چند کاربر هم‌زمان وجود دارد و چه میزان Throughput مورد نیاز است.


مصرف انرژی؛ جایی که NPU اهمیت بیشتری پیدا می‌کند

یکی از مهم‌ترین دلایل توسعه NPU، مسئله Energy Efficiency است.

فرض کنید یک لپ‌تاپ باید دائماً یک مدل AI را برای پردازش صوت، تصویر یا برخی قابلیت‌های نرم‌افزاری اجرا کند. اگر این کار به‌طور مداوم CPU یا GPU را درگیر کند، مصرف انرژی افزایش پیدا می‌کند. NPU می‌تواند بخشی از این عملیات را به یک Engine تخصصی منتقل کند که برای چنین محاسباتی بهینه شده است.

این موضوع در دستگاه‌های باتری‌محور اهمیت زیادی دارد، اما در دیتاسنتر نیز مفهوم Performance per Watt اهمیت فزاینده‌ای پیدا کرده است. با این حال، نباید تصور کرد که هر شتاب‌دهنده تخصصی الزاماً انرژی کمتری مصرف می‌کند. معیار صحیح، انرژی مصرف‌شده برای انجام یک Workload مشخص است.

در دیتاسنتر ممکن است یک GPU قدرتمند برق قابل توجهی مصرف کند، اما اگر همان GPU بتواند Workload را چندین برابر سریع‌تر انجام دهد، انرژی مصرف‌شده به ازای هر عملیات یا هر درخواست می‌تواند همچنان مناسب باشد. بنابراین مقایسه Power به‌تنهایی کافی نیست و باید به معیارهایی مانند Performance per Watt و حتی Cost per Inference نیز توجه کرد.


مقایسه CPU، GPU و NPU از نظر عملکرد و کاربرد

ویژگیCPUGPUNPU
هدف اصلیپردازش عمومیپردازش موازی و شتاب‌دهیشتاب‌دهی AI
انعطاف‌پذیریبسیار بالابالا، اما وابسته به مدل برنامه‌نویسیپایین‌تر و تخصصی‌تر
پردازش موازیمتوسط تا بالابسیار بالابسیار بالا برای Workloadهای مناسب
پردازش AIمناسببسیار قدرتمندتخصصی
Training مدل‌های بزرگمعمولاً نامناسب به‌عنوان شتاب‌دهنده اصلیبسیار مناسبمعمولاً کاربرد محدودتر
AI Inferenceمناسببسیار مناسببسیار مناسب برای مدل‌های پشتیبانی‌شده
مصرف انرژی در AIوابسته به Workloadمعمولاً بالاتر، اما با Throughput بالامعمولاً بهینه برای AIهای پشتیبانی‌شده
اجرای سیستم‌عاملعالینامناسبنامناسب
Virtualizationعالیکاربرد تخصصیکاربرد محدود
Graphicsمحدود/وابسته به iGPUعالیهدف اصلی نیست
کاربرد در سروربسیار گستردهشتاب‌دهنده مهموابسته به پلتفرم
وابستگی به Software Stackمتوسطزیادبسیار مهم

این جدول نباید به‌عنوان یک Benchmark مطلق تفسیر شود. برای مثال، «مصرف انرژی پایین‌تر NPU» به این معنی نیست که هر NPU در هر Workload از هر GPU کم‌مصرف‌تر است. همچنین عملکرد GPU یا NPU به‌شدت به مدل، Precision، Software Stack و میزان استفاده واقعی از واحدهای محاسباتی وابسته است.


برای انتخاب CPU، GPU یا NPU باید به چه مشخصاتی توجه کنیم؟

انتخاب پردازنده باید از Workload شروع شود، نه از مشخصات روی جعبه.

برای CPU، تعداد هسته و Thread مهم هستند، اما کافی نیستند. نوع هسته، فرکانس، IPC، Cache، Memory Bandwidth، تعداد Socketها، قابلیت‌های Virtualization و پشتیبانی از فناوری‌های مختلف باید با نیاز واقعی سیستم تطبیق داده شوند. در سرورهای HPE، علاوه بر مدل CPU باید محدودیت‌های همان Server Platform نیز بررسی شود؛ زیرا قابلیت‌های قابل پشتیبانی به مدل سرور، BIOS/Firmware و نسل پلتفرم وابسته است.

برای GPU، موضوع پیچیده‌تر است. ظرفیت و نوع VRAM، Memory Bandwidth، تعداد و نوع واحدهای محاسباتی، پشتیبانی از Precisionهای مختلف، Interconnect، توان مصرفی و Software Ecosystem می‌توانند تعیین‌کننده باشند. برای AI، صرفاً نگاه‌کردن به تعداد CUDA Core یا TFLOPS نیز کافی نیست؛ پشتیبانی نرم‌افزاری و توان واقعی در Model و Precision موردنظر اهمیت بسیار زیادی دارد.

برای NPU، علاوه بر TOPS باید مشخص شود این TOPS در چه Precisionی اعلام شده، چه مدل‌هایی روی NPU قابل اجرا هستند، Runtime از چه Frameworkهایی پشتیبانی می‌کند و در صورت عدم پشتیبانی یک Operator چه اتفاقی می‌افتد. ممکن است بخشی از مدل روی NPU اجرا شود و بخش دیگر به GPU یا CPU منتقل شود. در چنین شرایطی عدد TOPS به‌تنهایی تصویر دقیقی از Performance واقعی ارائه نمی‌کند.


آینده معماری پردازنده‌ها؛ حرکت از CPU محور به Heterogeneous Computing

مسیر صنعت نشان می‌دهد که آینده محاسبات احتمالاً متعلق به یک پردازنده واحد نیست.

افزایش پیچیدگی نرم‌افزارها باعث شده هر نوع Workload ویژگی‌های متفاوتی داشته باشد. یک برنامه می‌تواند هم‌زمان به محاسبات عمومی، پردازش برداری، محاسبات ماتریسی، پردازش تصویر، عملیات AI و دسترسی سریع به حافظه نیاز داشته باشد. ساخت یک CPU که همه این کارها را به بهترین شکل انجام دهد، از نظر معماری و مصرف انرژی منطقی نیست.

راه‌حل، استفاده از چند Engine تخصصی است.

در چنین سیستمی CPU نقش Coordinator و پردازنده عمومی را دارد، GPU می‌تواند عملیات موازی سنگین را انجام دهد و NPU برای بخش‌های خاصی از AI وارد عمل شود. حتی در آینده ممکن است شتاب‌دهنده‌های تخصصی بیشتری برای رمزنگاری، فشرده‌سازی، شبکه، Storage و سایر Workloadها در کنار این واحدها قرار بگیرند.

این روند را می‌توان در محصولات جدید بازار مشاهده کرد. Intel Core Ultra، AMD Ryzen AI و دیگر پلتفرم‌های جدید Client، CPU، GPU و NPU را در یک معماری ناهمگون قرار داده‌اند. در حوزه دیتاسنتر نیز HPE و شرکای آن به‌جای نگاه‌کردن صرف به یک پردازنده، در حال طراحی زیرساخت‌هایی هستند که CPU، GPU، شبکه، Storage و شتاب‌دهنده‌ها را به‌صورت یک سیستم واحد مدیریت می‌کنند.


آیا CPU، GPU و NPU در نهایت جای یکدیگر را می‌گیرند؟

احتمال چنین اتفاقی پایین است؛ زیرا مسئله اصلی تفاوت در نوع Workload است.

CPU به دلیل انعطاف‌پذیری خود همچنان برای اجرای سیستم‌عامل، برنامه‌های عمومی، سرویس‌های سازمانی و کنترل جریان پردازش ضروری خواهد بود. GPU به دلیل توانایی در پردازش موازی در Graphics، HPC و AI جایگاه مهمی دارد. NPU نیز در Workloadهای AI کم‌مصرف و On-Device می‌تواند نقش مهمی پیدا کند.

حتی ممکن است در یک برنامه واحد هر سه پردازنده مورد استفاده قرار گیرند.

در واقع، آینده محاسبات بیشتر شبیه یک تیم تخصصی است تا یک رقابت تک‌نفره. هر واحد پردازشی کاری را انجام می‌دهد که برای آن مناسب‌تر است و سیستم‌عامل، Runtime و نرم‌افزار وظیفه دارند این Workload را به شکل مؤثری میان آنها توزیع کنند.


CPU، GPU یا NPU؛ کدام را انتخاب کنیم؟

پاسخ به این سؤال کاملاً به نوع استفاده بستگی دارد.

اگر هدف اجرای سیستم‌عامل، نرم‌افزارهای سازمانی، Database، Virtualization یا سرویس‌های عمومی است، CPU همچنان انتخاب اصلی است.

اگر Workload به محاسبات موازی سنگین، Rendering، HPC یا Training و Inference در مقیاس بالا نیاز دارد، GPU می‌تواند شتاب‌دهنده بسیار قدرتمندی باشد.

اگر هدف اجرای قابلیت‌های AI روی یک دستگاه با مصرف انرژی مناسب و بدون وابستگی دائمی به Cloud باشد، NPU می‌تواند انتخاب مناسبی باشد؛ البته به شرط آنکه نرم‌افزار و مدل موردنظر واقعاً از آن پشتیبانی کنند.

اما در بسیاری از سیستم‌های مدرن، انتخاب واقعی دیگر «CPU یا GPU یا NPU» نیست. ترکیب این سه، بسته به نوع سیستم و Workload، می‌تواند بهترین نتیجه را ایجاد کند.


جمع‌بندی

CPU، GPU و NPU سه نسل پشت سر هم از پردازنده‌ها نیستند که یکی قرار باشد دیگری را کنار بزند. آنها سه رویکرد متفاوت برای حل مسئله پردازش هستند.

CPU برای انعطاف‌پذیری و پردازش عمومی ساخته شده است. GPU برای اجرای حجم بزرگی از محاسبات موازی بهینه شده و به همین دلیل به یکی از مهم‌ترین اجزای زیرساخت‌های مدرن AI و HPC تبدیل شده است. NPU نیز برای اجرای عملیات مشخص هوش مصنوعی با بهره‌وری انرژی مناسب‌تر، به‌خصوص در دستگاه‌های Client و Edge، توسعه یافته است.

تفاوت اصلی آنها در تعداد هسته یا یک عدد Benchmark خلاصه نمی‌شود؛ معماری، نوع Workload، Memory، Software Stack، Precision، Latency و مصرف انرژی همگی تعیین می‌کنند که کدام پردازنده انتخاب بهتری است.

در دنیای سرورها نیز همین اصل برقرار است. یک سرور HPE برای Workloadهای عمومی ممکن است عمدتاً به CPU متکی باشد، اما وقتی پای AI Training یا Inference سنگین به میان می‌آید، GPU Accelerator می‌تواند به بخش اصلی معماری محاسباتی تبدیل شود. HPE در سبد فعلی AI خود نمونه‌های متعددی از این رویکرد را ارائه کرده و سرورهای خود را با شتاب‌دهنده‌های NVIDIA و AMD برای طیف وسیعی از Workloadهای AI عرضه می‌کند.

در نهایت، سؤال درست هنگام انتخاب سخت‌افزار این نیست که «کدام پردازنده قوی‌تر است؟» بلکه باید پرسید:

Workload من چیست، چه مقدار Performance نیاز دارم، چه میزان Latency قابل قبول است، چه مقدار انرژی و هزینه می‌توانم صرف کنم و نرم‌افزار مورد استفاده از کدام شتاب‌دهنده به‌صورت واقعی پشتیبانی می‌کند؟

پاسخ به همین سؤال است که مشخص می‌کند در یک سیستم مشخص، CPU، GPU، NPU یا ترکیبی از آنها بهترین انتخاب خواهد بود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پرفروش ترین ها

سایر مقالات مربتط با سرور HP

راهنمای خرید سرور مناسب برای شرکت_های کوچک
راهنمای خرید

راهنمای خرید سرور مناسب برای شرکت‌های کوچک؛ از نیازسنجی تا انتخاب کانفیگ

راهنمای خرید سرور برای شرکت‌های کوچک با بررسی نیازهای واقعی کسب‌وکار، تعداد کاربران، نوع پردازنده، حافظه RAM، Storage، RAID، شبکه و قابلیت توسعه ارائه شده است. در این مقاله تفاوت سرورهای Tower و Rack و مدل‌های HPE بررسی می‌شود تا بتوانید متناسب با Workload، بودجه و آینده شرکت، انتخابی دقیق داشته باشید.

CPU ES چیست
مقالات اموزشی

CPU ES چیست؟ راهنمای کامل تشخیص پردازنده Engineering Sample از CPU اصلی

CPUهای ES یا Engineering Sample نمونه‌های پیش‌تولید پردازنده هستند که برای تست و اعتبارسنجی قبل از عرضه رسمی تولید می‌شوند. در این مقاله تفاوت ES با CPUهای Production و QS و همچنین روش‌های تشخیص آن‌ها با بررسی Marking، S-Spec، CPUID، Stepping و ابزارهای تخصصی بررسی شده است.

راهنمای انتخاب SSD بر اساس Workload
راهنمای خرید

انتخاب بهترین SSD سرور HPE بر اساس Workload

انتخاب SSD سرور HPE تنها به ظرفیت یا سرعت محدود نمی‌شود. در این راهنما با انواع SSDهای SATA، SAS و NVMe، کلاس‌های Endurance، معیارهای انتخاب بر اساس Workload و نکات مهم خرید و نگهداری SSD سرور HP آشنا می‌شوید.

سبد خرید
فيسبوک توئیتر اینستاگرام یوتیوب پینترست لینکداین واتساپ واتساپ اسنپچت تلگرام
حساب من
0 مورد سبد خرید