Dwa komputery mogą mieć w nazwie po dwanaście rdzeni i dzielić je zupełnie inaczej. Od 2021 roku Intel sprzedaje procesory, w których obok dużych rdzeni wydajnościowych pracują mniejsze rdzenie efektywne. Ten podział tłumaczy zarówno dobre wyniki w zadaniach wielowątkowych, jak i rozczarowujące w pojedynczych programach, które nie potrafią korzystać z całego układu.
Skąd pomysł na dwa rodzaje rdzeni
Powód jest ekonomiczny, a nie marketingowy. Intel zbadał, jak realne programy skalują się wraz z liczbą rdzeni, i opisał wynik w białej księdze poświęconej architekturze hybrydowej: większość obciążeń nie wykorzystuje więcej niż czterech rdzeni, mniejsza część dochodzi do ośmiu, a tylko nieliczne skalują się powyżej dziesięciu.[1] Budowanie wyłącznie dużych rdzeni oznacza więc płacenie powierzchnią krzemu i poborem mocy za możliwości, których typowy program nie użyje.
Drugi argument to charakterystyka energetyczna. Przy wysokim budżecie mocy rdzeń P jest szybszy, ale przy niskim to rdzeń E wypada lepiej pod względem wydajności na wat. Intel podaje też, że moduł rdzeni E osiąga lepszą przepustowość wielowątkową niż rdzeń P z Hyper-Threadingiem przy podobnym poborze mocy.[1] Prościej: jedno duże serce do szybkiej reakcji, kilka małych do pracy seryjnej w tle.
Czym różni się E-core od P-core
Rdzenie P są większe i bardziej złożone. Mają głębsze okno wykonywania poza kolejnością, większe bufory i obsługę dwóch wątków logicznych na rdzeń. Rdzenie E są prostsze, pracują z niższym taktowaniem i nie mają Hyper-Threadingu, a po cztery dzielą pamięć podręczną drugiego poziomu.[5] To nie jest ten sam projekt w innym rozmiarze, tylko inna konstrukcja nastawiona na zajmowanie małej powierzchni.
Intel zadbał jednak o wspólną listę instrukcji. W dwunastej generacji wyłączył AVX-512 na rdzeniach P, żeby cała platforma miała symetryczny zestaw instrukcji dostępny zarówno na P, jak i na E.[1] Program nie musi więc sprawdzać, na jakim rdzeniu akurat działa, ale nie znaczy to, że wykona ten sam kod z tą samą szybkością. Ta sama instrukcja na mniejszym rdzeniu potrzebuje więcej cykli.
Kto decyduje, gdzie trafi wątek
Decyzję podejmuje system operacyjny, a nie procesor. Intel dostarcza mu jednak dane: Thread Director monitoruje mieszankę instrukcji w wątku oraz stan każdego rdzenia i przekazuje harmonogramowi wskazówki, gdzie dany wątek będzie pracował najlepiej. Mechanizm działa w nanosekundowej skali i reaguje na warunki termiczne oraz limity mocy.[1] W systemie Windows wymaga to wsparcia ze strony jądra, dlatego Windows 11 obsługuje Thread Director, a starsze wersje systemu nie korzystają z tych wskazówek.[2]
W praktyce oznacza to, że o wyniku decyduje jakość harmonogramu, a nie tylko liczba rdzeni. Krótko po premierze Alder Lake testy na Linuksie pokazały, że pojedyncze wątki trafiały na rdzenie E zamiast na wolne P, a rozrzut wyników między powtórzeniami był większy niż zwykle.[3] W kolejnych latach Intel i społeczność jąder pracowali nad równoważeniem obciążenia między klastrami. W 2023 roku pojawiły się łatki, które miały naprawić kolejność wybierania rdzeni: najpierw wolny wątek logiczny na rdzeniu P, potem wolny rdzeń E, na końcu współdzielony wątek logiczny.[4]
Ile rdzeni naprawdę ma procesor
Flagowy Core i9-12900K miał osiem rdzeni P z Hyper-Threadingiem i osiem rdzeni E. W specyfikacji widniało 16 rdzeni i 24 wątki, bo każdy rdzeń P obsługiwał dwa wątki.[3] To wyjaśnia, dlaczego porównywanie samych wątków między generacjami i producentami nie ma sensu: dwa wątki jednego rdzenia P dzielą te same jednostki wykonawcze, a cztery rdzenie E są osobnymi rdzeniami o mniejszej mocy.
Proporcje nie są stałe. Intel przyznaje, że część modeli z dwunastej generacji i nowszych nie ma architektury hybrydowej i występuje wyłącznie z rdzeniami P albo wyłącznie z E.[5] Dlatego numer modelu i liczba rdzeni w nazwie nie mówią, ile z nich to rdzenie wydajnościowe. Przy zakupie laptopa warto zajrzeć do specyfikacji i sprawdzić osobno liczbę P oraz E, zamiast porównywać samą sumę.
Co to znaczy dla wydajności
Zadania jednowątkowe rozstrzygają rdzenie P. Program, który nie potrafi rozdzielić pracy, nie zyska nic z obecności ośmiu rdzeni E, a czasem straci, jeśli system umieści go na mniejszym rdzeniu. Zadania wielowątkowe, takie jak kompilacja kodu, renderowanie czy kompresja wideo, korzystają z rdzeni E, bo dodają przepustowość tam, gdzie nie potrzeba najwyższej wydajności pojedynczego wątku. Testy pięciu konfiguracji tego samego procesora, od pełnego układu po jeden rdzeń P i osiem E, pokazały, jak mocno wynik zależy od liczby i rodzaju włączonych rdzeni.[3]
Do tego dochodzą limity mocy i temperatury, opisane szerzej w artykule o PL1, PL2 i throttlingu w laptopach. Hybryda zmienia rozkład ciepła: obciążenie może krążyć między rdzeniami i klastrami, więc krótki test nie pokazuje, jak komputer zachowa się po godzinie pracy. Stabilny wynik w długim obciążeniu bywa ważniejszy niż szczyt z pierwszych sekund.
Jakie to ma znaczenie w codziennym użyciu
W biurze i w przeglądarce podział zwykle działa na korzyść użytkownika. System przenosi zadania w tle na rdzenie E, a aktywne okno zostawia na P, dzięki czemu laptop mniej hałasuje i dłużej pracuje na baterii. Intel zaleca przy tym, by nie ustawiać sztywno powinowactwa wątków do rdzeni, bo odbiera to harmonogramowi możliwość wyboru.[2] To rada dla twórców oprogramowania, ale wyjaśnia też, dlaczego ręczne przypinanie procesów bywa kontrproduktywne.
Inaczej wygląda to w zastosowaniach wrażliwych na opóźnienia: wirtualizacja, serwery testowe, praca z dźwiękiem czy stare gry. Tam liczy się przewidywalność, a nie średnia przepustowość. Jeśli program był pisany z założeniem, że wszystkie rdzenie są identyczne, może źle znosić przeprowadzki między klastrami. Rozwiązaniem bywa przypisanie procesu do wybranych rdzeni, ale to już świadoma decyzja administracyjna, a nie domyślne zachowanie systemu.
Hybryda to nie wyjątek, tylko norma
Podział na rdzenie duże i małe nie jest wynalazkiem jednego producenta. ARM od lat stosuje układ big.LITTLE, a Apple w swoich układach łączy rdzenie wydajnościowe z energooszczędnymi. Wspólny mianownik jest ten sam: przy ograniczonym budżecie mocy i powierzchni lepiej mieć kilka szybkich rdzeni i kilka tanich niż same szybkie albo same tanie. Różnice dotyczą szczegółów, na przykład tego, czy małe rdzenie obsługują wiele wątków i jak dużo pamięci podręcznej dzielą.
Dla kupującego wniosek jest prosty. Liczba rdzeni przestała być jednoznaczną miarą wydajności, więc warto czytać specyfikację do końca, sprawdzać recenzje z testami pojedynczego wątku i zadań długotrwałych oraz porównywać komputery w tych samych warunkach. Procesor hybrydowy potrafi być świetny, ale tylko wtedy, gdy system i programy wiedzą, z czym pracują.
Źródła
- N. Rukmabhatla, R. Chabukswar, S. Gohad, „Intel performance hybrid architecture & software optimizations, Part One: Introduction”, Intel, 2021. https://cdrdv2-public.intel.com/685861/211115_Hybrid_WP_1_Introduction_v1.2.pdf
- Intel, „Intel performance hybrid architecture & software optimizations, Part Two: Developing for Intel performance hybrid architecture”, Intel, 2021. https://cdrdv2-public.intel.com/685865/211112_Hybrid_WP_2_Developing_v1.2.pdf
- M. Larabel, „Intel i9-12900K Alder Lake Linux Performance In Different P/E Core Configurations”, Phoronix, 20 grudnia 2021. https://www.phoronix.com/review/alderlake-p-e
- M. Larabel, „Intel Posts New Linux Patches For Cluster Scheduling With Hybrid CPUs”, Phoronix, 4 maja 2023. https://www.phoronix.com/news/Intel-Hybrid-CPU-Cluster-Sched
- Intel, „Intel Thread Director & Power Management Innovations for Lunar Lake”, Intel Tech Tour, 2024. https://cdrdv2-public.intel.com/824511/2024_Intel_Tech%20Tour%20TW_Lunar%20Lake%20Power%20Management%20and%20Thread%20Director%20Innovations.pdf


