1 pontos por GN⁺ 2024-12-02 | 1 comentários | Compartilhar no WhatsApp

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

 
GN⁺ 2024-12-02
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

    • Pode ter sido um caso em que a equipe de engenharia passou meses desenvolvendo um novo recurso que, na prática, não trouxe vantagens, mas foi lançado para preservar a imagem
    • Equipes de software também às vezes reescrevem a base de código para melhorar o desempenho, mas ao fim do projeto acabam com mais código e desempenho pior
    • Em ambos os casos, o projeto não deveria ter sido lançado
  • O loop buffer do Zen 4 mostra que a empresa tem capacidade de engenharia para experimentar

    • Desta vez não houve resultado, mas permitir que engenheiros experimentem com recursos de baixo risco e baixo impacto é uma boa forma de construir confiança
    • Espero ver mais confiança no futuro
  • Estou usando um 7950x3d e fiz upgrade a partir de um 6700k da Skylake

    • Parece que sou inconscientemente atraído por chips em que o loop buffer de hardware é desativado por software
  • Em jogos, quando o loop buffer é desativado, o desempenho cai 5% quando o processo fica preso ao die sem cache

    • Medições de energia mais detalhadas poderiam confirmar se isso tem relação com orçamento térmico/energético
    • Parece que esse recurso existe para economizar energia
  • 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

    • Em algumas cargas de trabalho pode haver uma pequena queda de desempenho, mas a AMD obteve leves melhorias de desempenho desde o lançamento
    • Deveria ter sido uma opção de BIOS no Zen 4. O fato de não ser indica a possibilidade de bug ou problema de segurança
  • No Cortex-A15, isso é um "recurso principal de design"

    • Fico curioso se há números sobre o impacto em outros chips
    • Em designs de uso prolongado (por exemplo, consoles), isso poderia ser um alvo de otimização
  • Não entendo quanto espaço o loop buffer ocupa no die

    • Se ele for removido, fico curioso se esse espaço poderia ser usado em chips futuros para algo mais útil, como cache L2
  • Na seção "energia", não houve divisão pelo número de instruções executadas por segundo

    • A métrica a considerar para ver o benefício do loop buffer não é energia por segundo, mas uso de energia por instrução
  • 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