Wie aktiviere ich AMD Turbo Core unter Ubuntu 14.04?

9

Ich verwende Ubuntu 14.04 (3.13.0-24-generischer Kernel) auf einem AMD A8-4500m-basierten Laptop und habe kürzlich festgestellt, dass AMD Turbo Core überhaupt nicht funktioniert. Unter Windows funktioniert alles, aber unter Linux kann die CPU-Frequenz nicht über 1,9 GHz hinausgehen (aktiviert mit cpufreq-aperf).

Hier ist die Ausgabe von cpupower frequency-info, Hinweis Aktiv: Nein unter Boost-Status-Unterstützung:

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

Weitere Tests (ausgeführt mit On-Demand-Scheduler und 3 Instanzen von ffmpeg, die 1920x1080 H.264-Videos im Hintergrund dekodieren):

[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

EDIT: Es scheint, als hätten Prozessoren der Trinity-Serie einen eigenen BAPM-Switch in der Quelle. Es befindet sich in drivers / gpu / drm / radeon / trinity_dpm.c und ist (zum Zeitpunkt des Schreibens) aufgrund von Stabilitätsproblemen nur für MSI-Boards aktiviert. Um es zu aktivieren, öffnen Sie diese Datei und suchen Sie diese Zeile:

    pi->enable_bapm = false;

Ändern Sie false in true, kompilieren Sie den neuen Kernel und installieren Sie ihn. Sie sollten jetzt einen Kernel-Panik- Boost erhalten. Beachten Sie, dass die CPU-Leistung auch mit der GPU geteilt wird, sodass Sie fast nie die höchste verfügbare Frequenz erhalten, wenn die GPU ebenfalls verwendet wird.

m132
quelle
1
Seltsam, fglrx "aktiviert" Turbo Core zu installieren, und jetzt zeigt es "Aktiv: ja". cpufreq-aperfmeldet manchmal eine Frequenz von 2 GHz, schaltet aber immer noch nicht auf 2,3 GHz oder 2,8 GHz um, wie unter Windows.
m132
Nur zur Bestätigung: Ich habe das gleiche Problem mit einem A10-7850K unter Fedora mit Kernel 3.14.5: Unterstützt: Ja, Aktiv: Nein. Scheint nicht distro-spezifisch zu sein.
Chris
Können Sie versuchen, die Kernel-Modi ( nomodesetin der Kernel-Befehlszeile) zu deaktivieren ? Dies hat dieses Problem für mich behoben.
Chris
1
@Chris Jetzt wird angezeigt Active: yes, aber ich gehe davon aus, dass diese Informationen falsch sind, da keine Pstates angezeigt werden und cpufreq-aperfimmer noch keine Frequenz über 1,9 GHz gemeldet wird. Außerdem erzwang es für mich die Verwendung von Software OpenGL Renderer.
m132
Was ist mit turbostatoder cpupower monitor? Zeigen sie, dass Turbo benutzt wird?
Chris

Antworten:

5

[Update 2015]

Ab Linux 3.16:

  • Der Wert für bapmkann als Modulparameter angegeben werden (siehe hier ).

  • Der Wert von bapmist für Kaveri, Kabini und Desktop Trinity, Richland-Systeme (siehe hier ) standardmäßig auf 1 gesetzt , wodurch Turbo Core aktiviert wird.

Das bedeutet , dass mit Kernel 3.16 oder höher, Turbo Core sollte direkt aus der Box mit der Arbeit radeonin vielen Fällen.

Wenn Sie Debian ausführen oder wenn Sie Ubuntu ausführen und das oben Gesagte für Sie nicht zutrifft, lesen Sie bitte Einrichten eines Debian-Systems (Fokus auf 2D oder Konsole / Server) mit einer AMD Turbo Core-APU für maximale Energie und Recheneffizienz ?

[Update 2014-Aug-07]

Ich habe eine detaillierte Analyse veröffentlicht,unix-stackexchange.com die (zumindest für mich) einige Überraschungen enthält. Zum Beispiel, dass der ondemandGouverneur möglicherweise schlechter ist als performance(zumindest beim Richland A10-6700) und fglrxanscheinend einige fragwürdige Tricks einsetzt, um kurzfristige Boosts zu verbessern, und dies auf lange Sicht abrupt kompensieren muss. Ich bin froh, dass ich mir das genauer angesehen habe.

[Originalantwort]

Ich bin dabei, ein System mit einem A10-6700 unter Verwendung von Ubuntu 14.04 Server zu konfigurieren.

  • Die Ausgabe von cat /proc/cpuinfospiegelt keinen Prozessor-Boost wider und wird dies auch nicht tun. Der Boost ist eine autonome Entscheidung auf dem Chip, die auf potenziell komplexen Kriterien basiert. Lesen Sie hier darüber .
  • Die Ausgabe von cpufreq-infozeigt nicht die verfügbaren Boost-Frequenzen an, sondern die Ausgabe von cpupower frequency-infowill. Für den A10-6700 sollten zusätzlich zu den regulären 3700, 3400, 2700, 2300 und 1800 MHz 4300 MHz (Pb0), 4200 MHz (Pb1) und 3900 MHz (Pb2) angezeigt werden.
  • Die Ausgabe von cpufreq-aperf(nach modprobe msr) ist vergleichbar mit der Ausgabe von cpupower monitor. Die von diesen Werkzeugen angezeigten Frequenzen sollen Boosts widerspiegeln.
  • Mit dem Standard- radeonVideotreiber oder sogar dem Modul im Kernel gelang es mir nicht, den A10-6700 dazu zu bringen, eine Boost-Frequenz zu verwenden (using stress --cpu 2).
  • Wenn das ATI / AMD- fglrxModul in den Kernel geladen ist, erhöht der Prozessor zwei Kerne permanent (und anscheinend auch die verbleibenden Kerne vorübergehend). Dies wurde getestet, ohne dass X verwendet oder konfiguriert wurde.

Denken Sie daran, dass die Entscheidung für oder gegen den Boost von der APU autonom getroffen wird. Ich vermute zu diesem Zeitpunkt, dass die APU nicht entscheiden kann, ob ihre aktuelle Verlustleistung Raum für einen Boost lässt, es sei denn, die integrierte Grafikeinheit ist ausreichend initialisiert.

Die Videoausgabe mit dem Standardmodul unterscheidet sich von der Ausgabe beim Laden von fglrx. Daher können wir nur raten, ob der Kernel die APU selbst in den vermutlich erforderlichen "Smart" -Modus (Power Loss Aware) versetzen kann, während das VGA-Modul weiterhin verwendet wird.

Bis dies geklärt ist, werde ich einfach laden fglrx. Der Nachteil ist, dass für die Erstellung eine Menge Dinge erforderlich sind, die Sie nicht auf einem Server haben möchten und die nach dem Kompilieren gelöscht werden müssen.

Auch fglrxist fast 9 MB groß. Es ist kein Problem, aber zu wissen, dass es in diesem Fall meistens tote Fracht ist, macht mich nicht allzu glücklich.

[Bearbeiten 2014-Jul-24]

Ich habe diesen Fehler jetzt gemeldet .

Ich habe festgestellt, dass ein weiterer Fehler gemeldet wurde: Wenn Sie tatsächlich den Dynamic Power Management- Modus verwenden fglrxund versuchen, diesen zu verwenden .

Führen Sie CMD aus
quelle
Danke für die Information. Ich werde einen neuen Kernel mit aktiviertem BAPM kompilieren, wie im 2. Fehlerbericht vorgeschlagen, um zu sehen, ob es einen Unterschied macht :)
m132
Es scheint, dass BAPM auf dem 3.16-Kernel standardmäßig aktiviert ist. Zumindest für mich hat ein Upgrade dieses Problem nicht behoben. Wenn ich DPM deaktiviere, werden Frequenzen über 1,8 GHz angezeigt, aber dann beginnt mein Laptop zu überhitzen und die CPU-Geschwindigkeit auf 1,1 GHz zu begrenzen, sodass die Leistung noch schlechter ist.
m132
@ M132 Das ist traurig. Dennoch trägt es zum Verdacht bei. - Sehen Sie das gleiche Verhalten bei Windows? - Können Sie die Lüftersteuerung beeinflussen? - Es ist eine Schande, dass der Hersteller offenbar nicht gut genug mit AMD zusammengearbeitet hat. - TurboBoost ist eine regelmäßige Funktion im Rahmen der TDP.
Führen Sie CMD
Ich kann jetzt nicht testen, da ich Windows entfernt habe, um eine separate Partition für / home zu erstellen. Ich weiß nichts über Lüfter, aber ich erinnere mich an den Task-Manager, der mir die 2,3-GHz-CPU-Frequenz zeigte, sodass TurboBoost funktionierte und nicht überhitzte, sodass DPM auch funktionierte.
m132
Dank der gestrigen Kommentare zu dem von Ihnen gemeldeten Problem habe ich es endlich geschafft! Lesen Sie die Frage für Details: D
m132
2

Ich habe das gleiche Problem mit meinem Thinkpad, auf dem unter Ubuntu 13.10 derselbe AMD A8-4500m ausgeführt wird. Ich habe das heute gefunden, aber mein Englisch ist nicht so gut, also habe ich es nicht verstanden.

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

Möge es für Sie hilfreich sein.

Der Hauptanfang, den ich gefunden habe, ist, dass der Turbo Core seit 11.10 nicht mehr unterstützt wird. Das ist alles was ich gefunden habe. Bitte beweisen Sie mir, dass ich falsch liege.

Mojo Jojo
quelle
1
Dieser Link erklärt nur, was Turbo Boost / Core ist und wie man es aktiviert / deaktiviert, aber in meinem Fall ist / sys / device / system / cpu / cpufreq / boost bereits 1 (aktiviert).
m132
Nirgends wird angegeben, dass TurboCore nicht unterstützt wird. Das Gegenteil ist der Fall. Der Kommentar von @ M132 ist korrekt.
Führen Sie CMD