FERRAMENTAS LINUX: O OpenJDK mescla o x86-simd-sort da Intel para acelerar a classificação de dados em 7 a 15x

sábado, 7 de outubro de 2023

O OpenJDK mescla o x86-simd-sort da Intel para acelerar a classificação de dados em 7 a 15x

 

No início deste ano, a Intel lançou a biblioteca x86-simd-sort, uma ferramenta de classificação extremamente rápida que utiliza AVX-512

Quando o Numpy, amplamente utilizado, incorporou essa biblioteca, observou-se uma melhoria significativa, com classificações até 10 a 17 vezes mais rápidas para tipos de dados de 16 a 64 bits. Agora, os engenheiros de software da Intel apresentaram a versão 3.0 do x86-simd-sort, poucos minutos após o OpenJDK incorporar uma versão modificada desse código de classificação acelerada em sua base de código JDK de referência.

O x86-simd-sort 3.0 introduz um novo método chamado "avx512_argselect", projetado para calcular o arg nth_element, que retorna uma matriz de índices para particionar a matriz de dados. Essa versão também traz melhorias nos benchmarks, agora utilizando __builtin_cpu_supports em vez de consultar cpuinfo, entre outras alterações.

Com o x86-simd-sort 3.0 no Numpy, observa-se acelerações notáveis no "ng.partition", atingindo até 25 vezes mais velocidade para tipos de dados de 16 bits, 17 vezes para tipos de dados de 32 bits e 8 vezes para tipos de dados de 64 bits. O np.argpartition do Numpy também é até 6,5 vezes mais rápido com o novo método avx512_argselect.

Simultaneamente, uma versão ligeiramente modificada do x86-simd-sort foi mesclada no OpenJDK mais tarde. Com essa incorporação, a classificação de dados de 32 bits tornou-se até 15 vezes mais rápida, e cerca de 7 vezes mais rápida para dados de 64 bits.

Para mais detalhes sobre o x86-simd-sort 3.0 para classificação rápida do AVX-512, você pode consultar o GitHub.





Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário