FERRAMENTAS LINUX: O Compilador GCC vê um novo patch com o ajuste para o AMD Zen 3 (Znver3)

terça-feira, 16 de março de 2021

O Compilador GCC vê um novo patch com o ajuste para o AMD Zen 3 (Znver3)

 

Confira !!

O GCC está em processo de obter um suporte melhor para os processadores AMD Zen 3 com seu alvo no znver3 .

Em dezembro, o compilador GCC 11 obteve o suporte inicial para o AMD Zen 3 (znver3) . Esse suporte estava apenas habilitando as instruções de CPU recém-suportadas encontradas com esta microarquitetura Zen de última geração. Infelizmente, faltou naquele momento qualquer ajuste para permitir que o compilador tomasse decisões mais informadas sobre o agendamento de instruções com os custos de instrução, etc. Portanto, ele carrega os mesmos dados que o Zen 2, que também são amplamente transportados do código do compilador Zen original.

Agora, algumas semanas antes do lançamento estável do GCC 11, um novo patch do compilador Zen 3 apareceu. O desenvolvedor de longa data do GCC, Jan Hubicka, do SUSE, forneceu um patch "parte 1 do ajuste" para o código GCC Znver3.

Hubicka ajustou o alvo Znver3 com base em benchmarks, mas no geral ele caracterizou o ajuste como uma atualização suave do Zen 2. O ajuste inclui o ajuste de algumas instruções que agora têm latências mais curtas em CPUs Zen 3, as instruções de coleta são muito mais rápidas e o FMADD foi otimizado com Zen 3.

Isso é ótimo e ótimo de ver, mas é notado que existem algumas regressões de desempenho restantes e o agendador de instruções ainda poderia usar um pouco de amor com ele ainda tratando o Zen como uma CPU em ordem, entre outras áreas deixadas para ajuste posterior do Znver3 caminho de código otimizado.

Este patch de ajuste inicial pode ser encontrado na lista de discussão do GCC .

É ótimo ver essa superfície de remendo e espero estar em boa forma e pousar para o próximo GCC 11.1 estável, embora estejamos no estágio quatro (correção de regressão).

A habilitação oportuna do compilador ainda é uma área em que a AMD poderia se beneficiar com as melhorias. O suporte Znver3 inicial / básico não pousou no tronco até dezembro, depois que os processadores da série Ryzen 5000 já estavam compartilhando. Enquanto o EPYC 7003 agora é iminente, o GCC 11.1 não será lançado tão estável até abril e em termos de adoção da distribuição Linux ele não aparecerá como o Ubuntu até seu lançamento em outubro de 21,10. E como observado, o ajuste para Zen 3 ainda está em andamento, então será levado adiante para futuros lançamentos pontuais do GCC 11 / GCC 12. Se a AMD tivesse seu suporte Znver3 meses atrás, os entusiastas ansiosos por Arch Linux e Gentoo já poderiam ter tenho trabalhado neste código com processadores Ryzen por um tempo agora,

Enquanto isso, a Intel enviou sua habilitação Sapphire Rapids e Alder Lake no verão passado e continua a trabalhar no desenvolvimento de recursos para áreas como AMX. O alvo "icelake-server" da Intel também foi desenvolvido por mais de dois anos e em versões lançadas - há anos a Intel vem obtendo de forma confiável o suporte upstream de GCC e LLVM / Clang cerca de um ano ou dois antes do lançamento, mesmo quando CPUs chegam dentro do prazo. Um dos pontos fortes da Intel tem sido o suporte pontual e previsível ao Linux / código aberto, bem antes do lançamento e garantindo que o tempo se esgote para ter um suporte generalizado no lançamento. Esperançosamente, isso será melhorado com o avanço do lado da AMD, dada sua crescente base de clientes Linux em áreas como HPC.

Esperançosamente, o LLVM Clang terá um ajuste similar do Znver3 em breve, mas aí o momento é ainda menos oportuno, já que o LLVM 12.0 está sendo lançado literalmente a qualquer dia agora . O LLVM / Clang 12 tem a habilitação Znver3 básica enquanto qualquer ajuste adicional virá para um ponto de lançamento do LLVM 12.0.1 em alguns meses e / ou LLVM 13 no período de setembro.





Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário