Core و Thread در پردازنده چیست و چند هسته و رشته برای کاربری شما کافی است؟

Core و Thread در پردازنده چیست و چند هسته و رشته برای کاربری شما کافی است؟

پنج‌شنبه، ۲۲ مرداد ۱۴۰۵

تفاوت Core و Thread در پردازنده و راهنمای انتخاب تعداد هسته و رشته مناسب

در مشخصات تقریباً هر پردازنده با دو عدد مهم روبه‌رو می‌شویم: Core و Thread. برای مثال ممکن است یک CPU با مشخصات 6 Core / 12 Thread و پردازنده‌ای دیگر با 8 Core / 8 Thread عرضه شود.

در نگاه اول شاید تصور کنیم Thread همان Core مجازی است یا هرچه تعداد Core و Thread بیشتر باشد، CPU حتماً سریع‌تر است؛ اما هیچ‌کدام از این برداشت‌ها به‌تنهایی دقیق نیستند.

Core یک منبع پردازشی فیزیکی داخل CPU است، درحالی‌که Thread در مشخصات پردازنده معمولاً به تعداد مسیرهای منطقی اجرای هم‌زمانی اشاره می‌کند که سیستم‌عامل در اختیار دارد. Microsoft نیز Logical Processor را یک موتور محاسباتی منطقی از دید سیستم‌عامل و برنامه معرفی می‌کند و توضیح می‌دهد که یک Core می‌تواند شامل یک یا چند Logical Processor باشد.

همچنین معماری پردازنده‌های امروزی موضوع را پیچیده‌تر کرده است. بعضی پردازنده‌های AMD با SMT می‌توانند دو Thread را روی هر Core اجرا کنند، درحالی‌که پردازنده‌های هیبریدی Intel ترکیبی از P-Core و E-Core دارند و حتی برخی نسل‌های جدید Core Ultra دیگر از Hyper-Threading استفاده نمی‌کنند.

بنابراین برای انتخاب CPU نباید فقط دنبال بزرگ‌ترین عدد Core یا Thread باشید.

اگر هنوز در مرحله انتخاب کلی پردازنده هستید، راهنمای خرید پردازنده کامپیوتر مسیر کامل‌تری برای انتخاب CPU بر اساس Gaming، کار روزمره و کار حرفه‌ای ارائه می‌دهد.

────────────────────────────────────────────────────────────

تفاوت Core و Thread در یک نگاه

مفهوم

توضیح ساده

Core

هسته پردازشی فیزیکی داخل CPU

Thread در مشخصات CPU

مسیر منطقی اجرای پردازش از دید سیستم‌عامل

6 Core / 6 Thread

معمولاً یک Thread سخت‌افزاری برای هر Core

6 Core / 12 Thread

معمولاً دو Thread منطقی روی هر Core با SMT/HT

Core بیشتر

منابع پردازشی فیزیکی بیشتر

Thread بیشتر

امکان استفاده بهتر از منابع Coreها در Workloadهای مناسب

Software Thread

Thread ایجادشده توسط نرم‌افزار که سیستم‌عامل آن را زمان‌بندی می‌کند

نکته مهم این است که 6 Core / 12 Thread به معنی وجود 12 هسته فیزیکی نیست.

اینفوگرافیک تفاوت Core و Thread در پردازنده با مثال 6 Core و 12 Thread

────────────────────────────────────────────────────────────

Core یا هسته پردازنده چیست؟

Core یک واحد پردازشی فیزیکی داخل CPU است که می‌تواند دستورها را اجرا کند.

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

برای مثال هنگام Gaming ممکن است هم‌زمان مواردی مثل:

  • خود بازی

  • Windows

  • Discord

  • نرم‌افزار RGB

  • آنتی‌ویروس

  • Browser

  • برنامه Recording

در حال اجرا باشند.

وجود چند Core باعث می‌شود تمام این پردازش‌ها مجبور نباشند برای استفاده از تنها یک هسته منتظر یکدیگر بمانند.

اما قدرت یک Core فقط به وجود آن وابسته نیست. معماری، IPC، Clock، Cache، Latency و طراحی CPU نیز تعیین می‌کنند هر Core چقدر کار می‌تواند انجام دهد.

پس:

8 Core در یک پردازنده الزاماً با 8 Core در یک پردازنده دیگر Performance یکسانی ندارد.

