A Intel publicou recentemente uma biblioteca de arquivos de cabeçalho C++ de código aberto para classificação baseada em SIMD de alto desempenho, que inicialmente se concentra em fornecer uma implementação rápida do AVX-512 quicksort. A partir de hoje, esse código foi mesclado com o Numpy e está fornecendo alguns aumentos de velocidade de 10 a 17x.
No final do ano passado, a Intel disponibilizou silenciosamente o
x86-simd-sort por meio de sua conta no GitHub. É uma biblioteca de arquivos de cabeçalho C++ para classificação SIMD de alto desempenho, embora em sua forma atual esteja focada apenas em uma implementação de quicksort AVX-512.
Não houve muita cobertura deste projeto x86-simd-sort e a própria página do GitHub não faz muito para falar sobre o potencial de desempenho rápido do AVX-512 para classificação... usado o projeto de código aberto Numpy, há um uso proeminente dele e a obtenção de alguns resultados surpreendentes. O
PR 22315 foi incorporado hoje ao Numpy para vetorizar o quicksort para tipos de dados de 16 bits e 64 bits usando o AVX-512. Em um sistema Intel Tigerlake, essa classificação int de 16 bits acelerada em 17x, enquanto a classificação float de 64 bits em quase 10x para matrizes aleatórias e tipos de dados de 32 bits eram classificações 12 a 13 vezes mais rápidas. Essa alteração do Numpy foi feita pelo engenheiro da Intel Raghuveer Devulapalli e está aproveitando o código do x86-simd-sort.
Um aumento de velocidade de 10 a 17x para classificação com AVX-512 é bastante surpreendente, especialmente quando se considera a melhor eficiência do AVX-512 com gerações recentes de CPUs Intel. Com os mais recentes processadores Xeon Scalable, o impacto térmico e de energia do AVX-512 não é mais tão grande ou causa um downclock significativo da CPU, como era esperado no passado, mas está em boa forma. Veja meus recentes benchmarks AVX-512 Intel Xeon "Sapphire Rapids" que incluem a eficiência de energia. É uma pena que os processadores clientes Intel Core mais recentes não estejam mais oferecendo o AVX-512. Enquanto isso, do lado da AMD, com seus processadores Zen 4 da série Ryzen 7000 até os processadores de servidor EPYC de 4ª geração, está (finalmente) o suporte do AVX-512 .
Será interessante ver o que outros projetos de software decidirão fazer uso deste x86-simd-sort para classificação AVX-512 rápida. É outra vitória notável para o Advanced Vector Extensions 512, semelhante a como no ano passado simdjson utilizou o AVX-512 para uma análise JSON muito rápida , algo que normalmente não seria considerado imediatamente como um ótimo caso de uso para o AVX-512.
Fonte
Até a próxima !!
Nenhum comentário:
Postar um comentário