Що означають ядра та потоки процесора

«8 ядер, 16 потоків» на коробці процесора звучить як подвійна потужність, але це не так. Ядра — це фізичні обчислювальні блоки; потоки — спосіб завантажити їх щільніше.

Ілюстрація до статті: Що означають ядра та потоки процесора

Оновлено:

«8 ядер, 16 потоків» на коробці процесора звучить як подвійна потужність, але це не так. Ядра — це фізичні обчислювальні блоки; потоки — спосіб завантажити їх щільніше. Розуміння різниці допомагає відповісти на практичні питання: чому гра гальмує на 16-ядерному процесорі, чому ноутбук із меншою кількістю ядер може бути швидшим у щоденній роботі, і на що дивитися при виборі — на кількість ядер, частоту чи щось інше.

Як ядра й потоки ділять роботу

Ядро — це повноцінний процесор усередині мікросхеми: воно має власні блоки виконання інструкцій, регістри й кеш першого рівня. Кілька ядер справді виконують кілька потоків інструкцій одночасно. Чотири ядра можуть у той самий момент кодувати відео, обробляти веб-сторінку, сканувати файли антивірусом і грати музику.

Потоки в маркетингу процесорів — це апаратна багатопотоковість (Hyper-Threading в Intel, SMT в AMD). Одне ядро отримує два набори регістрів і може тримати два програмні потоки «на старті». Поки один чекає на дані з пам’яті (а це трапляється постійно й триває сотні тактів), ядро виконує інструкції другого. Виконавчі блоки при цьому ті самі, тож приріст становить не 100 %, а зазвичай 15–30 % у задачах, які добре паралеляться, і нуль або навіть мінус у задачах, що впираються в один блок. Отже, 8 ядер / 16 потоків — це 8 процесорів із покращеним завантаженням, а не 16.

Програмні потоки — інша річ: це незалежні послідовності виконання всередині програми. Операційна система розподіляє їх між ядрами. Програма може створити сотні потоків, і планувальник по черзі даватиме їм час на доступних ядрах.

Чому більше ядер не завжди швидше

Ядра допомагають лише тоді, коли роботу можна розділити. Кодування відео, компіляція, рендеринг 3D, наукові розрахунки, віртуальні машини діляться добре й масштабуються майже лінійно. Але багато задач мають послідовну природу: наступний крок залежить від результату попереднього. Логіка гри, інтерфейс програми, більшість скриптів на сторінці, старі програми — все це виконується в одному-двох потоках. Такій задачі потрібне швидке ядро, а не багато ядер. Закон Амдала формалізує це: якщо 20 % роботи неможливо розпаралелити, навіть нескінченна кількість ядер прискорить програму не більше ніж у п’ять разів.

Швидкість одного ядра визначають частота (ГГц) і кількість інструкцій за такт (IPC), яка залежить від архітектури й покоління. Нове покоління з меншою частотою часто швидше за старе з більшою. Частота, до того ж, не постійна: процесор розганяється на одному-двох ядрах (turbo) і знижує її, коли завантажені всі, щоб не перевищити ліміт тепла й живлення. Ноутбук із тонким корпусом може мати ті ж ядра, що й настільний ПК, але тримати частоту вдвічі нижчу.

Гібридні процесори

Сучасні мікросхеми Intel, Apple і ARM поєднують продуктивні ядра (P) для важких задач і енергоефективні ядра (E) для фонової роботи. «14 ядер» може означати 6 швидких і 8 повільних. Планувальник операційної системи вирішує, який потік куди відправити; для користувача це означає довшу роботу від батареї без втрати швидкості в активній задачі, але порівнювати такі процесори за кількістю ядер безглуздо.

Як обирати

  • Офіс, веб, навчання: 4–6 сучасних ядер з високою одноядерною продуктивністю; далі важливіші SSD і достатньо пам’яті.
  • Ігри: швидкі ядра, 6–8 штук; понад це ігри рідко використовують, а відеокарта важить більше.
  • Відеомонтаж, 3D, компіляція, віртуалізація: тут ядра справді масштабуються — 12, 16, 24 виправдані.
  • Ноутбук: дивіться на тести реальних задач у цій моделі корпусу, а не на назву процесора — охолодження вирішує все.

Найкращий орієнтир — незалежні тести саме тих програм, які ви використовуєте, а не синтетичні бали.

Як підібрати процесор під свої задачі

  • Не подвоюйте кількість ядер у голові через потоки: 8/16 — це 8 ядер.
  • Для повсякденних задач і ігор одноядерна швидкість важливіша за кількість ядер.
  • Для рендерингу, кодування й компіляції рахуйте ядра — там вони окупаються.
  • У ноутбуках вирішує охолодження; той самий процесор працює по-різному в різних корпусах.
  • Якщо комп’ютер гальмує, подивіться в диспетчері задач, що саме завантажене: часто це диск або пам’ять, а не процесор.

Часті запитання

Чому процесор показує 100 % на одному ядрі, а решта простоюють?

Програма однопотокова. Додаткові ядра їй не допоможуть; допоможе швидше ядро або інша програма.

Чи варто вимикати Hyper-Threading?

Зазвичай ні. Виняток — специфічні задачі й середовища з підвищеними вимогами до безпеки, де спільні ресурси ядра вважають ризиком.

Що таке кеш і чому він важливий?

Швидка пам’ять поруч із ядрами, що зберігає найчастіше потрібні дані. Більший кеш зменшує очікування на основну пам’ять, і в іграх це часом дає більше, ніж додаткові ядра.

Ядра — це робочі руки, потоки — уміння не простоювати між рухами; але швидкість кожної пари рук досі вирішує більшість задач.

Коротко: ядра виконують роботу паралельно, а апаратні потоки лише щільніше їх завантажують, додаючи 15–30 %. Більше ядер прискорює лише задачі, які діляться на частини; ігри й повсякденна робота залежать від швидкості одного ядра, архітектури й охолодження. Обирайте процесор за тестами у своїх задачах, а не за цифрами на коробці.