Jak włączyć AMD Turbo Core na Ubuntu 14.04?

9

Używam Ubuntu 14.04 (jądro 3.13.0-24-generic) na laptopie z procesorem AMD A8-4500m, a ostatnio zauważyłem, że AMD Turbo Core w ogóle nie działa. Wszystko działa w systemie Windows, jednak na Linuksie częstotliwość procesora nie może przekroczyć 1,9 GHz (sprawdzone za pomocą cpufreq-aperf).

Oto dane wyjściowe cpupower frequency-info, zauważ Aktywny: brak wsparcia stanu doładowania:

analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 4.0 us.
  hardware limits: 1.40 GHz - 1.90 GHz
  available frequency steps: 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.40 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.90 GHz and 1.90 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.90 GHz (asserted by call to hardware).
  cpufreq stats: 1.90 GHz:32,63%, 1.80 GHz:0,74%, 1.70 GHz:0,50%, 1.60 GHz:1,20%, 1.40 GHz:64,93%  (9287)
  boost state support:
    Supported: yes
    Active: no
    Boost States: 2
    Total States: 8
    Pstate-Pb0: 2800MHz (boost state)
    Pstate-Pb1: 2300MHz (boost state)
    Pstate-P0:  1900MHz
    Pstate-P1:  1800MHz
    Pstate-P2:  1700MHz
    Pstate-P3:  1600MHz
    Pstate-P4:  1400MHz
    Pstate-P5:  900MHz

Więcej testów (uruchomionych z harmonogramem ondemand i 3 wystąpieniami dekodowania ffmpeg wideo 1920x1080 H.264 w tle):

[m132@m132 turbostat]$ sudo cpupower monitor
[sudo] password for m132: 
     |Mperf               || Idle_Stats         
 CPU | C0   | Cx   | Freq || POLL | C1   | C2   
    0| 97,78|  2,22|  1821||  0,00|  0,00|  0,00
    1| 97,84|  2,16|  1821||  0,00|  0,00|  0,00
    2| 99,22|  0,78|  1807||  0,00|  0,00|  0,00
    3| 99,18|  0,82|  1808||  0,00|  0,00|  0,00
[m132@m132 turbostat]$ sudo ./turbostat 
cor CPU   GHz  TSC time
        1.81 1.90   5**
  0   0 1.81 1.90   5**
  1   1 1.81 1.90
  2   2 1.80 1.90
  3   3 1.81 1.90

EDYCJA: Wygląda na to, że procesory serii Trinity mają swój własny przełącznik BAPM w źródle. Znajduje się w sterownikach / gpu / drm / radeon / trinity_dpm.c i (w momencie pisania) jest włączony tylko dla płyt MSI, ze względu na problemy ze stabilnością. Aby go włączyć, otwórz ten plik, znajdź ten wiersz:

    pi->enable_bapm = false;

Zmień false na true, a następnie skompiluj i zainstaluj nowe jądro. Powinieneś już teraz działać na atak paniki jądra . Pamiętaj, że moc procesora jest również dzielona z GPU, więc prawie nigdy nie uzyskasz najwyższej dostępnej częstotliwości, jeśli GPU jest również w użyciu.

m132
źródło
1
Dziwne, instalowanie fglrx „aktywowanego” Turbo Core, a teraz pokazuje „Aktywny: tak”. cpufreq-aperfczasami zgłasza częstotliwość 2 GHz, ale nadal nie przełącza się na 2,3 GHz lub 2,8 GHz, jak w systemie Windows.
m132
Tylko w celu potwierdzenia: Mam ten sam problem z A10-7850K w Fedorze z jądrem 3.14.5: Obsługiwane: tak, aktywne: nie. Wydaje się, że nie jest specyficzna dla dystrybucji.
Chris
Czy możesz spróbować wyłączyć tryb ustawiania jądra ( nomodesetw wierszu poleceń jądra)? To naprawiło dla mnie ten problem.
Chris
1
@Chris Teraz pokazuje Active: yes, ale zakładam, że te informacje są błędne, ponieważ nie pokazano Pstates i cpufreq-aperfnadal nie zgłasza częstotliwości wyższej niż 1,9 GHz. Wymusiło to także dla mnie użycie renderera oprogramowania OpenGL.
m132
Co z turbostatlub cpupower monitor? Czy pokazują użycie turbo?
Chris

Odpowiedzi:

5

[Aktualizacja 2015]

Począwszy od Linuksa 3.16:

  • Wartość parametru bapmmoże być podana jako parametr modułu (patrz tutaj ).

  • Wartość bapmdomyślnie jest ustawiona na 1 dla systemów Kaveri, Kabini i stacjonarnych Trinity, Richland (patrz tutaj ), co powoduje włączenie Turbo Core.

Co oznacza, że ​​w przypadku jądra 3.16 lub nowszego Turbo Core powinien działać od razu po rozpakowaniu radeonw wielu przypadkach.

Jeśli używasz Debiana lub Ubuntu, a powyższe nie jest prawdą, zapoznaj się z artykułem Jak skonfigurować system Debian (koncentracja na 2D lub konsoli / serwerze) z APU AMD Turbo Core w celu uzyskania maksymalnej energii i wydajności obliczeniowej ?

[Aktualizacja 2014-sierpień-07]

Opublikowałem szczegółową analizę, wunix-stackexchange.com której zawiera (przynajmniej dla mnie) kilka niespodzianek. Takie jak ondemandgubernator potencjalnie gorszy niż performance(przynajmniej z Richland A10-6700) i fglrxnajwyraźniej wykorzystujący pewne wątpliwe sztuczki w celu poprawy krótkoterminowych doładowań , które nagle muszą to zrekompensować na dłuższą metę. Cieszę się, że przyjrzałem się temu bliżej.

