artykuły

Ile energii kosztują wielowątkowe zadania?

43
7 czerwca 2020, 14:01 Mateusz Brzostek

Maszyna testowa i aparatura pomiarowa

Zużycie energii całego komputera przedstawione na wykresach słupkowych zmierzyliśmy za pomocą licznika energii Gossen Metrawatt Metrahit 29S. To precyzyjny przyrząd mierzący moc skuteczną niezależnie od tego, jak odkształcony jest przebieg (true RMS). Wszystkie pomiary powtórzyliśmy 5 razy. Na wykresie słupkowym jest przedstawiona mediana, a na wykresach liniowych – ten z 5 przebiegów, w którym całkowite zużycie energii było najbliższe medianie.

Dane przedstawione na wykresach liniowych dotyczą samego procesora, nie całego komputera. Pochodzą z czujników wbudowanych w procesor, które są dobrym instrumentem diagnostycznym, ale nie pomiarowym. Co prawda te same czujniki są wykorzystywane do pilnowania limitów energetycznych, a więc muszą być dokładne, ale odczytywanie ich wskazań jest obarczone błędami. Współczesne procesory umożliwiają programowe odczytanie wielu liczników wydajności. Procesor podczas działania liczy różne zdarzenia, np. ukończone instrukcje, pobrania danych z pamięci podręcznej, wykonane skoki i tym podobne. Średnia moc różnych części procesora również jest nieustannie mierzona. Liczbę policzonych zdarzeń można odczytać ze specjalnych rejestrów, w programowy sposób, ale żeby to zrobić, trzeba przerwać na chwilę wykonywanie innych programów. To wpływa na wydajność testowanego programu. Z kolei testowany program – szczególnie jeśli wywołuje bardzo duże obciążenie procesora – nie pozwala odczytywać liczników z pożądaną regularnością. Kolejne pomiary nie są od siebie oddzielone o dokładnie takie same przedziały czasu. Na dodatek nie można dokładnie w tej samej chwili zatrzymać liczenia czasu i liczenia wydarzeń, co powoduje dalsze niedokładności. W sterowaniu pracą procesora to nie przeszkadza, bo PMU – wbudowany w procesor mikrokontroler sterujący taktowaniem i zasilaniem – nie musi rywalizować o zasoby z działającymi programami i nie jest kontrolowany przez system operacyjny. Za to podczas monitorowania działania procesora za pomocą programów diagnostycznych można zauważyć wynikające z tego błędy, np. pozorne przekraczanie limitu energetycznego przez procesor. Z tych powodów dane z wykresów liniowych uważamy za przybliżone i użyteczne tylko do wyrobienia sobie pojęcia o działaniu procesora i specyfice testów.

Płyty główne i inne

Wykorzystaliśmy trzy różne płyty główne: Asus Maximus XII Extreme, Asus Maximus XI Formula i Asus Crosshair VIII Formula. Wszystkie trzy mają podobnej klasy układ zasilania, co nie oznacza, że są równie energooszczędne: płyty dla procesorów AMD z chipsetem X570 pobierają nieco więcej prądu, niż płyty z innymi chipsetami AMD. Całe dodatkowe wyposażenie inne niż to wbudowane w procesor i chipset – kontrolery USB i SATA, układy sieciowe LAN 50 Gb/s lub 10 Gb/s, kontrolery sieci bezprzewodowych, oświetlenie LED – było wyłączone.

W maszynie testowej wykorzystaliśmy kartę graficzną GeForce RTX 2080 (co nie ma wielkiego znaczenia – nie jest używana przez żaden z tych testów), zasilacz Enermax Platimax 850 W, nośnik SSD SATA i układ chłodzenia SilentiumPC Navis 240 Pro.

Zadania obliczeniowe

Skupiliśmy się na wielowątkowych zadaniach. Niektóre z nich są na tyle krótkie, że Core i9-10900K zdąży je ukończyć w 56-sekundowym przedziale, w którym może pobierać do 250 W. Jedno jest tak długie, że okno turbo nie ma istotnego znaczenia.

Gdzie są gry?

Efektywność energetyczna procesora w grach nie ma większego znaczenia: pobór mocy jest zdominowany przez kartę graficzną. Jest też bardzo dobrze reprezentowana przez dane, jakie zwykle prezentujemy w testach procesorów. Czas rozgrywki nie zależy od tego, jak wydajny jest procesor: nie można policzyć szybko wszystkich potrzebnych klatek obrazu i wyłączyć procesora. Wystarczy pomnożyć moc przez czas rozgrywki, żeby dowiedzieć się, ile energii zużyje cały komputer.

Gdzie jest mój ulubiony procesor lub benchmark?

Oczywiście najlepiej byłoby mieć takie dane o każdym procesorze i każdym benchmarku. Po zastosowaniu pewnej automatyzacji ich zebranie nie byłoby trudne. Do tej pory nie zbieraliśmy ich, a pomiary na potrzeby tego artykułu były długotrwałe i pracochłonne. Wybraliśmy te procesory i testy, które – jak sądzimy – pozwolą nam przekonać się, jak efektywny energetycznie jest 10-rdzeniowy Comet Lake w porównaniu do podobnych procesorów. Gdybyśmy mieli dodać więcej pomiarów, wybralibyśmy w pierwszej kolejności Ryzeny 3700X i 3950X (w trybie fabrycznym i ECO); w drugiej Threadrippera 3960X oraz Core i9-10980XE. Warto byłoby też porównać Core i9-10900K do Core i9-9900K z maksymalnym możliwym dla każdego z nich taktowaniem przy identycznym napięciu zasilania. Na razie te eksperymenty muszą poczekać na inną okazję.

2