Confira !!
O código de desenvolvimento mais recente da GNU C Library (Glibc) desta semana começou a descartar vários caminhos de código otimizados para SSSE3.
O Supplemental Streaming SIMD Extensions 3 (SSSE3) remonta a mais de uma década ao Intel Xeon 5100 / Core 2 days ou AMD Bobcat/Bulldozer como uma iteração do SSE. Mas com a Glibc também carregando caminhos de código otimizados para SSE2 ou SSE4.1 mais antigos da mesma época que SSSE3, além de caminhos de código AVX2 e EVEX para CPUs Intel/AMD mais recentes, os caminhos de código SSSE3 estão sendo eliminados.
Os desenvolvedores da Glibc determinaram que não vale mais a pena enviar caminhos de código otimizados para SSSE3, dados os caminhos de código SSE2 / SSE4.1 / AVX2 / EVEX também existentes, que poucas CPUs Intel / AMD são deixadas para a rota SSSE3. O custo do tamanho do código para carregar o SSSE3 é mensurável e, a partir desta semana, os desenvolvedores começaram a removê-lo.
Entre as remoções do SSSE3 estão descartando mem{move|cpy}-ssse3-back, str{p}{n}cpy-ssse3, str{n}cat-ssse3, str{n}{case}cmp-ssse3 e {w } caminhos de código memcmp-ssse3.
Este commit substitui o memmove-ssse3 por uma versão melhor otimizada de menor pegada de código. Também alias memcpy para memmove.
Além desta função, todas as outras funções SSSE3 devem ser removidas com segurança.
O desempenho não é alterado drasticamente, embora mostre melhorias gerais sem grandes regressões ou ganhos.
bench-memcpy geometric_mean(N=50) Novo / Original: 0,957
bench-memcpy-random geometric_mean(N=50) Novo / Original: 0,912
bench-memcpy-large geometric_mean(N=50) Novo / Original: 0,892
Benchmarks onde é executado o ZhaoxinKX-6840@2000MHz
Nenhum comentário:
Postar um comentário