Come abilitare AMD Turbo Core su Ubuntu 14.04?


9

Sto usando Ubuntu 14.04 (kernel 3.13.0-24-generico) su un laptop AMD A8-4500m, e di recente ho notato che AMD Turbo Core non funziona affatto. Tutto funziona su Windows, tuttavia, la frequenza della CPU Linux non può superare 1,9 GHz (controllato con cpufreq-aperf).

Ecco l'output di cpupower frequency-info, notare Attivo: no sotto supporto stato boost:

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

Altri test (eseguiti con ondemand scheduler e 3 istanze di decodifica ffmpeg video H.264 1920x1080 in background):

[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: Sembra che i processori della serie Trinity abbiano il proprio switch BAPM nel sorgente. Si trova in drivers / gpu / drm / radeon / trinity_dpm.c ed è (al momento della scrittura) abilitato solo per le schede MSI, a causa di problemi di stabilità. Per abilitarlo, apri questo file, trova questa riga:

    pi->enable_bapm = false;

Cambia false in true, quindi compila e installa il nuovo kernel. Dovresti ottenere un panico del kernel che funzioni ora. Tieni presente che anche la potenza della CPU è condivisa con la GPU, quindi non otterrai quasi mai la massima frequenza disponibile se anche la GPU è in uso.


1
Strano, l'installazione di fglrx "attivato" Turbo Core, e ora mostra "Attivo: sì". cpufreq-aperfa volte riporta una frequenza di 2 GHz, ma non passa ancora a 2,3 GHz o 2,8 GHz, come su Windows.
m132,

Solo per confermare: sto avendo lo stesso problema con un A10-7850K sotto Fedora con kernel 3.14.5: Supportato: sì, Attivo: no. Sembra non essere specifico della distro.
Chris,

Puoi provare a disabilitare la modalità kernel ( nomodesetdalla riga di comando del kernel)? Ciò ha risolto questo problema per me.
Chris,

1
@Chris Ora mostra Active: yes, ma presumo che questa informazione sia sbagliata, perché non sono mostrati Pstate e cpufreq-aperfnon riporta ancora una frequenza superiore a 1,9 GHz. Inoltre ha costretto l'uso del software renderer OpenGL per me.
m132,

Che dire di turbostato cpupower monitor? Mostrano il turbo in uso?
Chris

Risposte:


5

[Aggiornamento 2015]

A partire da Linux 3.16:

  • Il valore per bapmpuò essere fornito come parametro del modulo (vedere qui ).

  • Il valore di bapmè impostato su 1 per impostazione predefinita per i sistemi Kaveri, Kabini e desktop Trinity, Richland (vedi qui ), con conseguente abilitazione di Turbo Core.

Ciò significa che con Kernel 3.16 o successivo, Turbo Core dovrebbe funzionare immediatamente con, radeonin molti casi.

Se esegui Debian o se esegui Ubuntu e quanto sopra non è vero per te, fai riferimento a Come impostare un sistema Debian (focus su 2D o console / server) con un'APU AMD Turbo Core per la massima efficienza energetica ed informatica ?

[Aggiornamento 2014-ago-07]

Ho pubblicato un'analisi dettagliata suunix-stackexchange.com cui contiene (almeno per me) alcune sorprese. Come il ondemandgovernatore potenzialmente peggiore di performance(almeno con il Richland A10-6700) e fglrxapparentemente usando alcuni trucchi discutibili per migliorare i boost a breve termine, dovendo improvvisamente compensare quello a lungo termine. Sono contento di averlo visto da vicino.

[Risposta originale]

Sto configurando un sistema con un A10-6700 usando Ubuntu 14.04 Server.

  • L'output di cat /proc/cpuinfonon riflette e non riflette alcun aumento del processore. Il boost è una decisione autonoma sul chip basata su criteri potenzialmente complessi. Leggi qui .
  • L'output di cpufreq-infonon mostrerà le frequenze di boost disponibili, ma l'output di cpupower frequency-infowill. Per A10-6700, dovrebbe mostrare 4300 MHz (Pb0), 4200 MHz (Pb1) e 3900 MHz (Pb2) oltre ai normali 3700, 3400, 2700, 2300 e 1800 MHz.
  • L'output di cpufreq-aperf(after modprobe msr) è paragonabile all'output di cpupower monitor. Le frequenze mostrate da questi strumenti dovrebbero riflettere i boost.
  • Con il driver video standard o persino il radeonmodulo nel kernel, non sono riuscito a far funzionare l'A10-6700 con una frequenza di boost (usando stress --cpu 2).
  • Con il fglrxmodulo ATI / AMD caricato nel kernel, il processore aumenterà permanentemente due core (e apparentemente anche i restanti core temporaneamente). Questo è stato testato senza che X fosse utilizzato o addirittura configurato.

Ricorda, la decisione a favore o contro il boost viene presa dall'APU in modo autonomo. La mia ipotesi in questo momento è che l'APU non può decidere se la sua attuale dissipazione di potenza lascia spazio a una spinta a meno che l'unità grafica integrata non sia adeguatamente inizializzata.

L'uscita video con il modulo standard differisce dall'uscita quando viene caricato fglrx. Pertanto, possiamo solo indovinare se il kernel può mettere l'APU nella modalità presumibilmente richiesta "intelligente" (consapevole della perdita di potenza) da sola, mentre continua ad usare il modulo VGA.

Fino a quando questo non verrà risolto, caricherò semplicemente fglrx. Il rovescio della medaglia è che la sua costruzione richiede molte cose che non vuoi su un server e che devono essere eliminate dopo la compilazione.

Inoltre, ha fglrxuna dimensione di quasi 9 MB. Non è un problema, ma sapere che in questo caso è per lo più un trasporto morto non mi rende troppo felice.

[Modifica 2014-lug-24]

Ora ho segnalato questo errore .

Ho notato anche un altro bug: se in effetti si utilizza fglrxe si tenta di utilizzare la modalità di gestione dinamica dell'alimentazione .


Grazie per le informazioni. Compilerò il nuovo kernel con BAPM abilitato, come suggerito nella seconda segnalazione di bug, per vedere se fa differenza :)
m132