────────────────────────────────────────────────────────────

Thread در CPU چیست؟

Thread را باید از دو زاویه بررسی کرد.

از دید نرم‌افزار، Thread یک مسیر اجرای دستور داخل یک Process است. یک برنامه می‌تواند چندین Thread ایجاد کند و سیستم‌عامل تصمیم می‌گیرد هرکدام در چه زمانی روی کدام Logical Processor اجرا شوند.

اما وقتی در صفحه مشخصات یک CPU عبارت:

8 Cores / 16 Threads

را می‌بینیم، منظور معمولاً 16 Logical Processor سخت‌افزاری قابل مشاهده برای سیستم‌عامل است.

Microsoft توضیح می‌دهد که سیستم‌عامل Logical Processorها را به‌عنوان موتورهای محاسباتی منطقی می‌بیند و Threadهای نرم‌افزاری می‌توانند روی آن‌ها زمان‌بندی شوند.

بنابراین تعداد Thread درج‌شده در مشخصات CPU به این معنی نیست که سیستم فقط می‌تواند همان تعداد Software Thread داشته باشد.

یک برنامه می‌تواند بسیار بیشتر از 16 Software Thread ایجاد کند؛ سیستم‌عامل آن‌ها را بین منابع سخت‌افزاری موجود زمان‌بندی می‌کند.

────────────────────────────────────────────────────────────

تفاوت Core فیزیکی و Logical Processor چیست؟

فرض کنید یک CPU دارای:

6 Core / 12 Thread

باشد.

در این حالت شش واحد پردازشی فیزیکی داریم، اما سیستم‌عامل 12 Logical Processor در اختیار می‌بیند.

این Logical Processorها کاملاً مستقل از یکدیگر نیستند؛ دو Threadی که روی یک Core فیزیکی اجرا می‌شوند بخشی از منابع همان Core را با یکدیگر به اشتراک می‌گذارند.

Intel در توضیح Hyper-Threading نیز می‌گوید برخی منابع مانند Cache، Execution Unit و Bus بین Logical Processorهای یک Core مشترک هستند.

به همین دلیل:

6 Core / 12 Thread معادل 12 Core / 12 Thread نیست.

پردازنده 12 هسته فیزیکی منابع پردازشی بسیار بیشتری در اختیار دارد، هرچند نتیجه نهایی همچنان به معماری و Workload وابسته است.

────────────────────────────────────────────────────────────

SMT و Hyper-Threading چیست؟

SMT یا Simultaneous Multithreading فناوری‌ای است که اجازه می‌دهد یک Core فیزیکی بیش از یک Thread را به‌صورت هم‌زمان مدیریت کند.

AMD توضیح می‌دهد که در معماری Zen از 2-way SMT استفاده می‌شود؛ یعنی یک Core می‌تواند دو Thread را هم‌زمان اجرا کند.

برای مثال Ryzen 9 9950X دارای:

16 Core / 32 Thread

است و AMD در مشخصات رسمی این مدل SMT را فعال اعلام می‌کند.

Intel نام پیاده‌سازی شناخته‌شده خود از این مفهوم را Hyper-Threading گذاشته است. Intel توضیح می‌دهد Hyper-Threading اجازه می‌دهد بیش از یک Thread روی هر Core اجرا شود.

اما تمام پردازنده‌های Intel امروزی الزاماً Hyper-Threading ندارند.

────────────────────────────────────────────────────────────

چرا یک Core می‌تواند دو Thread اجرا کند؟

یک Core هنگام اجرای یک Thread همیشه از تمام منابع داخلی خود در هر لحظه استفاده نمی‌کند.

ممکن است یک Thread منتظر داده از Cache یا Memory باشد یا بخش‌هایی از Execution Resources برای لحظاتی بدون استفاده باقی بمانند.

SMT تلاش می‌کند از این ظرفیت خالی استفاده کند و دستورهای Thread دیگری را نیز وارد Core کند.

به همین دلیل Thread دوم معمولاً Performance یک Core کامل دوم را ایجاد نمی‌کند، اما در Workloadهای مناسب می‌تواند Throughput پردازنده را افزایش دهد. AMD نیز توضیح می‌دهد که بسیاری از Workloadها از SMT سود می‌برند، درحالی‌که برخی Workloadهای خاص ممکن است استفاده انحصاری از منابع Core را ترجیح دهند.

پس نباید گفت:

1 Core + SMT = 2 Core

بلکه بهتر است بگوییم:

SMT تلاش می‌کند از منابع یک Core فیزیکی بهتر استفاده کند.

────────────────────────────────────────────────────────────

آیا Hyper-Threading و SMT یکی هستند؟

از نظر مفهوم کلی بسیار نزدیک‌اند.

SMT نام عمومی فناوری اجرای چند Thread هم‌زمان روی یک Core است.

Hyper-Threading نام فناوری Intel برای این نوع Multithreading در پردازنده‌هایی است که از آن پشتیبانی می‌کنند.

AMD معمولاً از عبارت SMT استفاده می‌کند.

بنابراین در مقایسه مشخصات ممکن است با این عبارات روبه‌رو شوید:

AMD SMT

یا:

Intel Hyper-Threading

اما وجود این فناوری باید برای مدل دقیق CPU بررسی شود و نباید فقط از روی برند نتیجه گرفت.

────────────────────────────────────────────────────────────

چرا بعضی پردازنده‌های جدید Intel تعداد Core و Thread یکسان دارند؟

این نکته در نسل‌های جدید Intel اهمیت زیادی پیدا کرده است.

پردازنده‌های Intel Core Ultra Series 2 بدون Hyper-Threading طراحی شده‌اند. Intel به‌طور رسمی اعلام می‌کند Core Ultra Series 2 از Intel Hyper-Threading Technology استفاده نمی‌کند.

بنابراین ممکن است پردازنده‌ای مانند Core Ultra دارای:

20 Core / 20 Thread

باشد.

در مقابل بعضی پردازنده‌های Core نسل‌های قبلی دارای P-Coreهایی با Hyper-Threading بودند و تعداد Thread آن‌ها از تعداد Core بیشتر بود.

این موضوع نشان می‌دهد:

Thread Count کمتر در یک معماری جدید الزاماً به معنی CPU ضعیف‌تر نیست.

معماری، نوع Coreها و Performance واقعی باید در کنار عدد Thread بررسی شوند.

برای شناخت بهتر نسل‌ها و نام‌گذاری Intel می‌توانید مقاله Core i3، i5، i7، i9 یا Core Ultra؛ کدام پردازنده Intel را بخریم؟ را ببینید.

────────────────────────────────────────────────────────────

P-Core و E-Core چه ارتباطی با تعداد هسته دارند؟

پردازنده‌های هیبریدی Intel می‌توانند دو نوع Core داشته باشند:

  • P-Core یا Performance Core

  • E-Core یا Efficient Core

Intel توضیح می‌دهد P-Coreها برای Performance بالا و Workloadهای سنگین تک‌رشته‌ای طراحی شده‌اند و E-Coreها بیشتر روی Efficiency و Performance چند‌رشته‌ای مقیاس‌پذیر تمرکز دارند.

در برخی نسل‌های Core کلاسیک، P-Core می‌تواند Hyper-Threading داشته باشد، درحالی‌که E-Core یک Thread اجرا می‌کند. اما همان‌طور که گفته شد، Core Ultra Series 2 دیگر Hyper-Threading ندارد.

به همین دلیل مقایسه فقط با عبارت:

CPU A = 16 Core

CPU B = 16 Core

کافی نیست.

ممکن است ترکیب Coreها کاملاً متفاوت باشد.

────────────────────────────────────────────────────────────

Thread Director چه کاری انجام می‌دهد؟

در معماری‌های هیبریدی، سیستم باید تصمیم بگیرد کدام Thread روی P-Core و کدام روی E-Core اجرا شود.

Intel برای کمک به این فرایند از Thread Director استفاده می‌کند که اطلاعات مربوط به Workload را در اختیار سیستم‌عامل قرار می‌دهد تا Scheduling مناسب‌تری بین Coreها انجام شود. Intel این فناوری را یکی از بخش‌های معماری هیبریدی خود معرفی می‌کند.

این موضوع یکی دیگر از دلایلی است که تعداد Core به‌تنهایی تصویر کاملی از رفتار یک CPU جدید ارائه نمی‌دهد.

────────────────────────────────────────────────────────────

آیا Core بیشتر همیشه CPU را سریع‌تر می‌کند؟

خیر.

Core بیشتر زمانی ارزش بالایی دارد که Workload بتواند کار را بین چند Thread تقسیم کند.

