چرا تعداد هستههای CPU به اندازهی GPU نیست؟
حال این سوال مطرح میشود که اگر پردازش موازی باعث افزایش سرعت میشود چرا CPUها مثل GPUها از چندین هسته بهره نمیبرند؟ GPUها نیز وظیفهی پردازش امور را برعهده دارد اما این پردازندهها از چندین هسته بهره میبرند. به عنوان مثال کارت گرافیک قدرتمند GeForce 1080 انویدیا از ۲۵۶۰ هسته بهره میبرد این در حالی است که CPU کامپیوترهای دسکتاپ حداکثر ۱۰ هسته دارند.
هرچند GPU تعداد هستههای به مراتب بیشتری نسبت به CPUها دارند، اما این هستهها، بسیار ضعیفتر بوده و با فرکانس پایینتری کار میکنند. پاسخ کوتاه به این پرسش این است کهGPU یا پردازنده گرافیکی همانطور که از نامش پیدا است برای پردازش امور مرتبط با گرافیک مانند رندر تصاویر بازیها یا نرمافزارهای سه بعدی یا ادیت ویدیو بکار میروند. اما در عوض CPU قادر به انجام پردازشهای مختلف برای امور گوناگون است. اموری که برای پردازش به GPU سپرده میشوند، عموما امکان خرد کردن آنها و پردازش موازی گستردهشان وجود دارد. حتی در بازیها نیز بعضی از امور مانند هوش مصنوعی توسط CPU پردازش میشود چرا که هستههای ضعیف GPU قادر به پردازش تسکهای بزرگ و پیچیدهی مربوط به هوش مصنوعی نیستند و از طرفی خرد کردن این دستورات در چندین تسک کوچک نیز کار دشواری است.
پس پردازندههای گرافیکی برای انجام امور مرتبط با تصویر و گرافیک طراحی شدهاند و این دست از امور به شکل سادهتری قادر به خرد شدن و پردازش موازی بین هستههای زیاد هستند اما در عوض CPU برای پردازش طیف وسیعتری از امور طراحی شده است و در عوض دستورات پردازش شده توسط CPU سختتر خرد میشوند.
فناوری Hyper Threading
این فناوری که توسط اینتل توسعه داده شده امکان اجرای تسکهای همزمان بیشتر در پردازنده را میسر میکند. هایپر-تردینگ اولین بار در سال ۲۰۰۲ و به همراه Pentium 4 HT معرفی شد. پنتیوم ۴ تنها یک هسته داشت و قادر به اجرای همزمان یک دستور بود؛ اما به کمک فناوری هایپر-تردینگ در نسخهی HT این پردازنده، امکان اجرای همزمان دو دستور فراهم شد.
در فناوری هایپر-تردینگ دو یا چند هستهی منطقی به ازاء هر هستهی فیزیکی ایجاد میشود و رفتار سیستمعامل با این هستههای منطقی درست مثل هستههای فیزیکی است. به این ترتیب تسکها بصورت موازی پردازش شده و پردازنده با توان بیشتر شروع به پردازش امور میکند. در واقع پردازنده، به نوعی سیستمعامل را فریب و به کمک مکانیزم خاصی پردازش موازی را در هر هسته شکل میدهد. در این حالت منابع پردازنده به دو بخش تقسیم میشوند. اگر یکی از هستههای مجازی پردازش تسک مورد نظر خود را به پایان برساند و به حالت انتظار برود، منابع در دسترس آن به پردازش سریعتر تسک موازی آن به هستهی مجازی دیگر قرض داده میشود. در اکثر شرایط فناوری هایپر-تردینگ به خوبی شرایطی که پردازنده دو برابر هسته داشته باشد کار میکند.
پردازندههای جدید امروزی نه تنها از چند هسته بهره میبرند بلکه فناوری Hyper-Threading را نیز دارند. در این حالت مثلا پردازندهی دو هستهای با فناوری هایپر-تردینگ همچون پردازندهی ۴ هستهای در سیستمعامل شناخته میشود.