O grupo de interesse especial (SIG) CentOS ISA tem avaliado o desempenho do CentOS Stream no caso de sua linha de base x86_64 ser aumentada de x86-64-v2 para x86-64-v3. Atualmente, o CentOS Stream 9 tem como alvo x86-64-v2, mas ao aumentar os requisitos de suporte para x86-64-v3, permitiria a capacidade de ativar AVX/AVX2 por padrão e fazer uso de outros recursos de conjunto de instruções mais recentes. A linha de base x86-64-v3 se correlaciona aproximadamente com as CPUs Intel/AMD de 2015 e mais recentes. Portanto, o CentOS ISA SIG ganha nova linha de base x86-64 para melhor desempenho.
O CentOS ISA SIG experimentou construir pacotes x86-64-v2 e x86-64-v3 e reconstruir a grande maioria do arquivo CentOS Stream 9 com esses padrões diferentes. O repositório otimizado para x86-64-v3 está disponível publicamente, mas não está sendo mantido sem atualizações regulares além do estado dos pacotes quando este teste começou.
CentOS Stream ISA SIG
O CentOS ISA SIG usou uma variedade de benchmarks de desempenho para avaliar o desempenho.
Algumas das principais conclusões do SIG incluem:
“descobrimos que algumas das funções da biblioteca matemática glibc upstream não possuíam implementações IFUNC otimizadas. Isto está atualmente a ser investigado a montante para ver se novas adições de IFUNC resultarão em ganhos semelhantes para essas áreas.
…
Com os nossos resultados preliminares mostrando ganhos nas áreas que esperamos, mas não um desempenho esmagador em todas as áreas, pode-se perguntar por que isso acontece e o que vem a seguir.
Dando um passo atrás e pensando nisso em um nível mais elevado, o desempenho sempre será ditado pelos caminhos de código predominantes que as CPUs estão executando. Esse código será altamente dependente das cargas de trabalho que estão sendo executadas. Por exemplo, se uma máquina for usada principalmente como servidor de banco de dados, seria de se esperar que o próprio código do banco de dados fosse o principal fator onde o desempenho pode ser obtido. É claro que o sistema operacional subjacente será importante, mas a CPU provavelmente gastará a maior parte do tempo executando o código do banco de dados, e uma biblioteca de nível inferior altamente ajustada não influenciará muito os resultados, a menos que o banco de dados chame essa biblioteca com frequência. Semelhante para algo como um servidor web. Para cargas de trabalho em nível de aplicativo que fornecemos como parte do sistema operacional, podemos, é claro, construí-las com a linha de base mais recente e talvez ver ganhos. No entanto,
Esta observação nos deixa com um certo enigma. Podemos ajustar o espaço de usuário do sistema operacional, mas se os aplicativos não estiverem ajustados, isso importa? Achamos que sim, mas seria muito interessante ver quais outras cargas de trabalho podem ser otimizadas e sobre as quais não temos conhecimento. Uma das idéias que temos é fornecer alguma documentação sobre como construir aplicativos de usuário final com as linhas de base mais recentes, ou fornecer alguns pacotes que um usuário possa instalar e ajustar os padrões do compilador para aproveitar as vantagens das instruções mais recentes.”
CentOS ISA SIG ganha nova linha de base x86-64 para melhor desempenho
Leia mais sobre a investigação de desempenho para x86-64-v2 vs. x86-64-v3 no Blog do CentOS.
Esperamos ver mais investigações por parte do CentOS ISA SIG e também ver considerações mais amplas por parte das comunidades de distribuição Linux sobre o aumento de suas linhas de base x86-64.