Sembra che BAPM sia abilitato di default sul kernel 3.16. Almeno per me, l'aggiornamento non ha risolto questo problema. Tuttavia, disabilitando DPM funziona, ottengo frequenze superiori a 1,8 GHz, ma poi il mio laptop inizia a surriscaldarsi e limita la velocità della CPU a 1,1 GHz, quindi le prestazioni sono ancora peggiori.
m132,

@ M132 È triste. Tuttavia, contribuisce al sospetto. - Vedi lo stesso comportamento con Windows? - Puoi influenzare il controllo della ventola? - È un peccato che il produttore apparentemente non abbia collaborato con AMD abbastanza bene - TurboBoost è una caratteristica regolare nell'ambito del TDP.
Esegui CMD il

Non posso provare ora, perché ho rimosso Windows per creare una partizione separata per / home. Non conosco i fan, ma ricordo Task Manager, che mi mostrava una frequenza della CPU di 2,3 GHz, quindi TurboBoost funzionava e non si surriscaldava, quindi anche DPM funzionava.
m132,

Grazie ai commenti di ieri sul problema che hai segnalato, ho finalmente funzionato! Leggi la domanda per i dettagli: D
m132

2

Ho lo stesso problema con il mio Thinkpad che esegue lo stesso AMD A8-4500m su Ubuntu 13.10. L'ho trovato oggi, ma il mio inglese non è molto buono, quindi non l'ho capito.

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

Possa essere utile per te.

L'inizio principale che ho riscontrato è che il Turbo Core non è supportato dall'11.10. Questo è tutto ciò che ho trovato. Per favore, dimostrami che mi sbaglio.


1
Questo link spiega semplicemente cos'è Turbo Boost / Core e come abilitarlo / disabilitarlo, ma nel mio caso / sys / devices / system / cpu / cpufreq / boost è già 1 (abilitato).
m132,

Da nessuna parte si afferma che TurboCore non è supportato. È vero il contrario. Il commento di @ M132 è corretto.
Esegui CMD il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.