Flash-KMeans : un algorithme de clustering k-means 200 fois plus rapide que FAISS sur GPU
- 01Flash-KMeans est une implémentation exacte et open-source du k-means optimisée pour GPU, sans approximation mathématique.
- 02Il surpasse FAISS de plus de 200× et cuML de 33× sur un GPU NVIDIA H200.
- 03Les optimisations *FlashAssign* et *Sort-Inverse Update* réduisent les coûts de calcul et les contentions atomiques.
Flash-KMeans, une implémentation open-source du k-means classique optimisée pour les GPU, est présentée comme une alternative exacte et plus performante que FAISS et cuML. Développé en kernels Triton, cet algorithme évite toute approximation mathématique tout en réduisant les opérations coûteuses. Deux optimisations majeures sont mises en avant : FlashAssign, qui supprime la matérialisation de la matrice de distances, et Sort-Inverse Update, qui limite les contentions atomiques lors des mises à jour des centroïdes.
Selon les résultats publiés, Flash-KMeans affiche des gains significatifs sur un GPU NVIDIA H200. L’algorithme atteint une accélération de 17,9× en temps d’exécution global par rapport à l’implémentation standard, 33× plus rapide que cuML, et dépasse FAISS de plus de 200×. Ces performances sont obtenues sans compromis sur la précision, contrairement à certaines solutions existantes qui sacrifient l’exactitude pour des gains de vitesse.
L’outil est conçu pour être compatible avec les infrastructures GPU actuelles et s’intègre directement dans les pipelines existants. Son approche IO-aware optimise l’utilisation de la mémoire et des transferts, ce qui en fait une solution adaptée aux jeux de données de grande taille.