O SUSE, e o projeto openSUSE que ele patrocina, tem uma maneira de contornar a questão de otimizar sua distribuição para versões específicas da arquitetura x86-64. Deste modo, a distribuição openSUSE encontra uma solução para suporte à versão x86-64.
Este novo movimento foi anunciado na semana passada e, esperançosamente, resolverá os problemas sobre o suporte x86-64 que têm causado discórdia nas comunidades das distros. Em julho, já se sabia que a nova distribuição ALP do SUSE pode precisar de x86-64-v3. Então, mais tarde, a Tumbleweed de lançamento contínuo considerou exigir x86-64-v2. Aparentemente, porém, muitos usuários ainda rodavam um kit mais antigo que não suportava a v2 e reclamaram que os líderes do projeto recuaram e decidiram que o novo requisito seria descartado.
A resolução usa um novo recurso chamado Hardware Capability Tunables ou hwcaps na GNU C Library glibc
O recurso foi introduzido na glibc v2.33.
Veja como as notas de lançamento o descrevem:
O vinculador dinâmico carrega implementações otimizadas de objetos compartilhados de subdiretórios sob o
glibc-hwcaps
diretório no caminho de pesquisa da biblioteca se os recursos do sistema atenderem aos requisitos desse subdiretório.Os subdiretórios inicialmente suportados incluem…
x86-64-v2
,x86-64-v3
,x86-64-v4
forx86_64-linux-gnu
… Os nomes dos subdiretórios correspondem aos níveis de microarquitetura x86-64 independentes do fornecedor definidos no suplemento x86-64 psABI [PDF].
O suporte para isso veio de um projeto SUSE Hackweek do desenvolvedor Antonio Larrosa, que também explicou como usá-lo.
A essência é que, embora a distro principal do Tumbleweed ainda seja compilada para o nível mais básico de suporte x86-64, x86-64-v1
esse novo recurso no glibc permite que as bibliotecas usem recursos de CPU mais recentes, caso se beneficiem deles. Se uma biblioteca específica for substancialmente mais rápida graças a recursos específicos de versões mais recentes da arquitetura do processador, seu desenvolvedor poderá fornecer diferentes versões da biblioteca: versões rápidas que usam o novo recurso e versões mais lentas que não usam e precisam funcionar em torno dele em software em CPUs mais antigas que não possuem as instruções.
A melhor parte é que isso é automático. A Glibc carregará automaticamente as bibliotecas apropriadas nas CPUs que correspondem a essa revisão da especificação: o programa que chama a biblioteca não precisa saber ou se importar. A alteração foi aceita há algumas semanas, portanto, todas as instalações do Tumbleweed atualizadas recentemente já o possuem.
openSUSE encontra uma solução para suporte à versão x86-64.
Parte disso vem do recurso AVX-512 da Intel , especialmente nos recentes processadores Xeon Scalable “Sapphire Rapids” , que o The Reg discutiu em janeiro. Essas novas instruções também estariam nos processadores de desktop “Alder Lake”, mas a Intel decidiu desativá -las.
O AVX-512 faz parte do x86-64-v4 e alguns fornecedores parecem interessados ??nele , mas, por enquanto, o SUSE está apenas fornecendo algumas bibliotecas aceleradas que usam os recursos do x86-64-v3. A princípio, apenas alguns programas estão recebendo suporte, como Python 3.11, análise de XML e PNG e um decodificador para o novo formato de imagem JPEG-XL que o Google optou por inserir no Chrome 110 e posterior.
Agora que o suporte está disponível, porém, a adoção certamente aumentará. Em princípio, os desenvolvedores poderiam fornecer quatro conjuntos diferentes de bibliotecas otimizadas para desempenho, uma para cada versão do x86-64, com níveis crescentes de exploração dos recursos avançados da CPU.