بعضی برنامه‌ها بسیار خوب با افزایش Core مقیاس می‌شوند و بعضی نه.

برای مثال Workloadهایی مانند:

  • Rendering

  • Encoding

  • Compilation

  • Simulation

  • Virtual Machine

  • بعضی ابزارهای تولید محتوا

می‌توانند از Coreهای بیشتر استفاده بیشتری داشته باشند.

اما بعضی Taskها به بخش محدودی از برنامه وابسته‌اند که قابل Parallel شدن نیست.

در Gaming نیز Intel در راهنمای توسعه خود اشاره می‌کند که اضافه‌کردن تعداد بسیار زیاد Thread می‌تواند پس از یک نقطه باعث افزایش Overhead مدیریت Threadها شود و Performance لزوماً به‌صورت خطی رشد نمی‌کند.

پس رابطه زیر درست نیست:

2 برابر Core = 2 برابر Performance

────────────────────────────────────────────────────────────

آیا Thread بیشتر همیشه بهتر است؟

باز هم خیر.

Thread بیشتر ظرفیت اجرای هم‌زمان را افزایش می‌دهد، اما نرم‌افزار باید بتواند از آن استفاده کند.

برای مثال اگر یک برنامه عمدتاً یک یا چند Thread اصلی سنگین داشته باشد، داشتن 32 Thread سخت‌افزاری الزاماً باعث نمی‌شود آن برنامه دو برابر سریع‌تر از CPU با 16 Thread اجرا شود.

همچنین دو Logical Thread روی یک Core منابع فیزیکی Core را به اشتراک می‌گذارند؛ بنابراین افزایش Thread با افزایش Core فیزیکی یکسان نیست.

────────────────────────────────────────────────────────────

Single-Thread و Multi-Thread چه تفاوتی دارند؟

Single-Thread Performance نشان می‌دهد CPU هنگام اجرای Workloadای که عمدتاً به یک Thread وابسته است چقدر سریع عمل می‌کند.

Multi-Thread Performance نشان می‌دهد پردازنده هنگام استفاده هم‌زمان از تعداد بیشتری Core و Thread چه مقدار Throughput ارائه می‌کند.

اما این دو معیار رقیب یکدیگر نیستند.

یک CPU خوب ممکن است به هر دو نیاز داشته باشد.

Gaming معمولاً به Performance بالای Threadهای اصلی اهمیت زیادی می‌دهد، درحالی‌که Rendering یا Encoding می‌توانند از ظرفیت Multi-Core بیشتری بهره ببرند.

به همین دلیل انتخاب CPU باید بر اساس نوع Workload انجام شود.

────────────────────────────────────────────────────────────

چند Core و Thread برای کار روزمره کافی است؟

برای وب، Office، مشاهده فیلم، امور دانشجویی و نرم‌افزارهای عمومی، نیازی به تعداد بسیار زیادی Core نیست.

به‌عنوان یک نقطه شروع عملی برای خرید سیستم جدید می‌توان چنین محدوده‌ای را در نظر گرفت:

4 Core / 8 Thread یا بالاتر

اما این عدد حداقل رسمی نرم‌افزارها نیست.

در سیستم جدید، یک CPU مدرن 6 هسته‌ای معمولاً فضای بیشتری برای Multitasking، برنامه‌های پس‌زمینه و استفاده چندساله ایجاد می‌کند.

در این سطح، معماری جدید، SSD مناسب و RAM کافی معمولاً بیشتر از ارتقای بی‌دلیل CPU به 12 یا 16 Core روی تجربه کاربر تأثیر می‌گذارند.

────────────────────────────────────────────────────────────

چند Core برای Gaming کافی است؟

برای Gaming یک عدد ثابت وجود ندارد.

نوع بازی، GPU، رزولوشن، FPS هدف و برنامه‌های پس‌زمینه نتیجه را تغییر می‌دهند.

برای بسیاری از Gaming PCهای جدید، این چارچوب می‌تواند نقطه شروع مناسبی باشد:

نوع سیستم

نقطه شروع پیشنهادی

Gaming اقتصادی

6 Core مدرن

Gaming Mainstream

6 Core / 12 Thread یا سطح مشابه

Gaming رده‌بالا

8 Core قدرتمند یا معماری هیبریدی هم‌رده

Gaming + Streaming