[Oryginalna odpowiedź]

Jestem w trakcie konfigurowania systemu z A10-6700 przy użyciu Ubuntu 14.04 Server.

  • Dane wyjściowe cat /proc/cpuinfonie odzwierciedlają ani nie zwiększają wydajności procesora. Wspomaganie jest autonomiczną decyzją dotyczącą układu opartą na potencjalnie złożonych kryteriach. Przeczytaj o tym tutaj .
  • Wyjście cpufreq-infonie pokaże dostępnych częstotliwości doładowania, ale wyjście cpupower frequency-infowoli. W przypadku A10-6700 powinien on pokazywać 4300 MHz (Pb0), 4200 MHz (Pb1) i 3900 MHz (Pb2) oprócz zwykłych 3700, 3400, 2700, 2300 i 1800 MHz.
  • Wydajność cpufreq-aperf(po modprobe msr) jest porównywalna z wydajnością cpupower monitor. Częstotliwości pokazywane przez te narzędzia powinny odzwierciedlać wzmocnienia.
  • Ze standardowym sterownikiem wideo, a nawet radeonmodułem w jądrze, nie udało mi się przekonać A10-6700 do używania częstotliwości doładowania (za pomocą stress --cpu 2).
  • Z fglrxmodułem ATI / AMD załadowanym do jądra, procesor na stałe wzmocni dwa rdzenie (i najwyraźniej również tymczasowo pozostałe rdzenie). Zostało to przetestowane bez użycia X lub nawet skonfigurowania.

Pamiętaj, że decyzja o wzmocnieniu lub odrzuceniu jest podejmowana przez APU niezależnie. Domyślam się w tym momencie, że APU nie może zdecydować, czy bieżące rozproszenie mocy pozostawia miejsce na wzmocnienie, chyba że zintegrowana jednostka graficzna zostanie odpowiednio zainicjowana.

Wyjście wideo ze standardowym modułem różni się od wyjścia po załadowaniu fglrx. Dlatego możemy jedynie zgadywać, czy jądro może samo ustawić APU w przypuszczalnie wymagany tryb „inteligentny” (świadomy utraty mocy), nadal wykorzystując moduł VGA.

Dopóki nie zostanie to rozwiązane, po prostu załaduję fglrx. Minusem jest to, że zbudowanie go wymaga wielu rzeczy, których nie chcesz na serwerze i które należy usunąć po kompilacji.

Ma też fglrxprawie 9 MB. To nie jest problem, ale świadomość, że w tym przypadku jest to głównie martwy ładunek, nie sprawia mi zbytniej radości.

[Edytuj 2014-lip-24]

Teraz zgłosiłem ten błąd .

Zauważyłem, że zgłoszono także inny błąd: jeśli faktycznie używasz fglrxi próbujesz użyć trybu dynamicznego zarządzania energią .

Uruchom CMD
źródło
Dzięki za informację. Zamierzam skompilować nowe jądro z włączoną funkcją BAPM, jak zasugerowano w drugim raporcie o błędzie, aby zobaczyć, czy to robi jakąkolwiek różnicę :)
m132
Wygląda na to, że BAPM jest domyślnie włączony w jądrze 3.16. Przynajmniej dla mnie aktualizacja nie rozwiązała tego problemu. Jednak wyłączenie DPM działa, otrzymuję częstotliwości powyżej 1,8 GHz, ale potem mój laptop zaczyna się przegrzewać i ograniczać prędkość procesora do 1,1 GHz, więc wydajność jest jeszcze gorsza.
m132,
@ M132 To smutne. Mimo to przyczynia się do podejrzeń. - Czy widzisz to samo zachowanie w systemie Windows? - Czy możesz wpłynąć na sterowanie wentylatorem? - Szkoda, że ​​producent najwyraźniej nie współpracował wystarczająco dobrze z AMD - TurboBoost jest regularną funkcją w ramach TDP.
Uruchom CMD
Nie mogę teraz przetestować, ponieważ usunąłem system Windows, aby utworzyć osobną partycję dla / home. Nie wiem o fanach, ale pamiętam Menedżera zadań, który pokazywał mi częstotliwość procesora 2,3 GHz, więc TurboBoost działał i nie przegrzewał się, więc DPM również działał.
m132,
Dzięki wczorajszym komentarzom do zgłoszonego przez Ciebie problemu w końcu udało mi się go uruchomić! Przeczytaj pytanie, aby uzyskać szczegółowe informacje: D
m132
2

Mam ten sam problem z moim Thinkpadem z tym samym AMD A8-4500m na ​​Ubuntu 13.10. Znalazłem to dzisiaj, ale mój angielski nie jest zbyt dobry, więc go nie zrozumiałem.

https://www.kernel.org/doc/Documentation/cpu-freq/boost.txt

Niech ci to pomoże.

Odkryłem, że Turbo Core nie jest obsługiwany od 11.10. To wszystko, co znalazłem. Proszę udowodnij mi, że się mylę.

Mojo Jojo
źródło
1
Ten link wyjaśnia, czym jest Turbo Boost / Core i jak go włączyć / wyłączyć, ale w moim przypadku / sys / devices / system / cpu / cpufreq / boost ma już 1 (włączony).
m132
Nigdzie nie jest powiedziane, że TurboCore nie jest obsługiwane. Jest odwrotnie. Komentarz @ M132 jest poprawny.
Uruchom CMD