Como ativar o AMD Turbo Core no Ubuntu 14.04?

8

Estou usando o Ubuntu 14.04 (kernel 3.13.0-24-generic) no laptop AMD A8-4500m, e notei recentemente que o AMD Turbo Core não está funcionando. Tudo funciona no Windows, no entanto, no Linux, a frequência da CPU não pode passar dos 1,9 GHz (verificada com cpufreq-aperf ).

Aqui está a saída de cpupower frequency-info , observe Ativo: não sob o suporte ao estado de impulso:

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

Mais testes (executados com o agendador ondemand e 3 instâncias do ffmpeg decodificando 1920x1080 vídeo H.264 em segundo plano):

[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: Parece que os processadores da série Trinity possuem seu próprio switch BAPM na origem. Ele está localizado em drivers / gpu / drm / radeon / trinity_dpm.c e é (no momento da escrita) habilitado somente para placas MSI, devido a problemas de estabilidade. Para habilitá-lo, abra este arquivo, encontre esta linha:

    pi->enable_bapm = false;

Mude false para true, então compile e instale o novo kernel. Você deve obter um aumento de kernel panic trabalhando agora. Tenha em mente que o poder da CPU também é compartilhado com a GPU, então você quase nunca obterá a maior frequência disponível se a GPU também estiver em uso.

    
por M132 03.05.2014 / 01:22

2 respostas

5

[Atualização de 2015]

Começando com o Linux 3.16:

  • O valor para bapm pode ser fornecido como um parâmetro do módulo (consulte aqui ).

  • O valor de bapm é definido como 1 por padrão para Kaveri, Kabini e desktop Trinity, sistemas Richland (consulte aqui ), resultando na ativação do Turbo Core.

O que significa que com o Kernel 3.16 ou posterior, o Turbo Core deve funcionar imediatamente com radeon em muitos casos.

Se você executar o Debian, ou se você executar o Ubuntu e o acima não for verdade para você, consulte Como configurar um sistema Debian (foco em 2D ou console / servidor) com uma AMD Turbo Core APU para máxima eficiência de energia e computação?

[Atualização de 2014 a 07 de agosto]

Eu publiquei uma análise detalhada em unix-stackexchange.com que contém (pelo menos para mim) algumas surpresas . Tal como o regulador ondemand sendo potencialmente pior que performance (pelo menos com a Richland A10-6700) e fglrx aparentemente usando alguns truques questionáveis para melhorar os reforços de curto prazo, tendo que compensar abruptamente isso a longo prazo . Fico feliz de ver mais de perto isso.

[Resposta original]

Eu estou no processo de configurar um sistema com um A10-6700 usando o Ubuntu 14.04 Server.

  • A saída de cat /proc/cpuinfo não reflete nem aumentará nenhum aumento de processador. O impulso é uma decisão autônoma no chip com base em critérios potencialmente complexos. Leia sobre isso aqui .
  • A saída de cpufreq-info não mostrará as frequências de impulso disponíveis, mas a saída de cpupower frequency-info será exibida. Para o A10-6700, ele deve mostrar 4300 MHz (Pb0), 4200 MHz (Pb1) e 3900 MHz (Pb2), além dos regulares 3700, 3400, 2700, 2300 e 1800 MHz.
  • A saída de cpufreq-aperf (após modprobe msr ) é comparável à saída de cpupower monitor . As frequências mostradas por essas ferramentas devem refletir impulsos.
  • Com o driver de vídeo padrão ou mesmo com o módulo radeon no kernel, não consegui fazer com que o A10-6700 usasse uma frequência de reforço (usando stress --cpu 2 ).
  • Com o módulo ATI / AMD fglrx carregado no kernel, o processador aumentará dois núcleos permanentemente (e, aparentemente, também os demais núcleos temporariamente). Isso foi testado sem que o X fosse usado ou configurado.

Lembre-se, a decisão a favor ou contra o aumento é feita pela APU autonomamente. Meu palpite neste momento é que o APU não pode decidir se a dissipação de energia atual deixa espaço para um impulso a menos que a unidade gráfica integrada seja inicializada adequadamente.

A saída de vídeo com o módulo padrão difere da saída quando o fglrx é carregado. Portanto, só podemos adivinhar se o kernel pode colocar a APU no modo supostamente "inteligente" (com reconhecimento de perda de energia) por si só, enquanto ainda estiver usando o módulo VGA.

Até que isso seja resolvido, simplesmente carregarei fglrx . A desvantagem é que construí-lo requer muitas coisas que você não quer em um servidor e que precisa para ser eliminado após a compilação.

Além disso, fglrx tem quase 9 MB de tamanho. Não é um problema, mas saber que na maior parte é frete morto, neste caso, não me faz muito feliz.

[Editar 2014-jul-24]

Eu agora relatei este bug .

Eu notei que outro bug também foi relatado: Se, de fato, você usa fglrx e tenta usar o Dynamic Gerenciamento de energia .

    
por Run CMD 23.07.2014 / 16:57
1

Eu tenho o mesmo problema com meu Thinkpad rodando o mesmo AMD A8-4500m no Ubuntu 13.10. Eu achei isso hoje, mas meu inglês não é tão bom, então eu não entendi.

link

Pode ser útil para você.

O início principal que descobri é que o Turbo Core não é suportado desde 11.10. Isso é tudo que encontrei. Por favor, prove-me que estou errado.

    
por Mojo Jojo 03.05.2014 / 08:12