FERRAMENTAS LINUX: Os níveis de recursos da microarquitetura x86-64 do GCC 11 estão prontos para funcionar

terça-feira, 3 de novembro de 2020

Os níveis de recursos da microarquitetura x86-64 do GCC 11 estão prontos para funcionar

 

Confira !!


Os níveis de recursos da microarquitetura do Linux x86_64 tomaram forma este ano para diferentes níveis de recursos / desempenho com base nos recursos da CPU. Tanto o LLVM Clang 12 quanto o GCC 11 estão prontos para oferecer os novos destinos x86-64-v2, x86-64-v3 e x86-64-v4.

Esses níveis de recursos da microarquitetura x86_64 visam o surgimento de algumas "classes" de suporte ao processador Intel / AMD CPU, em vez de continuar a depender apenas da linha de base x86_64 ou direcionar uma família de CPU específica para otimizações. Esses novos níveis tornam mais fácil aumentar os requisitos básicos em torno do Linux x86-64, seja para uma distribuição do Linux ou um aplicativo de software específico onde o desenvolvedor / ISV pode querer compilar com maiores extensões de conjunto de instruções habilitadas para atender a Intel mais recente / CPUs AMD. Ter este conjunto de quatro versões / níveis também reduz o número de combinações possíveis se desejar habilitar o Multi-Versioning de Função (FMV) ou semelhante, sem recorrer a todas as famílias possíveis de CPU Intel / AMD. E veremos o que mais resulta disso e o esforço em torno de algumas distribuições que procuram aumentar os requisitos de CPU do Linux x86_64 .

O LLVM Clang 12 uniu seu suporte em outubro por ser capaz de passar x86-64-v2 / x86-64-v3 / x86-64-v4 para -march = para especificar o nível de recurso. O GCC 11 também em outubro reuniu seu apoio, embora tenha esquecido de escrever sobre isso na minha lista TODO. Eles têm o seu código mesclado e pronto para usar o GCC 11, que será lançado de março a abril. Mais recentemente, o GCC também permite configurar sua compilação de compilador usando esses níveis de recursos para a opção "--with-arch_64 =".


Esses níveis comuns em sua forma inicial equivalem a:

x86-64: CMOV, CMPXCHG8B, FPU, FXSR, MMX, FXSR, SCE, SSE, SSE2

x86-64-v2: (perto de Nehalem) CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3

x86-64-v3: (perto de Haswell) AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, XSAVE

x86-64-v4: AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL

Eles são os mesmos para LLVM e GCC por serem especificados por meio do psABI x86-64, graças ao trabalho da Red Hat em resolver tudo isso.

Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário