FERRAMENTAS LINUX: O compilador do GCC 10 capta novo modelo de planejador e tabelas de custo para processadores AMD Zen 2

terça-feira, 23 de julho de 2019

O compilador do GCC 10 capta novo modelo de planejador e tabelas de custo para processadores AMD Zen 2



Confira !!



Enquanto os desenvolvedores da AMD publicaram seus patches de compilador "Znver2" para o Zen 2 originalmente em novembro, meses antes do recente lançamento da série Ryzen 3000, este suporte ao compilador estava incompleto ao reutilizar o modelo de agendador existente ea tabela de custos do Znver1. Agora, embora um dos especialistas em compiladores do SUSE, que freqüentemente trabalha em cooperação com a AMD, tenha publicado o novo modelo de planejador e tabela de custos do Znver2 para o Zen 2.

A tabela de custos atualizada reflete melhor os "custos" de mover e carregar vários registros e instruções diferentes em comparação ao Znver1, para que o compilador possa tomar decisões mais sensatas para o uso mais eficiente. Com esses custos atualizados para refletir a multiplicação mais rápida e 256 caminhos vetoriais, há melhor desempenho da biblioteca GNU C em particular, e o desenvolvedor do SUSE, Jan Hubicka, observou que o desempenho da cópia de memória "ganha" mesmo para pequenos blocos.

O modelo de agendador Zen 2 é largamente baseado no modelo Zen 1 que é refinado para melhor corresponder à nova microarquitetura da AMD. Hubicka notou que há pouco efeito no desempenho geral, mas certamente irei disparar meu conjunto completo de benchmarks em breve.

O suporte inicial "Znver2" entrou no GCC 9 como lançado no começo deste ano e no lado LLVM / Clang na versão 9.0. Esse tempo sozinho é um pouco menos que ideal, considerando que o LLVM 9.0 não está sendo lançado até o mês que vem e o compilador GCC 9.1 lançado em maio e, portanto, ainda não encontrado nas versões mais recentes do Ubuntu, então os primeiros clientes da AMD Zen 2 processadores estão perdendo esse suporte otimizado, a menos que estejam usando uma distribuição Linux de lançamento ou rolando seu próprio compilador. Mas, além disso, está perdendo o modelo de agendador retrabalhado e a tabela de custos atualizada para a microarquitetura Zen 2. Agora, por sua vez, embora isso atinja o código-base do GCC hoje, ele não será encontrado em uma versão lançada da Coleção de Compiladores GNU até o GCC 10.1 ser lançado em abril de maio de 2020 ou LLVM 10.

Obter o suporte de compilador atualizado bem antes do lançamento tem sido uma área em que a Intel tem sido muito pontual ao longo dos anos em perceber os benefícios (de desempenho) de ter seu suporte de compilador disponível e ajustado para que os processadores suportem os compiladores suportados. são encontrados em todo o ecossistema Linux para garantir o desempenho ideal e também ver todas as novas extensões de conjunto de instruções disponíveis. Espero que, com o tempo, a AMD possa melhorar esse processo e fornecer suporte mais oportuno ao compilador; é certamente algo que venho criando com a AMD várias vezes este ano. Mesmo com o modelo de agendador de hoje e o trabalho de tabela de custos, ainda parece que o GCC e o Clang não têm suporte para algumas extensões do Zen 2, como o RDPRU.

Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário