Accélération massive des analyses de données grâce à Velox GPU-native et NVIDIA cuDF
L’accélération des analyses de données à grande échelle grâce à Velox natif GPU et NVIDIA cuDF s’inscrit dans une tendance majeure vers des systèmes de traitement plus rapides et plus efficaces. Face à la croissance exponentielle des volumes de données et à la demande croissante pour des insights en temps réel, les bases de données et moteurs de requêtes accélérés par GPU offrent des gains significatifs en prix-performance par rapport aux systèmes basés sur CPU. Grâce à leur bande passante mémoire élevée et à leur capacité à exécuter des milliers de threads simultanément, les GPU sont particulièrement adaptés aux opérations intensives comme les jointures multiples, les agrégations complexes ou le traitement de chaînes de caractères. Pour répondre à cette demande, IBM et NVIDIA collaborent sur un projet ouvert visant à intégrer NVIDIA cuDF dans l’exécuteur Velox, permettant ainsi une exécution native GPU pour des plateformes largement utilisées comme Presto et Apache Spark. Velox agit comme couche intermédiaire, traduisant les plans de requête provenant de Presto ou Spark en pipelines exécutables sur GPU via cuDF (Figure 1). Cette architecture permet de tirer parti des optimisations du parseur, du planificateur et du coordinateur de Presto tout en exécutant l’ensemble du traitement sur GPU. Les premiers résultats montrent des gains spectaculaires. Sur le benchmark TPCH à l’échelle 1 000, Presto exécuté sur un GPU NVIDIA RTX PRO 6000 a atteint un temps d’exécution de 133,8 secondes contre 1 246 secondes pour la version CPU (AMD 5965X), soit une accélération de près de 9x. Avec le superchip NVIDIA GH200, le temps descend à 99,9 secondes, et même pour la requête Q21, qui échouait auparavant sur CPU, l’utilisation de la mémoire gérée CUDA permet de la compléter en 148,9 secondes. Dans un contexte distribué, l’opérateur d’échange (Exchange) est crucial pour la communication entre workers. L’intégration d’un Exchange basé sur UCX (Unified Communication – X Framework) permet d’exploiter pleinement les connexions à haut débit NVLink (intra-nœud) et RoCE/InfiniBand (inter-nœud). Sur un nœud DGX A100 à huit GPU, cette solution offre plus de 6x d’accélération par rapport à l’échange HTTP standard, en particulier grâce à la connectivité NVLink. Pour Apache Spark, l’approche est hybride : au lieu d’entraîner tout le plan sur GPU, seules les étapes les plus intensives (comme la deuxième étape de la requête TPC-DS Q95 SF100) sont déplacées vers le GPU via Apache Gluten et cuDF. Même avec la première étape exécutée sur CPU, le temps total est réduit grâce à une interopérabilité efficace entre CPU et GPU. Sur un nœud avec 8 vCPUs et une GPU T4, cette stratégie permet d’obtenir des performances supérieures tout en conservant la capacité CPU pour d’autres charges. Ce projet ouvert, mené par une communauté internationale, réduit la duplication de code, simplifie la maintenance et accélère l’innovation dans l’écosystème des données. Les contributions d’IBM et NVIDIA, notamment de Zoltán Arnold Nagy, Greg Kimball, et d’autres, ont permis d’avancer rapidement vers une exécution GPU-native et scalable. Ce travail ouvre la voie à des analyses de données plus rapides, plus accessibles et plus économes en ressources, et invite la communauté à participer, tester et contribuer à l’évolution de Velox et des moteurs de traitement de données.