linux-BR.org

Notícias de software livre e tecnologias

Ele não pode suportar comparações definidas pelo usuário, o que potencialmente significaria que V.Sort_unstable () e V.Sort_unstable_by (| a, b | a.cmp (b)) podem ter uma diferença surpreendente no desempenho.Até recentemente, a Crumsort exigiu uma defina personalizada que desativa uma comparação personalizada globalmente por meio de um #Define CMP (a, b) (a) (a)> *(b)) antes que a implementação apenas do cabeçalho seja analisada.Para tipos menores que 8 bytes, como o U8, ou i32, ambas as implementações vetorizadas manualmente mostram um desempenho muito maior do que as implementações genéricas baseadas em comparação.Outra alternativa para escrever isso de uma maneira que gera um bom gênero de código sem ramificação, especialmente com Clang é o seguinte:
Isso pode evitar o problema com a presidência da filial, no entanto, outro problema permanece.
Autor: Lukas Bergdoll @Voultapher
Data: 10-06-2023 (dd-mm-yyyy)
Esta é uma análise de desempenho da implementação recentemente popularizada [1] Intel AVX-512.

Fonte: https://github.com/Voultapher/sort-research-rs/blob/main/writeup/intel_avx512/text.md