Mateusz Brzostek | 3 lutego 2018, 12:30

BLOG – Meltdown, Spectre i inne czynniki w nowych testach procesorów

Ujawnienie Meltdown i Spectre, dwóch sposobów na złośliwe zaatakowanie prawie wszystkich nowoczesnych komputerów, wprowadziło duże zamieszanie. Obok setki ważniejszych konsekwencji zmusza testerów sprzętu komputerowego do reakcji. Opiszę tutaj nadchodzące zmiany w testach procesorów – również te niezwiązane z aktualizacjami bezpieczeństwa.

Należy Wam się krótkie wyjaśnienie, dlaczego w tytule jest „blog” i tekst ma inną formę od typowego artykułu, mimo że nie został opublikowany w domenie blog.pclab.pl. Po pierwsze, piszę we własnym imieniu, choć poruszone tematy dotyczą kolejnych artykułów i pracy PCLab.pl. Po drugie, system blogów na PCLab.pl jest w tym przypadku niewygodny i zbyt ubogi technicznie, a przy tym trudniej byłoby dotrzeć do wpisu Czytelnikom, którzy niedługo będą szukać informacji o testach procesorów. Musicie tym razem znieść pewien nieład i skakanie po zagadnieniach.

Meltdown, Spectre i aktualizacje oprogramowania

Opracowane w pośpiechu sposoby na ograniczenie wpływu Meltdown i Spectre na bezpieczeństwo mogą powodować spadek wydajności w niektórych zastosowaniach. Doniesienia o dużych różnicach w wydajności pochodzą głównie ze świata serwerów i centrów danych, ale mogą dotyczyć także komputerów osobistych.

Atak Meltdown dotyczy stosunkowo wąskiej grupy procesorów (mam tu na myśli nie liczbę komputerów, ale liczbę nowoczesnych architektur CPU): w zasadzie wszystkich architektur Intela poza starszymi procesorami Atom oraz jednego z najnowszych rdzeni ARM Cortex. Wszystko wskazuje na to, że aby uodpornić komputer na atak Meltdown, konieczna jest aktualizacja systemu operacyjnego.

Atak Spectre jest konsekwencją użycia technik powszechnie wykorzystywanych w projektowaniu procesorów i dotyczy w zasadzie wszystkich wysokowydajnych układów, niezależnie od producenta. Całkowite zablokowanie Spectre sposobami programowymi bez radykalnego spadku wydajności jest niemożliwe. Zamiast tego najwięksi producenci oprogramowania skupili się na tym, żeby utrudnić taki atak i zminimalizować jego skutki. Jeśli dane oprogramowanie powinno izolować przechowywane w pamięci dane od programów, do których te dane nie należą, utrudnienie w nim ataku Spectre jest konieczne. Najprostsze przykłady to systemy operacyjne, które powinny izolować programy różnych użytkowników i dane różnych programów, oraz przeglądarki internetowe, które powinny izolować dane należące do różnych stron. Wszystkie takie programy wymagają aktualizacji, żeby przeprowadzenie ataku Spectre było trudniejsze.

Użytkownik komputera może zareagować na Meltdown i Spectre na dwa sposoby. W komputerze z procesorem Intela powinien zaktualizować UEFI do wersji zabezpieczonej przed Meltdown. We wszystkich komputerach powinien zaktualizować system operacyjny oraz najczęściej wykorzystywane oprogramowanie, przynajmniej to, które operuje na ważnych danych.

Oczywiście, można podać w wątpliwość zasadność instalowania aktualizacji, szczególnie kiedy mogą zmniejszać wydajność niektórych programów. Znany slogan mówi, że komputer jest bezpieczny tylko wtedy, gdy jest wyłączony. Spectre nie da się zablokować, można jedynie utrudnić atak i złagodzić jego skutki; nawet w komputerze ze zaktualizowanym oprogramowaniem pozostają dziesiątki luk bezpieczeństwa. Wielu z nas korzysta z systemów komputerowych, które nie są i nie będą zabezpieczone – na przykład smartfonów z niezaktualizowanym systemem Android, w którym dzięki Spectre możliwe jest wykonanie dowolnego złośliwego kodu wewnątrz „bezpiecznej domeny”, na przykład wykradnięcie dowolnych danych z narzędzi bankowychŹródło: Android Security Bulletin..

Nie uważam, że obecność innych zagrożeń uzasadnia zignorowanie tych, przed którymi można się łatwo zabezpieczyć. Dlatego wszystkie testy procesorów będziemy wykonywać z użyciem konfiguracji ze zaktualizowanym oprogramowaniem i systemem operacyjnym.

Oto najważniejsze zmiany, które wprowadziłem względem ostatnio publikowanych testów procesorów:

  • Na wszystkich płytach głównych, na których testuję procesory Intela, zaktualizowałem UEFI do wersji zabezpieczonej przed Meltdown i Spectre.
  • Wszystkie programy użytkowe i gry są testowane w systemie Windows 10 w wersji 1709 (wcześniej: programy w 1603, gry w 1709).
  • We wszystkich systemach operacyjnych zainstalowałem poprawkę KB4056892, łagodzącą skutki ataków Spectre i Meltdown – a raczej pozwoliłem funkcji automatycznej aktualizacji na jej zainstalowanie, bo jest domyślnie rozprowadzana do wszystkich użytkowników. Kolejne aktualizacje wprowadzają dodatkowe zabezpieczenia dla systemów 32-bitowych, czyli nie dotyczą moich maszyn testowych, ale będą instalowane w razie potrzeby.

Oprócz tego zastąpiłem wszystkie programy najnowszymi dostępnymi wersjami, nawet jeżeli ataki Spectre ich nie dotyczą albo jeszcze nie zostały złagodzone. Więcej szczegółów podam dalej.

Meltdown i Spectre – test wydajności przed zainstalowaniem poprawek i po

Wielu Czytelników chciałoby zobaczyć test wydajności (szczególnie starszych procesorów) w dwóch scenariuszach: przed aktualizacją firmware'u, systemu operacyjnego i oprogramowania oraz po ich zaktualizowaniu. Taki test nie jest bezzasadny, ale wykonanie go w taki sposób, żeby zadowalał Redakcję, nie jest proste. Można, oczywiście, zaktualizować wszystko, co się da, a następnie wyłączyć „poprawkę Spectre” w rejestrze Windows sposobem, który opisał dział pomocy technicznej Microsoftu, ale w ten sposób zmieniamy tylko status jednej z wielu nakładających się łatek. Do tego prace nad złagodzeniem wpływu Spectre na bezpieczeństwo ciągle się toczą: pierwsza fala aktualizacji opracowanych przez Intela sprawia kłopoty, a Microsoft udostępnia możliwość jej wyłączenia (choć domyślnie jej nie wyłącza ani tego nie zaleca) i oczekuje na drugą. Również poprawki w UEFI dla Meltdown nie są ukończone. Jak podaje ASRockŹródło: strona obsługi technicznej ASRocka, producenci płyt głównych wciąż czekają na aktualizacje UEFI do najstarszych dotkniętych tą luką procesorów i spodziewają się dalszych zmian w UEFI dla płyt z ostatnich lat.

Kiedy sytuacja trochę się wyklaruje, wrócimy do tej sprawy. Na razie priorytetem są testy nowych procesorów.

 

Wszystkie testy od nowa

Poprawki UEFI i oprogramowania związane z Meltdown i Spectre mogą wpływać na wydajność, a nowe wersje programów i sterowników mogą być szybsze lub wolniejsze od starych. Porównywanie wyników testów przeprowadzonych w różnych warunkach nie ma sensu, więc jest to dobra okazja do porzucenia tak zwanej bazy wyników i przetestowania wszystkiego od nowa. Wspomniane poprawki to jednak nie wszystkie zmiany w testach.

Sterowniki karty graficznej

Wszystkie testy z użyciem karty graficznej GeForce GTX 1080 będą wykonywane z użyciem sterowników GeForce 390.65. Wbrew pozorom zmiany w sterownikach GPU wpływają również na wyniki testów zależnych głównie od wydajności procesora. Przykładem jest test przetwarzania grafiki HTML5, który wydaje bardzo dużo draw calls (poleceń rysowania przekazywanych przez program do interfejsu programowania GPU, na przykład DirectX).

Testy przeglądarkowe

Do testów związanych z przeglądaniem internetu dołączy Speedometer 2.0. To niedawno opublikowany test zaprojektowany przez programistów silnika Webkit i polecany m.in. przez… programistów związanych z przeglądarką ChromeŹródło: Chrome welcomes Speedometer 2.0!. Według twórców przeglądarek wydajność w starszych benchmarkach internetowych stała się celem optymalizacji, które służą nie wygodzie użytkowania przeglądarki, lecz właśnie poprawie wyników w benchmarku.  

Testy przeglądarkowe są przeprowadzane w 64-bitowej przeglądarce Chromium 63.0 z zablokowanymi aktualizacjami i bez synchronizacji z kontem Google. Ta wersja i wszystkie nowsze zawierają najważniejsze poprawki związane z ograniczeniem podatności na atak Spectre. Dodatkowo włączyłem w przeglądarce izolację zakładek, tak jak zalecają twórcy programuŹródło i instrukcja, jak włączyć izolację stron: Blog Google Chrome..

Testy profesjonalne – Blender

W ostatnich artykułach mogliście znaleźć wyniki testów w dwóch wersjach Blendera: 2.78 oraz 2.79. Nowa wersja przede wszystkim jest wydajniejsza na komputerach z procesorami obsługującymi instrukcje AVX2, a poza tym zawiera setki poprawek polepszających stabilność i funkcjonalnośćCo nowego w Blenderze 2.79?.

W zeszłym roku podczas testowania megawątkowych procesorów Skylake X i AMD Threadripper zauważyłem, że pozornie wielowątkowy test może być mocno zależny od wydajności jednowątkowej i taktowania turbo dla jednego rdzenia. Silnik Cycles w Blenderze renderuje obraz w kwadratowych częściach; nad jedną częścią pracuje tylko jeden wątek. Wielkość i liczbę części użytkownik może konfigurować (również kierunek i miejsce rozpoczęcia, ale to nie wpływa na wydajność). Jeżeli w obrazie pewna niewielka liczba kwadratów zawiera bardzo skomplikowane szczegóły, może się zdarzyć, że wszystkie wątki oprócz jednego skończą już pracę, a ten najbardziej złożony kwadrat jeszcze długo będzie zajmował jeden wątek.

Na maszynie z małowątkowym, wolno taktowanym procesorem i podczas renderowania obrazu o równomiernym stopniu skomplikowania ustawienie dużego rozmiaru kwadratów może dawać krótszy czas renderowania, jednak nasz obraz testowyEkran startowy Blendera 2.79 – model można pobrać stąd. niemal zawsze lepiej jest renderować w najmniejszych możliwych częściach. Animacja powyżej przedstawia zachowanie testu na maszynie z Core i7-8700K.

Odświeżony test w Blenderze powinien skalować się znacznie lepiej na wielowątkowych procesorach niż prezentowany wcześniej test w wersji 2.79 i nieco lepiej niż starszy test w wersji 2.78 (w tamtym używałem innego obrazu, który nie powodował znacznych różnic między różnymi rozmiarami kwadratów).

Testy profesjonalne – pakiet Adobe

Jedyną zmianą w testach przeprowadzanych w narzędziach z pakietu Adobe są nowe wersje oprogramowania. Wszystkie programy są testowane w najnowszych wersjach CC 2018 (AfterEffects 15.0.1, Premiere Pro 12.0.1, Media Encoder 12.0.1, Photoshop 19.1.0).

Testy użytkowe – 7-Zip

Jedyną zmianą jest nowa wersja narzędzia: 18.00.

Testy w grach

Do testów w grach dołączą na stałe dwa tytuły, które już uwzględniliśmy w dwóch artykułach: Assassin's Creed Origins oraz Total War: Warhammer II. Pierwszy jest oparty na ulepszonej wersji tych samych narzędzi, które wykorzystano w Watch Dogs 2, a drugi – na rozwiniętym silniku użytym w pierwszej części. Mimo to zdecydowałem się pozostawić w procedurze testowej obie starsze gry.

Płyty główne

Z różnych przyczyn płyty główne wykorzystywane w testach procesorów trzeba było zmienić. Niektóre musiały wrócić do producentów, inne nie były godne zaufania w testach nowych procesorów, których zachowania jeszcze nie znamy (więcej o tym za chwilę). Na szczęście płyty ze średniej i wyższej półki są dziś bardzo dobre w gospodarowaniu energią, więc ich wpływ na pobór energii w testach procesorów powinien być minimalny. Dla wyrównania warunków wyłączam na płytach wyposażenie, które nie należy do standardowych funkcji chipsetów – zwłaszcza wbudowane karty sieciowe WiFi i Bluetooth. Dodatkowe kontrolery USB pozostają włączone, chyba że jest ich wyjątkowo dużo.

Rodzynkiem w cieście i piórkiem na czapce jest specjalna wersja płyty Asus Maximus X Formula, którą otrzymaliśmy prosto z tajwańskiej centrali firmy. Wyświetlacz OLED na środku płyty pokazuje animowane logo PCLab.pl, kiedy komputer jest wyłączony; podczas uruchamiania wyświetla kody diagnostyczne, a kiedy załadowany jest system operacyjny, pokazuje temperaturę procesora lub inne dane diagnostyczne (można to skonfigurować, czego nie robię, bo wymaga zainstalowania dodatkowej aplikacji i usługi).

Na tej płycie będą testowane procesory Core ósmej generacji (do podstawki LGA1151, nie LGA1151).

Procesory AM4 będą testowane na płycie Crosshair VI Extreme, która jest funkcjonalnie bardzo bliska testowanej przez nas wcześniej Crosshair VI Hero, ale ma bardziej rozbudowany układ zasilania, wbudowane WiFi i Bluetooth oraz poszerzony laminat.

W bliskiej przyszłości12 lutego, co wiadomo publicznie od dawna. Proszę nie pytać, teraz ani nigdy w przyszłości, czy i kiedy będzie test na PCLabie – niewprowadzone produkty zawsze są przedmiotem umowy o zachowaniu poufności. Tajna jest również data zakończenia takiej umowy, a nawet samo jej zawarcie! spodziewamy się procesorów Ryzen z wbudowanym układem graficznym, a później tańszych niż Core i3-8100 procesorów Intel ósmej generacji (Coffee Lake). Te najprawdopodobniej będą testowane na innych płytach – tańszych lub mniejszych, bardziej pasujących do układów ze średniej i niskiej półki.

 

Średnia wydajność na wykresie

Średnia wydajność

Uważam, że podawanie średniej wydajności procesora jest karygodnym uproszczeniem, które może wprowadzać w błąd. Dla stałych Czytelników moje stanowisko nie powinno być zaskoczeniem. Dobór testów, wybranie, które z nich mają wchodzić w skład średniej, wybranie wag w średniej ważonej (albo decyzja, że wszystkie składniki mają mieć równą wagę), a nawet samo przedstawianie „średniej wydajności” jako czegoś istotnego – to wszystko jest mniej lub bardziej szkodliwą manipulacją.

Niestety, strony z wykresami średniej wydajności są bardzo chętnie czytane – niezwykle mała grupa Czytelników testów procesorów (daleko poniżej 1%) czyta cały artykuł. Najpopularniejsza jest pierwsza strona (bo nie da się na nią nie wejść), potem podsumowanie.

Od wykresu średniej wydajności chętniej oglądany jest tylko wykres przedstawiający wydajność w Wiedźminie 3

Dawno temu zdecydowaliśmy w redakcji (po bardzo krótkim namyśle), że do średniej będą wliczane wyniki wszystkich testów po równo. Po dodaniu nowych testów wkład niektórych sposobów użytkowania komputera w średnią byłby większy niż poprzednio, a innych mniejszy. Zamiast zmieniać tę karygodną manipulację w inną karygodną manipulację, postanowiłem zachować mniej więcej „rozkład sił” pomiędzy scenariuszami użytkowania, tak żeby średnia względna wydajność była możliwie zbliżona do tej, którą przedstawialiśmy w artykułach w minionych miesiącach.

Średnia jest więc teraz ważona w taki sposób, żeby wszystkie testy reprezentujące jakiś sposób użytkowania miały łącznie taką samą wagę jak poprzednio. Speedometer, HTML5 i JavaScript mają zatem łącznie taką samą wagę (1/9), jak poprzednio miały same HTML5 i JavaScript. Wielowątkowy Cinebench, V-Ray i Blender mają łącznie taką samą wagę, jak poprzednio miały same Cinebench i Blender – i tak dalej. Stockfish (test szachowy) i y-cruncher mają o połowę mniejsze wagi.

W przypadku gier, które są testowane w dwóch trybach (DirectX 11 i DirectX 12), do średniej  będzie wliczany tylko jeden wynik – ten lepszy. Obie części Total War: Warhammer mają o połowę mniejsze wagi, tak że wpływają na średnią tak samo jak jedna inna gra.

Procesorem, którego wyniki przyjmowaliśmy za 100%, bardzo długo był Core i5-6600K. Mimo zaawansowanego wieku ciągle dobrze służy swoim użytkownikom, szczególnie graczom. Niestety, już nie mamy sprawnego egzemplarza testowego, więc (przynajmniej przez jakiś czas) modelem odniesienia będzie Core i5-7600K – prawie to samo, tylko nieco szybciej taktowane.

Analiza interwałów – frametime

Na wykresach wydajności w grach znajdziecie dwie wartości: średnią płynność w klatkach na sekundę i liczbę klatek wygenerowanych w najgorszym 1-sekundowym przedziale – obie policzone dokładnie tak samo, jak podaje je Fraps. Więcej o metodach podawania minimalnej wydajności pisałem w „Felietonie o testowaniu wydajności sprzętu w grach” (lektura obowiązkowa!).

Popularne ostatnio wartości 1% i 0,1% najgorszych frametime są pożytecznym narzędziem i chciałbym móc je wykorzystywać w testach procesorów. Jednak w większości przypadków są chętnie stosowane tylko dlatego, że są łatwe w użyciu – popularny OCAT, wykorzystywany do testowania wydajności w bardzo wielu nowych grach, nie podaje minimalnej liczby klatek na sekundę, lecz tylko 0,1% najgorszych frametime.

Niestety, sposób mierzenia czasu, z którego korzystają PresentMon i OCAT, jest niedokładny i zawodny. Jak zauważyliśmy niedawno podczas testów wydajności w niektórych nowych grach (m.in. Assassin's Creed Origins), narzędzia programowe raportują sporadyczne radykalne wahania frametime (jeden wyraźnie krótszy, następny wyraźnie dłuższy od średniej), których nie widać na ekranie, co można zweryfikować przez analizę przechwyconego obrazu trafiającego do monitora. Sprawa jest skomplikowana i zasługuje na osobną publikację – na razie nie możemy polegać na analizie frametime przeprowadzonej OCAT-em lub PresentMonem.