TurboBoost – garść MHz więcej

Nie każdy nieobeznany z techniką użytkownik komputera może być świadom istnienia technologi Turbo Boost wdrażanej w procesorach Intela I5 oraz I7 (choć istnieje też chyba tylko jeden model I3). Turbo Boost to najprościej rzecz ujmując, chwilowe przetaktowanie rdzeni procesora w momentach maksymalnego obciążenia. Taki overclocking dla niezaangażowanych. Procesory produkowane przez Intela i testowane pod kątem takiego turbo, posiadając nominalną prędkość taktowania np. 2.8 GHz, w stresie wspinają się na wyżyny 3.3 GHz. I dzieje się to bez wiedzy użytkownika, bo do uruchomienia tej technologii nie trzeba żadnych fachowych zabiegów. A jak w przypadku Linuksa?

Tak samo. Turbo Boost Technology to właściwość która powinna zostać włączona z poziomu BIOSa i jeżeli posiadamy kernel od 2.6.30 wzwyż, Turbo Boost ma prawo działać. Jedyne na czym możemy się skupić, to sprawdzenie, czy faktycznie działa.

Dlatego na samym początku resetujemy komputer, udajemy się w ustawienia BIOSa i sprawdzamy, która opcja odpowiada za włączenie trybu turbo w procesorze. Może do tego być przydatna instrukcja obsługi, bo w różnych BIOSach i u różnych producentów, różną można spotkać nomenklaturę. Generalnie, najczęściej sprowadza się to do aktywowania gdzieś w zakładce z ustawieniami procesora opcji Intel Speedstep i Intel TurboBoost. Należy się też upewnić, że nie posiadamy w BIOSie jakichś specyficznych funkcji oszczędzania energii lub wyciszania wentylatora, które mogą prowadzić do przekłamań w funkcjonowaniu trybu Turbo (?).

Jeżeli aktywowaliśmy SpeedStep i TurboBoost, pozostaje sprawdzić w systemie, czy faktycznie to działa. Niestety nie sprawdzimy tego typowymi monitora aktualnej częstotliwości procesora, gdyż te pobierają informacje z /proc/cpuinfo, które jest nieczułe na intelowskie tricki. Musimy zatem wspomóc się narzędziami firmowanymi przez Intela, np. PowerTop oraz Turbostat. PowerTop odnajdziemy w repozytoriach, Turbostat jest częścią paczek linux-tools-common oraz linux-tools-numer_kernela – wystarczy w menadżerze wyszukać nazw. Są też inne projekty, np. i7z, do samodzielnej kompilacji.

Skupmy się na TurboStat – po uruchomieniu programu w konsoli otrzymamy komunikat… że konieczna jest obecność modułu msr. Pozostaje go załadować i ponownie uruchomić Turbostat z prawami roota. Po tym zabiegu będziemy otrzymywali statystyki aktualnego obciążanie i taktowania każdego z rdzeni naszego procesora. Dodatkowo, jeżeli uruchomimy program z parametrem -v, otrzymamy sugestie, jakich wyników maksymalnych możemy się spodziewać.


$# sudo modprobe msr
$# sudo turbostat -v
GenuineIntel 11 CPUID levels; family:model:stepping 0x6:1e:5 (6:30:5)
9 * 133 = 1200 MHz max efficiency
21 * 133 = 2800 MHz TSC frequency
22 * 133 = 2933 MHz max turbo 4 active cores
22 * 133 = 2933 MHz max turbo 3 active cores
25 * 133 = 3333 MHz max turbo 2 active cores
25 * 133 = 3333 MHz max turbo 1 active cores
(...)

Jak widać, mój wysłużony Intel I5 760 nominalnie pracuje z taktowaniem 2.8GHz, które w trybie turbo wzrasta do 3.3GHz dla dwóch rdzeni lub 2.93GHz, gdy maksymalnie zostaną obciążone wszystkie rdzenie. Jak to wygląda w praktyce?

Bez TurboBoost:

cor CPU    %c0  GHz  TSC    %c1    %c3    %c6   %pc3   %pc6
         86.87 2.80 2.81   2.23   8.35   2.55   0.00   0.00
  0   0  86.51 2.80 2.81   1.33   9.29   2.87   0.00   0.00
  1   1  87.22 2.80 2.81   2.96   6.57   3.26   0.00   0.00
  2   2  86.59 2.80 2.81   1.86   8.74   2.80   0.00   0.00
  3   3  87.15 2.80 2.81   2.78   8.81   1.26   0.00   0.00

Z TurboBoost:

cor CPU    %c0  GHz  TSC    %c1    %c3    %c6   %pc3   %pc6
         88.76 2.95 2.81   1.89   7.38   1.97   0.00   0.00
  0   0  89.60 2.96 2.81   1.44   7.11   1.85   0.00   0.00
  1   1  87.05 2.95 2.81   1.74   7.50   3.70   0.00   0.00
  2   2  88.92 2.96 2.81   2.93   7.43   0.72   0.00   0.00
  3   3  89.48 2.96 2.81   1.44   7.48   1.59   0.00   0.00

Patrząc na kolumnę GHz zauważamy, że faktycznie – pod obciążeniem (gwałtowne machanie suwakiem poziomów w Darktable), z włączonym TurboBoost, rdzenie procesora rozgrzewają się do 2.96GHz, podczas gdy normalnie osiągnęlibyśmy tylko 2.80GHz. Innymi słowy – warto się upewnić, że mamy włączone co należy w BIOSie.
 

2 komentarze

  1. A mój na przykład ma rozpiętość 1600MHz do 4500MHz. Przy typowej pracy chodzi sobie cichutko na 1,6GHz, skacząc czasem wyżej np. do ~2,8GHz lub 3GHz z hakiem. A przy pełnym obciążeniu jedzie na 4,5GHz. Żre przy tym prąd jak smok, ale coś za coś 🙂

  2. Zauważyłem, że turbostat wywołuje dwa procesy init i yes które żrą sporo procesora. Za każdym razem trzeba ustrojstwa zabijać killem spod roota. Czy to jakis bug?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Post comment

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.