AMD decide desativar o loop buffer do Zen 4
(chipsandcheese.com)A AMD desativou o loop buffer do Zen 4
-
Função do loop buffer: fica no frontend da CPU e armazena instruções buscadas anteriormente. Loops pequenos podem caber no loop buffer e, com isso, algumas etapas do frontend podem ser desativadas para economizar energia e melhorar o desempenho. É uma tecnologia antiga usada em núcleos da Intel, Arm e AMD.
-
Loop buffer no Zen 4: o Zen 4 é o único entre os núcleos de alto desempenho da AMD a incluir um loop buffer. Segundo experimentos com contadores de desempenho, quando o núcleo roda com uma única thread, ele tem 144 entradas. Quando duas threads SMT estão ativas, 72 entradas são alocadas para cada thread. Se houver chamadas e retornos dentro do loop, ele não é capturado pelo loop buffer.
-
Mudanças após atualização de BIOS: após atualizar a ASRock B650 PG Lightning para a BIOS versão 3.10, o monitoramento de desempenho de hardware mostrou que o frontend não despacha mais micro-ops a partir do loop buffer. Ao voltar para a BIOS versão 1.21, o loop buffer é reativado. A AMD aparentemente desativou o loop buffer entre a BIOS 1.21 (AGESA versão 1.0.0.6) e a BIOS 3.10 (AGESA versão 1.2.0.2a).
SPEC CPU2017: procurando diferenças
-
Impacto no desempenho: as pontuações do SPEC CPU2017 mostram que não há diferença perceptível conforme o loop buffer esteja ativado ou não. As pontuações totais das suítes de inteiros e de ponto flutuante mostram diferença inferior a 1%. O ganho de desempenho com SMT também não é afetado.
-
Papel do loop buffer: o objetivo principal do loop buffer não é aumentar o desempenho, mas permitir que o núcleo desative boa parte do frontend. Segundo a referência de programação de processadores Zen 4, os contadores de desempenho podem ser programados para aumentar em 1 sempre que a contagem de eventos ultrapassar um limite.
Cyberpunk 2077
- Teste de desempenho em jogos: foi usado o benchmark integrado de Cyberpunk 2077 para verificar o impacto da desativação do loop buffer no desempenho em jogos. Foi confirmado que a desativação do loop buffer quase não afeta o desempenho no jogo.
Tentativa de verificar o consumo de energia
- Eficiência energética: tentou-se usar o contador de energia do núcleo do Zen 4 para verificar se o loop buffer melhora a eficiência energética, mas os resultados não foram consistentes. Na BIOS nova, não é possível testar o loop buffer.
Conclusão
- Motivo para desativar o loop buffer: não está claro por que a AMD desativou o loop buffer do Zen 4. Recursos da CPU podem ser desativados por causa de bugs de hardware. O Zen 4 foi o primeiro caso em que a AMD introduziu um loop buffer em suas CPUs de alto desempenho. O impacto no desempenho é praticamente nulo, e o efeito no consumo de energia também deve ser pequeno.
1 comentários
Opiniões do Hacker News
É possível que o recurso tenha sido desativado para evitar vulnerabilidades de hardware. Isso sugere que o loop buffer não trazia benefícios de desempenho nem de consumo de energia
O loop buffer do Zen 4 mostra que a empresa tem capacidade de engenharia para experimentar
Estou usando um 7950x3d e fiz upgrade a partir de um 6700k da Skylake
Em jogos, quando o loop buffer é desativado, o desempenho cai 5% quando o processo fica preso ao die sem cache
O loop buffer era pequeno a ponto de só fazer diferença em cenários específicos, e um buffer maior provavelmente teria pouca vantagem em relação ao custo
No Cortex-A15, isso é um "recurso principal de design"
Não entendo quanto espaço o loop buffer ocupa no die
Na seção "energia", não houve divisão pelo número de instruções executadas por segundo
Uma das diferenças entre o 68000 de 1979 e o 68010 de 1982 foi a adição do "modo de loop", um loop buffer de 6 bytes