Une implémentation GPU de l'algorithme FlyHash: Des mouches plus rapides pour la fouille de données massives
Résumé
FlyHash, un algorithme de Locality Sensitive Hashing inspiré par le système nerveux des drosophiles, s'est révélé particulièrement efficace pour la recherche de similarité et ce en particulier dans le contexte fédéré, où plusieurs clients collaborent pour résoudre une tâche d'apprentissage statistique. FlyHash repose en grande partie sur l'utilisation d'un procédé de binarisation appelé winner-take-all. La façon dont cette opération winner-take-all est implémentée en pratique représente un bottleneck majeur pour l'exploitation de cet algorithme pour traiter un flux important de données. Nous proposons dans cet article un algorithme simple pour rendre cette opération winner-take-all efficace sur GPU. On implémente grâce à cela une version FlyHash déployable sur l'architecture CUDA. On évalue expérimentalement la rapidité de cette version et on présente la comparaison avec la version CPU de FlyHash.
Origine | Fichiers produits par l'(les) auteur(s) |
---|