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.
Até a próxima !!
Nenhum comentário:
Postar um comentário