FERRAMENTAS LINUX: A Intel começa a fazer as postagens do compilador GCC para o AVX10.1

terça-feira, 8 de agosto de 2023

A Intel começa a fazer as postagens do compilador GCC para o AVX10.1


No mês passado, a Intel anunciou o APX e o AVX10 como sucessores do AVX-512, que serão os núcleos P e E no futuro, suportando essa implementação aprimorada das Extensões de Vetor Avançadas. Felizmente, hoje os engenheiros da Intel começaram a disponibilizar patches para o compilador GCC a fim de habilitar o suporte ao AVX10.

Poucas semanas após o anúncio público da Intel sobre o AVX10 como um recurso que receberá suporte inicial nos processadores Xeon Scalable "Granite Rapids", seus engenheiros começaram a contribuir com o código para habilitar essa extensão ISA dentro da GNU Compiler Collection.

"Estamos enviando nosso suporte inicial ao AVX10 e alguns patches de exemplo neste tópico de discussão. Haverá mais por vir posteriormente. Portanto, gostaríamos de compartilhar nosso projeto proposto de AVX10 no GCC. Aqui está uma rápida introdução ao AVX10:

O AVX10 é a primeira grande ISA nova desde a introdução do AVX512 em 2013.

A partir do AVX10, pretendemos estabelecer um conjunto comum de instruções vetoriais convergentes em todas as arquiteturas Intel, incluindo Xeon Server, Atom Server e plataformas de cliente.

O tamanho máximo padrão do vetor para o AVX10 será de 256 bits, enquanto 512 bits será opcional.

O AVX10.1 incluirá todas as instruções AVX512 existentes do Granite Rapids.

Não haverá novos CPUIDs AVX512 introduzidos no futuro. Todas as instruções vetoriais EVEX estarão sob a égide do AVX10.

AVX10 será baseado em versões do ISA, em vez de haver uma variedade de diferentes CPUIDs, como AVX512BW, AVX512DQ, AVX512FP16, etc."

A Intel tem destacado a capacidade de recompilar facilmente o software existente para AVX2 a fim de aproveitar o AVX10 e obter um melhor desempenho. O AVX10 também é extremamente significativo, pois seus futuros núcleos E irão suportá-lo e, consequentemente, permitir um suporte aprimorado do AVX para futuros processadores Intel Core de cliente, assim como plataformas exclusivamente voltadas para núcleos E em servidores.

As opções de compilação propostas para o AVX10 atualmente são as seguintes:

-mavx10.x: Essa opção ativará os recursos AVX10.1-AVX10.x com um tamanho de vetor padrão de 256 bits para garantir compatibilidade em todas as plataformas.

-mavx10.x-512: Essa opção habilitará os recursos AVX10.1-AVX10.x com um tamanho de vetor de 512 bits. A opção "-mno-avx10.x-512" não será fornecida para evitar ambiguidades ao desativar o tamanho de vetor de 512 bits ou o próprio AVX10.x.

-mavx10.x-256: Essa opção habilitará os recursos AVX10.1-AVX10.x com um tamanho de vetor de 256 bits. Contudo, desativará o tamanho de vetor de 512 bits, uma vez que o tamanho do vetor é especificado na opção. A opção "-mno-avx10.x-256" não será fornecida para manter a coerência com o tamanho de vetor de 512 bits.

-mno-avx10.x: Essa opção desabilitará todos os recursos introduzidos >=avx10.x (tanto 256 bits quanto 512 bits) e manterá os recursos <avx10.x ativados, assim como as opções -mno- se comportam atualmente.

O trabalho de habilitação do AVX10.1 para o GCC também está se preparando para migrar os alvos do compilador de Granite Rapids e Granite Rapids D para "AVX10.1/512", em contraste com o ISA atual AVX-512.

Consulte este tópico na lista de discussão para obter os patches iniciais e as discussões que provavelmente ocorrerão em torno do suporte ao AVX10 no compilador GCC. Com o tempo a passar e ainda faltando alguns meses para o GCC 14 entrar na próxima fase de desenvolvimento, o suporte inicial ao AVX10.1 deve ser incorporado a tempo para o lançamento estável do GCC 14.1 no próximo ano. É reconfortante, como sempre, ver o trabalho pioneiro da Intel em relação às novas características ISA da CPU nos compiladores de código aberto, como o GCC (e o LLVM Clang).



Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário