web-dev-qa-db-fra.com

Comment activer AMD Turbo Core sur Ubuntu 14.04?

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

Voici la sortie de cpupower frequency-info, avis Actif: non sous le support de l'état 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é avec le programmateur ondemand et 3 instances de ffmpeg décodant une 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 possèdent leur propre commutateur BAPM en source. Il se trouve dans drivers/gpu/drm/radeon/trinity_dpm.c et est activé (au moment de la rédaction) uniquement pour les cartes MSI, en raison de problèmes de stabilité. Pour l'activer, ouvrez ce fichier, recherchez cette ligne:

    pi->enable_bapm = false;

Remplacez false par true, puis compilez et installez le nouveau noyau. Tu devrais obtenir une panique du noyau stimuler travailler maintenant. N'oubliez pas que la puissance du processeur est également partagée avec le processeur graphique, vous ne pouvez donc presque jamais obtenir la fréquence la plus élevée disponible si le processeur graphique est également utilisé.

8
m132

[Mise à jour 2015]

À partir de Linux 3.16:

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

  • La valeur bapmest définie par défaut sur 1 pour les systèmes Kaveri, Kabini et Trinity, Richland de bureau (voir ici ), ce qui a pour effet d'activer le Turbo Core.

Ce qui signifie qu'avec le noyau 3.16 ou ultérieur, Turbo Core devrait fonctionner immédiatement avec radeondans de nombreux cas.

Si vous utilisez Debian, ou si vous utilisez Ubuntu et que ce qui précède n’est pas vrai, veuillez vous référer à Comment configurer un système Debian (focus sur 2D ou console/serveur) avec un processeur AMD Turbo Core APU pour une efficacité énergétique et informatique maximale?

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

J'ai publié un analyse détaillée sur unix-stackexchange.com qui contient (du moins pour moi) quelques surprises. Tels que le gouverneur ondemandpourrait être pire que performance(du moins avec le Richland A10-6700) et fglrxutilisant apparemment des astuces discutables pour améliorer les boosters à court terme, devant devoir compenser brusquement cela à long terme. Je suis content d'avoir examiné de plus près cela.

[réponse originale]

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

  • La sortie de cat /proc/cpuinfo ne reflète pas et ne reflétera aucune accélération 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-info ne montrera pas les fréquences de boost disponibles, mais la sortie de cpupower frequency-info le sera. Pour l’A10-6700, il devrait indiquer 4300 MHz (Pb0), 4200 MHz (Pb1) et 3900 MHz (Pb2) en plus des fréquences normales 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 indiquées par ces outils sont supposées refléter les sursauts.
  • Avec le pilote vidéo standard ou même le module radeondans le noyau, je n’ai pas réussi à faire en sorte que l’A10-6700 utilise une fréquence d’augmentation (en utilisant stress --cpu 2).
  • Avec le module ATI/AMD fglrxchargé dans le noyau, le processeur boostera de manière permanente deux cœurs (et apparemment aussi les cœurs restants temporairement). Ceci a été testé sans que X soit utilisé ou même configuré.

Rappelez-vous, la décision pour ou contre le boost est prise par le APU de manière autonome. À ce stade, j’imagine que le APU ne peut pas décider si sa dissipation de puissance actuelle laisse la place à un boost, à moins que l’unité graphique intégrée 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 ne pouvons que deviner si le noyau peut configurer lui-même le APU dans le mode "intelligent" (supposé être sensible à la perte de puissance) supposé nécessaire, tout en utilisant le module VGA.

En attendant que cela soit réglé, je vais simplement charger fglrxname__. L'inconvénient est que le construire nécessite beaucoup de choses dont vous ne voulez pas sur un serveur et qui doit être supprimé après la compilation.

De plus, fglrxa une taille de presque 9 Mo. Ce n’est pas un problème, mais savoir qu’il s’agit principalement de fret mort dans ce cas ne me rend pas trop heureux.

[Edit 2014-juil.-24]

J'ai maintenant rapporté ce bug .

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

5
Run CMD

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

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

Puisse-t-il vous être utile.

La principale chose que j’ai trouvée est que le Turbo Core n’est plus supporté depuis la version 11.10. C'est tout ce que j'ai trouvé. Prouvez-moi s'il vous plaît que je me trompe.

1
Mojo Jojo