Intel Turbo Boost no Linux

Saudações,

Recentemente resolvi fazer um comparativo de desempenho em jogos entre Windows e Linux. A ideia era simples: colocar o sistema do Bill Gates frente a frente com o do pinguim e ver quem realmente entregava mais performance no mundo real.

O resultado foi… bem mais desequilibrado do que eu esperava — e claramente favorável ao Windows.

Investigando melhor, percebi algo curioso: no Linux, meu processador de notebook (um i5-13420H) simplesmente não conseguia atingir os mesmos clocks que alcançava no Windows. O mais estranho é que isso acontecia mesmo com o computador frio, drivers atualizados e instalações totalmente limpas.

Testei várias distribuições — Pop!_OS, Arch, Bazzite e Ubuntu — e em todas o comportamento foi praticamente o mesmo. O Turbo Boost não entrava em ação como deveria, o que obviamente impactava diretamente o desempenho em jogos.

Seria muito fácil simplesmente meter o pau e dizer que “Linux não presta pra jogar”. Mas, em vez disso, resolvi fazer o que todo entusiasta de tecnologia deveria fazer: buscar entender o porquê.

Afinal, por que um processador moderno, com sobra térmica e energética, não ativa corretamente o Turbo Boost no Linux?

Gostaria muito que os senhores me ajudassem com essa questão.

eu ja esperava, porém, esperava algo em torno de 10% ou 20% de diferença, não que o jogo no linux ia rodar com 30 e no windows a 120

Salve, @Riikigames

Mera sugestão: – Windows talvez seja feito (ou venha sendo aperfeiçoado), com foco mais voltado para o usuário “final”, doméstico – e por consequência, com um olho no usuário gamer (além de os jogos serem otimizados para o Windows).

Ao passo que “o Linux”, talvez, seja mais focado em servidores – e compilações, pois seus desenvolvedores e as “distros” precisam lidar com isso o tempo todo.

Faz diferença? – Não sei. – É só uma sugestão para investigar essa possível diferença.

Também não sei como funciona essa coisa de “turbo boost” com CPUs que não sejam da Intel – e menos ainda, nas diferentes GPUs dedicadas, que nunca utilizei. – Enfim, a interação CPU x S.O. passa pela placa-mãe:

Pensei nesses detalhes, apenas por 1 motivo: – “Intel” tem sido o hardware, com o qual o “Linux” tem se mostrado mais compatível. – O maior número de problemas que tenho visto, em todos os fóruns (desde +/- 2003), referem-se a hardwares de outros fabricantes, aparentemente menos cooperativos com a “comunidade” FOSS.

Você citou Intel® Core™ i5-13420H, mas não indicou o “restante” do hardware em torno dele – que pode ser relevante, para essa sua “investigação” das causas do problema.

Pessoalmente, não jogo, nem tenho GPU dedicada – apenas, CPU Intel em placa-mãe Asus – “fórmula” que vem se mostrando “sem problemas relevantes com Linux”, desde 2009.

(Também não costumo fazer compilações, nem mega-edição de vídeos).

O que percebi é que a maior parte das distros costuma operar no mínimo do meu hardware (800 MHz), 99% do tempo – com pulos ocasionais de 1 segundo (ou menos) até o máximo de 4.100 MHz:

No entanto, o Slackware e o Redcore tinham o hábito de permanecer sempre muito perto de 4.000 MHz – mesmo sem nenhum aplicativo aberto – idle total, desde o boot:

Enquanto nas outras distros a Frequência () aumenta quando executa alguma tarefa mais exigente – no Redcore diminuía durante looongas compilações, para se manter dentro do limite de 100ºC.

Daí, minha sugestão de investigar uma possível diferença de “foco”, entre Windows vs. Linux. – Está claro que o Redcore, onde o usuário acaba tende de fazer frequentes compilações (emerge / Gentoo), apresenta-se “adequado” a esse tipo de escopo.

Na época, cheguei a desativar o Turbo Boost no UEFI Bios Setup – e o resultado é que a Frequência passou a ser sempre de 2.900 MHz – a Frequência “base” da minha CPU:

CPU: 6 × Intel® Core™ i5-9400 CPU @ 2.90GHz

A partir daí, a Temperatura durante as compilações passou a flutuar entre 60ºC ~ 70ºC (ao invés de sempre perto de 100ºC), no Redcore.

Essas diferenças de comportamento talvez estejam no Kernel usado por padrão, em cada distro. – Eu costumo utilizar Kernel “comum”. – Nunca experimentei a variedade de Kernels “diferenciados”, que várias distros oferecem… hwe, liquorix, e outros bichos estranhos.

Enfim, sucesso em sua investigação!

1 curtida

Esse seu Notebook tem GPU da Nvidia? Ou somente a integrada? Pois GPUs da Nvidia costumam limitar o desempenho no sistema quando em jogos. Outra coisa, o Linux geralmente vem com o modo de energia em Economia ou Balanceado, enquanto o Windows quando usado com carregado automaticamente muda para desempenho.

é uma RTX 4050 da NVIDIA

vou dar uma aprofundada, obrigado pela sua explicação

1 curtida

Provavelmente seja isso a diferença, AMD costuma ganhar desempenho quando muda pro Linux ou no pior caso empatar com o Windows, mas Nvidia ainda é um desafio para jogos originalmente em DX12, já em DX11 costuma desempenhar próximo ou igual ao Windows

Tmj

… mas são só sugestões, pois não tenho conhecimento técnico, nem experiência pessoal:

Segundo essa IA:

  • Escolha Zen/Liquorix se você quer máxima performance e baixa latência para jogos ou uso intenso de multimídia, e está disposto a instalar um kernel não-padrão.
  • Use HWE (ou o kernel genérico) se você precisa que seu hardware mais recente funcione perfeitamente em uma versão LTS do Ubuntu, priorizando compatibilidade e estabilidade.

O Google também indicou esse tópico de uns 3 anos atrás, aqui no Fórum.

Meu pai amado ‘-’

não entendi

  • To always enable Turbo Boost:

    bash

    sudo auto-cpufreq --live --turbo always
    
    
  • To disable Turbo Boost:

    bash

    sudo auto-cpufreq --live --turbo never
    

permanent

/etc/auto-cpufreq.conf

[charger]
governor = performance
turbo = always

[battery]
governor = powersave
turbo = never

Qual sistema que você usa?

  1. Ensure snapd is installed on your system.

    • Ubuntu/Debian/Mint: snapd is usually pre-installed, or you can install it using sudo apt install snapd.

    • Fedora: sudo dnf install snapd.

    • Arch Linux: Install snapd from the AUR and enable the systemd socket.

  2. Install auto-cpufreq using the snap command:

    bash

    sudo snap install auto-cpufreq
    
    
  3. Install the daemon: Once the snap is installed, you still need to install the daemon for permanent optimization.

    bash

    sudo auto-cpufreq --install
    

Pós instalação, caso use o serviço ppd

sudo systemctl mask power-profiles-daemon.service

2 curtidas

Tem outras opções, mas esta é automática.

Independentemente da questão do processador, espere desempenho piorado mesmo. E não é por culpa do Linux, mas dos drivers ruins da Nvidia, ainda mais em laptops que dependem do sistema Optimus. Infelizmente hardware Nvidia não é legal para quem joga no Linux.

1 curtida

Este tópico foi fechado automaticamente 3 dias depois da última resposta. Novas respostas não são mais permitidas.