x86-simd-sort : une bibliothèque de tri pour C++ signée Intel

Par:
fredericmazue

lun, 20/02/2023 - 08:00

x86-simd-sort  est une bibliothèque de fichiers d'en-tête C++ pour le tri des types de données 16 bits, 32 bits et 64 bits basé sur SIMD sur les processeurs x86. Les routines de tri reposent uniquement sur la bibliothèque standard C++ et nécessitent un compilateur relativement moderne pour être construites (gcc 8.x et supérieur). Puisqu'ils utilisent le jeu d'instructions AVX-512, ils ne peuvent fonctionner que sur des processeurs équipés d'AVX-512. Plus précisément, les versions 32 bits et 64 bits nécessitent le jeu d'instructions AVX-512F et AVX-512DQ. Le tri 16 bits nécessite le jeu d'instructions AVX-512F, AVX-512BW et AVX-512 VMBI2. La suite de tests est écrite à l'aide du framework de test de Google.

Les idées et le code de cette bibliothèque sont basés sur des deux documents :

Tri sur place vectorisé rapide et robuste des types primitifs

Un nouvel algorithme de tri rapide hybride vectorisé à l'aide d'AVX-512 sur Intel Skylake 

x86-simd-sort est un logiciel libre sous licence BSD 3-Clause "New" or "Revised" License disponible sur GitHub