Comment activer AMD Turbo Core sur Ubuntu 14.04?

9

J'utilise Ubuntu 14.04 (noyau générique 3.13.0-24) sur un ordinateur portable basé sur AMD A8-4500m, et j'ai récemment remarqué que AMD Turbo Core ne fonctionne pas du tout. Tout fonctionne sous Windows, cependant, sur la fréquence du processeur Linux ne peut pas dépasser 1,9 GHz (vérifié avec cpufreq-aperf).

Voici la sortie de cpupower frequency-info, notez Active: pas de support d'état sous 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

Plus de tests (exécutés avec le planificateur à la demande et 3 instances de décodage ffmpeg de la vidéo H.264 1920x1080 en arrière-plan):

[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: Il semble que les processeurs de la série Trinity aient leur propre commutateur BAPM en source. Il se trouve dans les pilotes / gpu / drm / radeon / trinity_dpm.c et il (au moment de la rédaction) n'est activé que pour les cartes MSI, en raison de problèmes de stabilité. Pour l'activer, ouvrez ce fichier, trouvez cette ligne:

    pi->enable_bapm = false;

Remplacez false par true, puis compilez et installez un nouveau noyau. Vous devriez obtenir un boost de panique du noyau maintenant. Gardez à l'esprit que la puissance du processeur est également partagée avec le GPU, de sorte que vous n'obtiendrez presque jamais la fréquence la plus élevée disponible si le GPU est également utilisé.

m132
la source
1
Bizarre, l'installation de fglrx "a activé" Turbo Core, et maintenant il affiche "Actif: oui". cpufreq-aperfsignale parfois une fréquence de 2 GHz, mais il ne passe toujours pas à 2,3 GHz ou 2,8 GHz, comme sous Windows.
m132
Juste pour confirmer: j'ai le même problème avec un A10-7850K sous Fedora avec noyau 3.14.5: pris en charge: oui, actif: non. Semble ne pas être spécifique à la distribution.
Chris
Pouvez-vous essayer de désactiver la configuration du mode du noyau ( nomodesetsur la ligne de commande du noyau)? Cela a résolu ce problème pour moi.
Chris
1
@Chris Maintenant, cela se voit Active: yes, mais je suppose que ces informations sont fausses, car il n'y a pas de Pstates affichés et cpufreq-aperfne rapporte toujours pas de fréquence supérieure à 1,9 GHz. Cela a également forcé l'utilisation du logiciel de rendu OpenGL pour moi.
m132
Et pour turbostatou cpupower monitor? Montrent-ils que le turbo est utilisé?
Chris

Réponses:

5

[Mise à jour 2015]

À partir de Linux 3.16:

  • La valeur de bapmpeut être fournie comme paramètre de module (voir ici ).

  • La valeur de bapmest définie sur 1 par défaut pour les systèmes Kaveri, Kabini et Trinity, Richland de bureau (voir ici ), ce qui entraîne l'activation de Turbo Core.

Ce qui signifie qu'avec le noyau 3.16 ou version ultérieure, Turbo Core devrait fonctionner dès la sortie de l'emballage avec radeondans de nombreux cas.

Si vous exécutez Debian, ou si vous exécutez Ubuntu et que ce qui précède n'est pas vrai pour vous, veuillez vous référer à Comment configurer un système Debian (se concentrer sur 2D ou console / serveur) avec un APU AMD Turbo Core pour une énergie et une efficacité informatique maximales ?

[Mise à jour 2014-août-07]

J'ai publié une analyse détaillée surunix-stackexchange.com laquelle contient (au moins pour moi) quelques surprises. Tels que le ondemandgouverneur potentiellement pire que performance(au moins avec le Richland A10-6700) et fglrxapparemment en utilisant des astuces douteuses pour améliorer les boosts à court terme, devant soudainement compenser cela à long terme. Je suis content d'avoir regardé cela de plus près.

[Réponse originale]

Je suis en train de configurer un système avec un A10-6700 en utilisant le serveur Ubuntu 14.04.

  • La sortie de cat /proc/cpuinfone reflète pas et ne reflétera aucun boost du processeur. Le boost est une décision autonome sur la puce basée sur des critères potentiellement complexes. Lisez à ce sujet ici .
  • La sortie de cpufreq-infone montrera pas les fréquences de boost disponibles, mais la sortie de cpupower frequency-infovolonté. Pour l'A10-6700, il devrait afficher 4300 MHz (Pb0), 4200 MHz (Pb1) et 3900 MHz (Pb2) en plus des 3700, 3400, 2700, 2300 et 1800 MHz.
  • La sortie de cpufreq-aperf(après modprobe msr) est comparable à la sortie de cpupower monitor. Les fréquences affichées par ces outils sont censées refléter les amplifications.
  • Avec le pilote vidéo standard ou même le radeonmodule dans le noyau, je n'ai pas réussi à faire en sorte que l'A10-6700 utilise une fréquence de boost (à l'aide stress --cpu 2).
  • Avec le fglrxmodule ATI / AMD chargé dans le noyau, le processeur boostera deux cœurs de façon permanente (et apparemment aussi les cœurs restants temporairement). Cela a été testé sans que X soit utilisé ou même configuré.

N'oubliez pas que la décision pour ou contre le boost est prise par l'APU de manière autonome. Je suppose qu'à ce moment-ci, l'APU ne peut pas décider si sa dissipation de puissance actuelle laisse de la place à un boost à moins que l'unité graphique intégrée ne soit correctement initialisée.

La sortie vidéo avec le module standard diffère de la sortie lorsque fglrx est chargé. Par conséquent, nous pouvons seulement deviner si le noyau peut mettre l'APU dans le mode "intelligent" vraisemblablement requis (conscient de la perte de puissance) tout en utilisant le module VGA.

Jusqu'à ce que cela soit réglé, je vais simplement charger fglrx. L'inconvénient est que sa construction nécessite beaucoup de choses que vous ne voulez pas sur un serveur et qui doivent être supprimées après la compilation.

En outre, il fglrxmesure près de 9 Mo. Ce n'est pas un problème mais savoir que c'est surtout du fret mort dans ce cas ne me fait pas trop plaisir.

[Modifier 2014-juil-24]

J'ai maintenant signalé ce bogue .

J'ai remarqué qu'un autre bug a également été signalé: si en fait vous utilisez fglrxet essayez d'utiliser le mode Dynamic Power Management .

Exécutez CMD
la source
Merci pour l'info. Je vais compiler un nouveau noyau avec BAPM activé, comme suggéré dans le deuxième rapport de bogue, pour voir si cela fait une différence :)
m132
Il semble que BAPM soit activé par défaut sur le noyau 3.16. Au moins pour moi, la mise à niveau n'a pas résolu ce problème. Cependant, la désactivation de DPM fonctionne, j'obtiens des fréquences supérieures à 1,8 GHz, mais mon ordinateur portable commence à surchauffer et limite la vitesse du processeur à 1,1 GHz, donc les performances sont encore pires.
m132
@ M132 C'est triste. Pourtant, cela contribue à la suspicion. - Voyez-vous le même comportement avec Windows? - Pouvez-vous influencer le contrôle du ventilateur? - Dommage que le constructeur n'ait apparemment pas suffisamment coopéré avec AMD - TurboBoost est une fonctionnalité régulière dans le cadre du TDP.
Exécutez CMD le
Je ne peux pas tester maintenant, car j'ai supprimé Windows pour créer une partition distincte pour / home. Je ne sais pas pour les fans, mais je me souviens du Gestionnaire des tâches, me montrant la fréquence du processeur 2,3 GHz, donc TurboBoost fonctionnait, et il ne surchauffait pas, donc DPM fonctionnait également.
m132
Grâce aux commentaires d'hier sur le problème que vous avez signalé, j'ai finalement réussi à le faire fonctionner! Lisez la question pour plus de détails: D
m132
2

J'ai le même problème avec mon Thinkpad exécutant le même AMD A8-4500m sur Ubuntu 13.10. J'ai trouvé ça aujourd'hui, mais mon anglais n'est pas très bon, donc je ne l'ai pas compris.

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

Qu'il vous soit utile.

Le principal début que j'ai trouvé est que le Turbo Core n'est pas pris en charge depuis 11.10. C'est tout ce que j'ai trouvé. Veuillez me prouver que je me trompe.

Mojo Jojo
la source
1
Ce lien explique simplement ce qu'est Turbo Boost / Core et comment l'activer / le désactiver, mais dans mon cas / sys / devices / system / cpu / cpufreq / boost est déjà 1 (activé).
m132
Il n'est indiqué nulle part que TurboCore n'est pas pris en charge. Le contraire est le cas. Le commentaire de @ M132 est correct.
Exécutez CMD le