Wstęp
Niedawno opublikowaliśmy nasze recenzje Procesor AMD Ryzen 7 9700X I Ryzen 5 9600X procesory oparte na architekturze Zen 5. Te nowe chipy oferują współczesne poziomy wydajności w swoich segmentach rynku i są wysoce wydajne, dzięki temu, że AMD buduje je w procesie 4 nm TSMC N4P o niskim poborze mocy, do tego stopnia, że AMD oceniło je na 65 W TDP. AMD reklamowało około 16% wzrost IPC dla Zen 5 w porównaniu z poprzednią architekturą Zen 4, i chociaż jesteśmy w pełni świadomi, że IPC nie skaluje się liniowo wraz z wydajnością w grach, byliśmy nieco zaskoczeni, odkrywając, że 9700X i 9600X są nie więcej niż o 3% szybsze od swoich poprzedników w najbardziej ograniczonych pod względem procesora testach wydajności gier 720p.
Takie odstępstwo od twierdzeń AMD zaskoczyło wszystkich w prasie technologicznej, niektórzy recenzenci początkowo zastanawiali się, czy mają złe próbki, w społecznościach internetowych jest mnóstwo dyskusji i dramatów. Podobnie jak wszyscy inni, przeprowadziliśmy kilka rund ponownych testów i próbowaliśmy grzebać i sprawdzać ustawienia, aby dowiedzieć się, czy możemy lepiej zrozumieć architekturę. W trakcie naszych testów odkryliśmy kilka interesujących zachowań harmonogramowania rdzenia i wyruszyliśmy na przygodę.
Gry nie potrzebują dziesiątek rdzeni procesora, nie potrzebują nawet tuzina. Intel o tym wie i daje swoim procesorom stacjonarnym nie więcej niż 8 rdzeni wydajnościowych zaprojektowanych do obsługi gier. To stawia chipy takie jak Ryzen 7 9700X w konkurencji z rywalami takimi jak Core i7-14700K, który ma 8 rdzeni P, ale całkowitą liczbę rdzeni 20, wliczając rdzenie E, które nie wchodzą w grę, ponieważ Thread Director ma tendencję do trzymania obciążeń związanych z grami z dala od nich.
Podczas naszych testów zaobserwowaliśmy, że system Windows 11 planował obciążenia na 9700X w sposób, który najpierw próbował nasycić pojedynczy rdzeń, umieszczając obciążenia na każdym z jego logicznych wątków. Ponadto takie rozmieszczenie obciążałoby rdzeń CPPC2 „najlepszy” lub „drugi najlepszy” (złoty i srebrny w Ryzen Master) — co ma sens. Jednak jeśli bardzo wymagające obciążenie jednowątkowe działa na jednym rdzeniu, zaplanowanie innego wymagającego obciążenia na drugim wątku tego rdzenia spowoduje niższą ogólną wydajność. Lepiej byłoby umieścić je na dwóch oddzielnych rdzeniach, z których każdy miałby dostęp do pełnych zasobów tego rdzenia. Dlatego postanowiliśmy sprawdzić, czy jest to problem specyficzny dla SMT.
Program instalacyjny UEFI płyty głównej pozwala wyłączyć SMT, więc poszliśmy dalej i wyłączyliśmy go dla 9700X i wykonaliśmy kilka szybkich testów wydajności gier z naszego stanowiska. Początkowe wyniki wzbudziły naszą ciekawość, a gdy zaczęliśmy testować więcej gier, zauważyliśmy niewielkie, ale godne uwagi wzrosty wydajności, które zaczęły się uogólniać (we wszystkich rozdzielczościach i większości testów gier).
W tym artykule przedstawimy ustalenia i przejdziemy przez wiele z nich, aby pomóc Ci zrozumieć odkrycie, ale także uwzględnimy wyniki pełnego zestawu testów na wypadek, gdybyś zauważył coś, czego nie zauważyliśmy. Nie twierdzimy, że „wyłączenie SMT” jest rozwiązaniem dla wydajności Zen 5 — nie jest, ponieważ istnieje wiele scenariuszy, w których posiadanie SMT zapewni lepszą wydajność przy minimalnym wzroście mocy. Mimo to dane sugerują, że istnieją namacalne korzyści z ulepszonego harmonogramowania i uważamy, że muszą istnieć sposoby na osiągnięcie tego bez całkowitego kompromisu w zakresie SMT.
Czym jest SMT?
Przybliżmy Ci, czym jest symultaniczne wielowątkowość (SMT). Wprowadzona do komputerów PC przez firmę Intel na początku XXI wieku pod nazwą Hyper-Threading, technologia SMT jest sposobem wykorzystania bezczynnych zasobów sprzętowych rdzenia procesora poprzez udostępnienie ich jako drugiego rdzenia procesora systemowi operacyjnemu. AMD wdrożyło technologię SMT począwszy od pierwszej generacji procesorów Ryzen w 2017 roku. Obie firmy opublikowały dokumentację dla deweloperów, aby pomóc im zoptymalizować oprogramowanie pod kątem paralelizmu SMT. Ponadto aktywnie współpracują z firmą Microsoft, aby ulepszyć harmonogram, aby działał optymalnie dla danych obciążeń. Oczywiście nie jest to proste zadanie — musisz wziąć pod uwagę nie tylko wydajność, ale także zużycie energii i efektywność, a w idealnym przypadku chciałbyś rotować obciążenia między rdzeniami, aby rozłożyć ciepło.
Prawidłowe planowanie odgrywa kluczową rolę w zarządzaniu energią procesora, ponieważ może decydować o częstotliwościach doładowania rdzeni, które są nasycane. Domyślnie AMD wybiera 2 najlepsze rdzenie z 8-rdzeniowego CCD ze względu na ich zdolność do utrzymywania najwyższych częstotliwości i oznacza je jako „preferowane rdzenie” zgodnie ze standardem UEFI CPPC. Obciążenie gry powinno nasycić oba te preferowane rdzenie, a obciążenia rozlewające się na więcej rdzeni. Drugi wątek (procesor logiczny) nie jest wolny pod względem mocy, ma własny narzut mocy, oprócz energii zużywanej na wykorzystanie zasobów sprzętowych rdzenia do wykonania wątku. Z drugiej strony, ograniczenie wątków do jak najmniejszej liczby rdzeni pozwala procesorowi wyłączyć bezczynne rdzenie, aby oszczędzać energię. Istnieje kilka teorii na temat tego, co może się tu dziać, w które zagłębimy się w tym artykule, przedstawiając nasze ustalenia.