معمولاً 8 Core یا بیشتر بر اساس Encoder و Workload

Competitive FPS بالا

Performance هسته و Latency بسیار مهم

این اعداد قانون سخت‌افزاری نیستند.

یک 6 Core نسل جدید ممکن است در Gaming از یک CPU قدیمی با Core بیشتر سریع‌تر باشد.

همچنین معماری‌های هیبریدی Intel باعث می‌شوند تبدیل ساده P-Core + E-Core به یک عدد سنتی 6 یا 8 Core همیشه معنی دقیقی نداشته باشد.

────────────────────────────────────────────────────────────

برای Gaming تعداد Core مهم‌تر است یا Clock؟

هیچ‌کدام به‌تنهایی.

Performance بازی می‌تواند تحت تأثیر موارد زیر باشد:

  • IPC

  • Clock

  • Cache

  • Memory Latency

  • Core Count

  • Game Engine

  • GPU

  • سیستم‌عامل

  • Scheduling

باشد.

به همین دلیل هنگام خرید Gaming CPU باید Benchmarkهای مرتبط با بازی‌های واقعی را در کنار Specification بررسی کرد.

پردازنده‌های Ryzen X3D مثال خوبی هستند که نشان می‌دهند Cache نیز می‌تواند در Gaming به‌اندازه‌ای مهم باشد که مقایسه ساده Core و Clock کافی نباشد.

برای مقایسه رده‌های AMD می‌توانید مقاله Ryzen 5، Ryzen 7 یا Ryzen 9؛ کدام پردازنده AMD را بخریم؟ را نیز مطالعه کنید.

────────────────────────────────────────────────────────────

چند Core برای Streaming و Gaming هم‌زمان نیاز داریم؟

Streaming می‌تواند بسته به روش Encoding فشار متفاوتی روی CPU ایجاد کند.

اگر Encode عمدتاً توسط GPU انجام شود، نیاز CPU می‌تواند با حالتی که Software Encoding روی خود CPU انجام می‌شود متفاوت باشد.

برای سیستمی که Gaming، Streaming، Discord، Browser و برنامه‌های دیگر را هم‌زمان اجرا می‌کند، داشتن Headroom بیشتر نسبت به سیستم فقط Gaming منطقی است.

برای چنین Buildهایی معمولاً:

8 Core قدرتمند یا CPU هم‌رده با ظرفیت Multi-Thread مناسب

نقطه شروع مطمئن‌تری است.

اما انتخاب نهایی باید با توجه به Encoder و نرم‌افزار Streaming انجام شود.

────────────────────────────────────────────────────────────

چند Core و Thread برای تدوین و تولید محتوا کافی است؟

تدوین یک Workload واحد نیست.

نرم‌افزار ممکن است هنگام:

  • Decode

  • Playback

  • Effect

  • Export

  • Encoding

  • Proxy Generation

از CPU و GPU به شکل متفاوتی استفاده کند.

برای کار نیمه‌حرفه‌ای، معمولاً پردازنده‌ای در محدوده:

8 Core / 16 Thread یا Performance مشابه

نقطه شروع خوبی محسوب می‌شود.

برای پروژه‌های سنگین‌تر، Multicam، Export مداوم یا ترکیب تدوین با سایر Workloadها، 12 Core و بیشتر می‌تواند ارزش بیشتری پیدا کند.

اما قبل از خرید CPU بسیار گران، Benchmark همان نرم‌افزار و Codec مورد استفاده خود را بررسی کنید.

────────────────────────────────────────────────────────────

چند Core برای Rendering لازم است؟

در CPU Rendering تعداد Core و Thread اهمیت بسیار بیشتری پیدا می‌کند.

اگر Render Engine بتواند Workload را به‌خوبی بین Threadها تقسیم کند، پردازنده‌های 12، 16 یا تعداد Core بالاتر می‌توانند نسبت به CPUهای Mainstream زمان Render را کاهش دهند.

برای نمونه AMD Ryzen 9 9950X دارای 16 Core و 32 Thread است و خانواده Ryzen 9000 تا این سطح از Core/Thread در دسکتاپ Mainstream ارائه می‌شود.

در Workstationهای بسیار سنگین نیز پردازنده‌هایی مانند Threadripper به تعداد بسیار بالاتری Core و Thread می‌رسند.

