FERRAMENTAS LINUX: O LLVM Clang 12 mescla o suporte para o Microarchitecture Levels do x86_64

sexta-feira, 23 de outubro de 2020

O LLVM Clang 12 mescla o suporte para o Microarchitecture Levels do x86_64

 


Confira !!


Em um esforço para atender melhor às extensões de conjunto de instruções x86_64 mais novas e comuns, os desenvolvedores de conjunto de ferramentas de código aberto estão avançando com o trabalho em níveis de recursos de microarquitetura do x86_64 para serem capazes de atingir um punhado de "níveis" diferentes além da instrução x86_64 de base conjunto.

Os níveis de recursos do x86_64 são para segregar facilmente diferentes classes de CPUs x86_64 Intel / AMD na esperança de tornar mais fácil para as distribuições Linux aumentar seus requisitos básicos além de apenas x86_64 / AMD64 e melhorar as cadeias de ferramentas do compilador com um conjunto comum de níveis possíveis / recursos de hardware em geração de bibliotecas otimizadas. Isso vai junto com o trabalho realizado pela Red Hat em aumentar os requisitos de CPU x86_64 para novas versões RHEL / Fedora e para as iniciativas de otimização como o glibc HWCAPS no suporte a alguns níveis de otimização diferentes em vez de ter como alvo todas as famílias de microarquitetura de CPU Intel / AMD possíveis como é feito atualmente para otimização / ajuste de código.

Na semana passada, o LLVM Clang 12 adicionou suporte para alimentar os níveis de recursos x86_64 no compilador Clang C / C ++ e o GCC 11 também deve lançar em breve uma funcionalidade semelhante.

Os níveis de recursos definidos para x86_64 incluem:

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

Os diferentes níveis / versões podem ser alimentados agora em -march = para Clang 12 e GCC 11 se desejar otimizar para um desses alvos em vez de especificar extensões de conjunto de instruções específicas manualmente ou uma família de CPU.


Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário