Windows 10 1903 - test poprawek schedulera
Wpływ systemu operacyjnego na wydajność komputera to jeden z tych tematów, które lubią powracać w środowisku entuzjastów, w szczególności przy okazji premiery takiej czy innej poprawki. Nie tak dawno świat obiegła wieść o specjalnych optymalizacjach pod kątem procesorów AMD Ryzen, które zostały zaszyte w najnowszej kompilacji Windows 10, oznaczonej numerem 1903 oraz marketingową nazwą May 2019 Update, i to właśnie temu zagadnieniu poświęcony będzie dzisiejszy test. Sprawa jest o tyle ciekawsza, że funkcjonowanie tzw. dyspozytora zadań (ang. scheduler) najnowszej Dziesiątki budziło spore zastrzeżenia w momencie debiutu pierwszych procesorów wykorzystujących architekturę Zen, kiedy to liczne portale technologiczne starały się rozmaitymi środkami zbadać jego zachowanie. Początkowo nawet samo AMD podzielało wątpliwości, jednak nieco później firma ostatecznie wycofała się z początkowego stanowiska, twierdząc, że nie ma istotnych różnic w zachowaniu tego mechanizmu w odniesieniu do sprawdzonego Windowsa 7. Tym samym główną bronią w walce o podwyższenie rezultatów Ryzenów pod kontrolą Dziesiątki stał się nowy plan zasilania o wdzięcznej nazwie AMD Ryzen Balanced. Ten ostatni w zasadzie niewiele różnił się od ustawień standardowo oznaczanych terminem wysoka wydajność, dzięki czemu m.in. eliminował parkowanie rdzeni, przyczyniając się tym samym do skoku osiągów. I tym samym sprawa dalszych optymalizacji ucichła na dłuższy czas.
Windows 10 1903 to wydanie o szczególnym znaczeniu dla użytkowników procesorów AMD. Sprawdźmy, na jaki wzrost wydajności z tytułu poprawek schedulera można liczyć w praktyce.
Phenom II vs Bulldozer vs Zen - test zegar w zegar i porównanie CMT/SMT
Budowa procesorów Ryzen
Zanim przejdziemy dalej, wypadałoby pokrótce omówić specyficzną budowę jądra krzemowego Zeppelin, będącego podstawą wszystkich procesorów AMD Ryzen pierwszej oraz drugiej generacji. Fizycznie chip wyposażony jest w osiem rdzeni, aczkolwiek zostały one zgrupowane w dwa bloki, zwane modułami CCX, po cztery sztuki w każdym. Pojedynczy rdzeń ma do swojej dyspozycji 32/64 KB dedykowanej cache L1 dla danych/instrukcji, a także 512 KB pamięci podręcznej drugiego poziomu. Ponadto, w skład każdego CCX wchodzi również współdzielona cache L3 o pojemności 8 MB, zatem łącznie możemy mówić w jej przypadku o konfiguracji 2x8 MB (dla pełnego Zeppelina). Właśnie ten fakt sprawia, że Ryzeny są wrażliwe na funkcjonowanie dyspozytora, tj. przerzucanie wątków między modułami jest zjawiskiem niepożądanym, prowadzącym do wydajności niższej niż optymalna. Nietrudno więc wydedukować, że scheduler powinien dysponować wiedzą na temat potencjalnych skutków takiego zdarzenia, dzięki czemu będzie wiedzieć, że powinno się go unikać za wszelką cenę.
Test wpływu taktowania Infinity Fabric na wydajność procesorów Ryzen
Jeden Zeppelin, dwa Zeppeliny, cztery Zeppeliny
Jeszcze ciekawiej robi się, gdy popatrzymy w stronę konstrukcji spod znaku Threadripper (serwerowe EPYC pomijam), które składają się z dwóch lub czterech Zeppelinów połączonych za pomocą Infinity Fabric. Fakt ten pociąga za sobą dalsze rozwarstwienie w obrębie pamięci podręcznej trzeciego poziomu, a także rzecz istotniejszą, czyli niejednolity dostęp do RAM (ang. Non-Uniform Memory Access; NUMA). Z uwagi na to ostatnie zjawisko, każdy Zeppelin dysponuje pewną pulą pamięci lokalnej o szybkim dostępie (lub nie posiada jej wcale), a cała reszta to pamięć odległa, do której dostęp realizowany jest za pośrednictwem któregoś z sąsiednich jąder krzemowych. To wszystko oznacza jeszcze większe wyzwanie dla systemu operacyjnego, który musi przydzielać pamięć w taki sposób, aby odwołania do segmentów wolniejszych były tak epizodyczne, jak to tylko możliwe. I w tym właśnie momencie do akcji wkracza Windows 10 May 2019 Update, która to poprawka ma zapewniać funkcjonowanie dyspozytora z uwzględnieniem specyficznej topologii procesorów Ryzen.
Podkręcanie AMD Athlon 200GE na płycie MSI B350M MORTAR - test
Zasady przeprowadzania testu
Jeżeli chodzi o sprzęt wykorzystany do porównania różnych kompilacji Dziesiątki, zdecydowałem się na procesor AMD Ryzen 7 1700X, a więc wariant ośmiordzeniowy i szesnastowątkowy, czyli maksymalny dostępny dla platformy AM4 (to stwierdzenie oczywiście będzie już nieaktualne w momencie premiery trzeciej generacji). Żeby uniknąć anomalii związanych z funkcjonowaniem Turbo (konkretniej rzecz ujmując, Precision Boost) oraz mechanizmów oszczędzania energii, ustawiłem zegar rdzeni na sztywną wartość 3,8 GHz oraz aktywowałem plan zasilania wysoka wydajność. Punktem wyjściowym od strony programowej była wersja 1607 (Anniversary Update) systemu Windows 10, standardowo wykorzystywana w większości testów procesorów, które macie okazję czytać na łamach ITHardware. Z kolei bardziej współczesne wydania to już trzy ostatnie kompilacje, gdzie każda z nich prezentuje istotny punkt w czasie dla użytkowników Dziesiątki. Zaczynając od 1803 (April 2018 Update), była ona pierwszą zapewniającą wsparcie procesorów graficznych z rodziny NVIDIA Turing. Następna 1809 (October 2018 Update) przyniosła z kolei rozszerzenie DXR, umożliwiające aktywację śledzenia promieni (ang. ray-tracing) w grach korzystających z API DirectX 12 (oczywiście tych, które tę technikę zaimplementowały). Kończąc zaś na 1903 (May 2019 Update), chyba już nic nie trzeba dodawać, gdyż sam tytuł artykułu dobitnie sugeruje, że to ona będzie grała pierwsze skrzypce. Zdaje się, że wszystkie istotne szczegóły zostały omówione, zatem możemy przejść do dalszej części artykułu.
Pokaż / Dodaj komentarze do: Windows 10 1903 - test poprawek schedulera dla procesorów AMD Ryzen