اما اگر Render شما GPU-based باشد، افزایش بودجه CPU همیشه بهترین راه افزایش Performance نیست.

────────────────────────────────────────────────────────────

برای برنامه‌نویسی چند Core لازم است؟

برای برنامه‌نویسی معمولی، تعداد بسیار زیاد Core ضروری نیست.

IDE، Browser، Database محلی و Development Tools معمولاً روی یک CPU Mainstream مدرن تجربه خوبی ارائه می‌کنند.

برای بسیاری از توسعه‌دهندگان:

6 Core / 12 Thread

یا:

8 Core / 16 Thread

محدوده مناسبی برای شروع است.

اما شرایط هنگام کار با:

  • Compilation بزرگ

  • Android Build

  • چند Container

  • Virtual Machine

  • Build Server محلی

  • پروژه‌های بسیار بزرگ

تغییر می‌کند.

در این سناریوها Core بیشتر می‌تواند زمان Build و Multitasking را بهبود دهد.

────────────────────────────────────────────────────────────

برای Virtual Machine تعداد Thread مهم است؟

بله، ولی RAM معمولاً به همان اندازه یا حتی بیشتر اهمیت دارد.

هر Virtual Machine می‌تواند چند vCPU دریافت کند و Host نیز باید منابع کافی برای سیستم‌عامل اصلی داشته باشد.

در سیستم‌هایی که چند VM به‌صورت هم‌زمان اجرا می‌شوند، CPU با Core بیشتر آزادی بیشتری برای تخصیص منابع ایجاد می‌کند.

برای استفاده معمولی از یک یا دو VM سبک، یک CPU مدرن 8 Core می‌تواند نقطه شروع خوبی باشد.

اما برای Labهای سنگین، چند VM فعال یا Workstation مجازی‌سازی، باید Core Count، RAM Capacity و Storage هم‌زمان بررسی شوند.

────────────────────────────────────────────────────────────

جدول سریع؛ چند Core و Thread برای من مناسب است؟

جدول زیر پیشنهاد خرید عمومی است و حداقل رسمی هیچ نرم‌افزاری محسوب نمی‌شود:

نوع کاربری

محدوده عملی پیشنهادی

Office و وب

4C/8T یا بالاتر

سیستم عمومی جدید

6C/12T یا سطح مشابه

برنامه‌نویسی معمولی

6C/12T تا 8C/16T

Gaming اقتصادی

6 Core مدرن

Gaming Mainstream

حدود 6C/12T یا بالاتر

Gaming رده‌بالا

8 Core قدرتمند یا Hybrid معادل

Gaming + Streaming

8 Core یا بیشتر بر اساس Workload

تدوین نیمه‌حرفه‌ای

حدود 8C/16T

تدوین و Encoding سنگین

12 Core یا بیشتر می‌تواند ارزشمند باشد

CPU Rendering

12، 16 Core یا بیشتر بر اساس بودجه

چند Virtual Machine

8 Core به بالا + RAM کافی

Workstation سنگین

براساس نرم‌افزار؛ Core Count بالا می‌تواند اولویت باشد

در معماری‌های Hybrid، عبارت‌هایی مثل 6C/12T یا 8C/16T را نباید مستقیماً روی تمام مدل‌های Intel اعمال کرد؛ مشخصات P-Core/E-Core و Benchmark واقعی مدل اهمیت بیشتری دارد.

راهنمای تعداد Core و Thread مناسب برای کار روزمره، گیمینگ، برنامه‌نویسی، تدوین و رندر

────────────────────────────────────────────────────────────

آیا برای آینده Core بیشتری بخریم؟

مقداری Headroom می‌تواند منطقی باشد.

اگر امروز سیستم شما دائماً درگیر Multitasking است یا می‌دانید در آینده Streaming، Editing یا Virtualization به Workload اضافه می‌شود، رفتن یک سطح بالاتر ممکن است ارزش داشته باشد.

اما خرید CPU با دو برابر Core صرفاً با این تصور که «شاید پنج سال دیگر لازم شود» همیشه بهترین استفاده از بودجه نیست.

در بسیاری از سیستم‌ها بودجه اضافه ممکن است در:

  • GPU

  • RAM

  • SSD

  • Cooler

  • Power Supply

  • Monitor

تأثیر بیشتری روی تجربه واقعی داشته باشد.

Future-proofing باید متناسب باشد، نه حداکثری.

