Como habilitar o AMD Turbo Core no Ubuntu 14.04?

9

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

Aqui está a saída de cpupower frequency-info, observe Active: no under boost state support:

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 um agendador ondemand e 3 instâncias de decodificação ffmpeg 1920x1080 H.264 de vídeo 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 têm seu próprio switch BAPM na fonte. Ele está localizado em drivers / gpu / drm / radeon / trinity_dpm.c e (no momento da redação) está ativado apenas para placas MSI, devido a problemas de estabilidade. Para habilitá-lo, abra este arquivo, localize esta linha:

    pi->enable_bapm = false;

Altere false para true e compile e instale o novo kernel. Você deve obter um impulso de pânico do kernel funcionando agora. Lembre-se de que a energia da CPU também é compartilhada com a GPU; portanto, você quase nunca obterá a frequência mais alta disponível se a GPU também estiver em uso.

m132
fonte
1
Estranho, instalar o fglrx "ativado" Turbo Core e agora mostra "Ativo: sim". cpufreq-aperfàs vezes relata frequência de 2 GHz, mas ainda não muda para 2,3 GHz ou 2,8 GHz, como no Windows.
M132 04/04
Apenas para confirmar: estou tendo o mesmo problema com um A10-7850K no Fedora com kernel 3.14.5: Suportado: sim, Ativo: não. Parece não ser específico da distribuição.
Chris
Você pode tentar desativar a configuração de modo do kernel ( nomodesetna linha de comando do kernel)? Isso corrigiu esse problema para mim.
Chris
1
@ Chris Agora mostra Active: yes, mas presumo que essas informações estejam erradas, porque não há Pstates mostrados e cpufreq-aperfainda não informa frequência superior a 1,9 GHz. Também forçou o uso do software OpenGL renderer para mim.
M132 06/06
Que tal turbostatou cpupower monitor? Eles mostram turbo sendo usado?
Chris

Respostas:

5

[Atualização 2015]

Começando com o Linux 3.16:

  • O valor para bapmpode ser fornecido como um parâmetro do módulo (veja aqui ).

  • O valor de bapmé definido como 1 por padrão para os sistemas Kaveri, Kabini e desktop Trinity, Richland (veja 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 radeonem muitos casos.

Se você executa o Debian, ou se o Ubuntu e o anterior não são verdadeiros, consulte Como configurar um sistema Debian (foco em 2D ou console / servidor) com uma APU AMD Turbo Core para obter o máximo de eficiência energética e computacional ?

[Atualização 2014-agosto-07]

Publiquei uma análise detalhada sobre aunix-stackexchange.com qual contém (pelo menos para mim) algumas surpresas. Como o ondemandgovernador potencialmente sendo pior do que performance(pelo menos com o Richland A10-6700) e fglrxaparentemente usando alguns truques questionáveis ​​para melhorar os aumentos de curto prazo, tendo que compensar abruptamente isso a longo prazo. Estou feliz por ter examinado mais de perto isso.

[Resposta original]

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

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

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

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

Até que isso seja resolvido, simplesmente carregarei fglrx. A desvantagem é que, para construí-lo, são necessárias muitas coisas que você não deseja em um servidor e que precisam ser excluídas após a compilação.

Além disso, fglrxtem quase 9 MB de tamanho. Não é um problema, mas saber que, na maioria das vezes, é frete morto, não me deixa muito feliz.

[Editar 2014-Jul-24]

Eu agora relatei esse bug .

Percebi que outro bug também foi relatado: Se, de fato, você usa fglrxe tenta usar o modo Gerenciamento Dinâmico de Energia .

Execute o CMD
fonte
Obrigado pela informação. Eu estou indo para compilar novo kernel com BAPM habilitado, como sugerido no relatório 2 erro, para ver se ele faz alguma diferença :)
m132
Parece que o BAPM está ativado por padrão no kernel 3.16. Pelo menos para mim, a atualização não corrigiu esse problema. No entanto, ao desativar o DPM, recebo frequências acima de 1,8 GHz, mas meu laptop começa a superaquecer, limitando a velocidade da CPU a 1,1 GHz, para que o desempenho seja ainda pior.
M132
@ M132 Isso é triste. Ainda assim, contribui para a suspeita. - Você vê o mesmo comportamento no Windows? - Você pode influenciar o controle do ventilador? - É uma pena que o fabricante aparentemente não tenha cooperado com a AMD o suficiente - o TurboBoost é um recurso regular no escopo do TDP.
Executar CMD
Não posso testar agora, porque removi o Windows para criar uma partição separada para / home. Não sei sobre os fãs, mas lembro-me do Gerenciador de Tarefas, mostrando a frequência da CPU em 2,3 GHz, então o TurboBoost estava funcionando e não superaqueceu, e o DPM também estava funcionando.
M132
Graças aos comentários de ontem sobre o problema que você relatou, finalmente consegui funcionar! Leia a pergunta para obter detalhes: D
m132
2

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

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

Que possa ser útil para você.

O começo principal que encontrei é que o Turbo Core não é suportado desde a 11.10. Foi tudo o que encontrei. Por favor, prove que estou errado.

Mojo Jojo
fonte
1
Este link explica apenas o que é o Turbo Boost / Core e como ativá-lo / desativá-lo, mas no meu caso / sys / devices / system / cpu / cpufreq / boost já é 1 (ativado).
M132
Em nenhum lugar é declarado que o TurboCore não é suportado. O oposto é o caso. O comentário de @ M132 está correto.
Executar CMD