────────────────────────────────────────────────────────────

آیا 8 Core / 16 Thread دو برابر 4 Core / 8 Thread سریع است؟

خیر.

حتی اگر معماری و Clock یکسان باشند، نرم‌افزار باید بتواند Workload را به اندازه کافی Parallel کند تا از Coreهای اضافه استفاده شود.

در برخی Workloadهای بسیار Parallel افزایش Core می‌تواند Scaling خوبی ایجاد کند، اما در بسیاری از برنامه‌ها بخشی از کار Serial باقی می‌ماند.

همچنین Memory، Cache، Power Limit و سایر Bottleneckها می‌توانند مانع Scaling خطی شوند.

بنابراین Core/Thread عددی برای تخمین ظرفیت پردازنده است، نه فرمول مستقیم Performance.

────────────────────────────────────────────────────────────

از کجا بفهمیم نرم‌افزار ما به Core بیشتری نیاز دارد؟

قبل از Upgrade می‌توانید رفتار سیستم را بررسی کنید.

اگر هنگام Workload اصلی:

  • تعداد زیادی Core دائماً نزدیک استفاده کامل هستند

  • Render یا Compile مدت زیادی CPU را درگیر می‌کند

  • هم‌زمانی چند برنامه سیستم را کند می‌کند

  • نرم‌افزار در Benchmarkها از CPUهای High-Core به‌خوبی Scale می‌شود

Core بیشتر می‌تواند مفید باشد.

اما اگر فقط یک یا دو Thread محدودکننده باشند، خرید پردازنده‌ای با Core بسیار بیشتر ممکن است نتیجه مورد انتظار را ایجاد نکند.

در چنین حالتی Performance هر Core و معماری جدیدتر می‌تواند مهم‌تر باشد.

────────────────────────────────────────────────────────────

Core و Thread را در Windows از کجا ببینیم؟

در Windows می‌توانید از Task Manager > Performance > CPU اطلاعات پردازنده را مشاهده کنید.

عدد Cores تعداد هسته‌های فیزیکی و Logical Processors تعداد منابع منطقی قابل مشاهده برای سیستم‌عامل را نشان می‌دهد.

Microsoft نیز بین Physical Processor، Core و Logical Processor تمایز قائل می‌شود و Logical Processor را واحد منطقی‌ای معرفی می‌کند که Windows برای Scheduling مشاهده می‌کند.

اگر مثلاً Task Manager نشان دهد:

Cores: 8

Logical processors: 16

پردازنده شما 8 Core فیزیکی و 16 Logical Processor در اختیار سیستم قرار داده است.

────────────────────────────────────────────────────────────

هنگام مقایسه دو CPU چه چیزی را کنار Core و Thread ببینیم؟

Core و Thread فقط بخشی از Specification هستند.

هنگام مقایسه CPU این موارد را هم بررسی کنید:

  • نسل پردازنده

  • معماری

  • P-Core / E-Core

  • IPC

  • Boost Clock

  • Cache

  • Power

  • Memory Support

  • Benchmark Gaming

  • Benchmark نرم‌افزار حرفه‌ای

  • قیمت CPU

  • هزینه Platform

برای مثال دو پردازنده 8 Core ممکن است به دلیل معماری متفاوت Performance کاملاً متفاوتی داشته باشند.

به همین دلیل مقایسه Specification باید همیشه با Benchmark مرتبط با نوع کاربری تکمیل شود.

────────────────────────────────────────────────────────────

اشتباهات رایج درباره Core و Thread

تصور اینکه Thread همان Core است

Logical Thread از منابع Core فیزیکی استفاده می‌کند و معادل Core مستقل نیست.

خرید فقط بر اساس تعداد Core

معماری و Performance هر Core می‌تواند نتیجه را تغییر دهد.

تصور اینکه Thread بیشتر همیشه FPS بیشتری می‌دهد

بازی باید بتواند از Threadهای اضافه استفاده کند و GPU نیز می‌تواند عامل محدودکننده باشد.

مقایسه مستقیم Core در معماری‌های مختلف

Coreهای AMD Zen، Intel P-Core و Intel E-Core طراحی یکسانی ندارند.

تصور اینکه تمام Intelها Hyper-Threading دارند

Core Ultra Series 2 بدون Hyper-Threading طراحی شده است.

تصور اینکه SMT Performance را دو برابر می‌کند

دو Logical Thread منابع یک Core فیزیکی را به اشتراک می‌گذارند و افزایش Performance به Workload بستگی دارد.

خرید Core بسیار زیاد برای استفاده ساده

اگر نرم‌افزار نتواند از Coreها استفاده کند، بخش زیادی از بودجه CPU بدون استفاده می‌ماند.

────────────────────────────────────────────────────────────

جمع‌بندی؛ چند Core و Thread برای CPU کافی است؟

هیچ عددی برای تمام کاربران مناسب نیست.

برای استفاده روزمره و سیستم عمومی، یک CPU مدرن با 4 تا 6 Core می‌تواند نیاز بسیاری از کاربران را پوشش دهد.

برای Gaming، یک پردازنده مدرن 6 Core معمولاً نقطه شروع منطقی است و سیستم‌های رده‌بالاتر می‌توانند از 8 Core قدرتمند یا معماری‌های Hybrid جدید استفاده کنند.

برای Streaming، تدوین و تولید محتوا، 8 Core و بیشتر می‌تواند Headroom مناسبی ایجاد کند.

برای CPU Rendering، Encoding سنگین، Compilation یا Workstation، پردازنده‌های 12، 16 Core و بیشتر ارزش واقعی بیشتری پیدا می‌کنند.

اما مهم‌ترین قاعده این است:

Core بیشتر را زمانی بخرید که Workload شما بتواند از آن استفاده کند.

همچنین Thread را با Core فیزیکی یکی ندانید و پردازنده‌ها را فقط با عبارت‌هایی مثل 8 Core یا 16 Thread مقایسه نکنید.

ترکیب:

معماری + Core + Thread + Cache + Clock + Workload واقعی

است که Performance CPU را مشخص می‌کند.

برای مشاهده پردازنده‌های موجود می‌توانید پردازنده‌های آریو چیپ را بررسی کنید.

────────────────────────────────────────────────────────────

منابع

سوالات پرتکرار

چرا بعضی CPUهای 16 هسته‌ای فقط 16 Thread دارند؟

چون تمام معماری‌ها از SMT یا Hyper-Threading استفاده نمی‌کنند. برای نمونه Intel Core Ultra Series 2 بدون Hyper-Threading طراحی شده است؛ بنابراین تعداد Thread می‌تواند با تعداد Core برابر باشد.

آیا نرم‌افزار باید از Multi-Core پشتیبانی کند تا Core بیشتر مفید باشد؟

بله. برنامه باید Workload خود را به چند Thread قابل اجرا تقسیم کند تا بتواند از Coreهای بیشتری استفاده کند. برخی Workloadها به‌خوبی Parallel می‌شوند و برخی دارای بخش‌های Serial هستند؛ بنابراین Scaling با افزایش Core بین نرم‌افزارها یکسان نیست.

آیا یک پردازنده 4 Core / 8 Thread می‌تواند مثل 8 Core / 8 Thread باشد؟

خیر. در 4C/8T تنها چهار Core فیزیکی وجود دارد و Logical Threadها منابع آن Coreها را به اشتراک می‌گذارند. در 8C/8T هشت Core فیزیکی وجود دارد. با این حال Performance نهایی همچنان به معماری، Clock و Workload بستگی دارد.

آیا خاموش‌کردن SMT یا Hyper-Threading Performance را بیشتر می‌کند؟

برای استفاده عمومی معمولاً دلیلی برای غیرفعال‌کردن آن وجود ندارد. تأثیر این کار به Workload وابسته است؛ AMD نیز گزارش می‌کند که بسیاری از Workloadها از SMT سود می‌برند، درحالی‌که تعداد محدودی از Workloadهای تخصصی ممکن است عملکرد متفاوتی با SMT غیرفعال داشته باشند. بهترین تصمیم باید براساس Benchmark همان نرم‌افزار انجام شود.

چرا در Task Manager تعداد Logical Processor از Core بیشتر است؟

اگر CPU از SMT یا Hyper-Threading استفاده کند، هر Core فیزیکی ممکن است بیش از یک Logical Processor در اختیار سیستم‌عامل قرار دهد. مثلاً یک CPU با 8 Core و SMT دوطرفه می‌تواند 16 Logical Processor داشته باشد. البته این 16 Logical Processor به معنی وجود 16 هسته فیزیکی مستقل نیستند.