En direct de San Francisco. Si les accélérateurs GPU ont été à l’origine créés pour faciliter l’animation et la création 3D, notamment dans le cinéma, les jeux vidéo mais également la CAO, ils sont aujourd’hui indispensables à l’intelligence artificielle, au HPC, au VDI et aux bases de données de type extreme data. Les GPU sont depuis plusieurs années disponibles sur les serveurs de tous les grands fournisseurs, mais ils ne font pas d'accélération graphique. En effet, le GPU est essentiellement un coprocesseur mathématique géant, utilisé aujourd'hui pour effectuer des travaux de calcul intensif allant de la simulation 3D à l'imagerie médicale en passant par la modélisation financière.
Le CTO et cofondateur de Kinetica, Nima Negahban, nous a expliqué que la version 1 de GPUdb a développé avec le soutien de l’US Army pour traquer et neutraliser les menaces terroristes. (crédit : S.L.)
La start-up Kinetica - fondée en 2009 par Amit Vij et Nima Negahban - met en avant GPUdb, une base de données in-memory et massivement parallèle grâce à l’utilisation d’accélérateurs GPU Nvidia. L'utilisation du GPU dans les datacenters a commencé avec des applications spécifiques reposant sur le langage CUDA développé par Nvidia. CUDA utilise une syntaxe de type C pour faire des appels vers le GPU au lieu du CPU, mais au lieu de faire un appel une seule fois, il peut être fait des milliers de fois en parallèle. En raison de leur conception à usage unique, les noyaux GPU sont beaucoup plus petits que les cœurs des CPU, de sorte que les GPU ont des milliers de noyaux de calcul, alors que les CPU ne dépassent pas 32. Avec jusqu'à 5 000 noyaux disponibles pour une seule tâche, la conception se prête à un traitement parallèle massif.
Accélération GPU d'un coté, dataviz de l'autre et au milieu la base de données in-memory de Kinetica. (crédit : S.L.)
Kinetica utilise donc CUDA mais également TensorFlow et Caffe pour exploiter les ressources GPU nécessaires à l’accélération de sa base de données pour alimenter en temps réel des outils comme Tableau Software, PowerBI et Microstrategy pour la partie analytique et SIG. Les plus gros gains ne sont pas dans la réponse à chaque requête (qui sont évidemment beaucoup plus rapides) mais dans le travail de préparation, car il y a peu de prétraitement à faire. De nombreuses bases de données gagnent du temps en tenant à jour un index, qui est en fait un résultat pré-calculé de chaque recherche possible. Si cet indice est corrompu ou détruit, sa reconstruction peut prendre des heures, des jours, voire des mois. Si les données peuvent tenir dans la mémoire d'un GPU, vous pouvez généralement vous passer de l'index. Si les données changent rapidement et que la majeure partie de l'index n'est jamais utilisée, sauter le prétraitement peut être très efficace.
Les CPU sont utilisés pour les tâches idiotes et les GPU pour accélérés les traitements importants, a souligné Paul Appleby, CEO de Kinetica. (crédit : S.L.)
Un marché en effervescence
Concurrent de Kinetica, Brytlyt, SQream Technologies, OmniSci (ex-MapD) - que nous avons rencontré l’année dernière -, PG-Strom et Blazegraph proposent tous des analyses accélérées par GPU dans leurs bases de données. Oracle a dit qu'il travaillait avec Nvidia mais n’a encore rien annoncé et Microsoft ne supporte pas encore l'accélération GPU sur SQL Server. « Le monde de la donnée a changé et de nouveaux outils plus efficaces sont arrivés », nous a indiqué Paul Appleby, CEO de Kinetica qui a rejoint l’entreprise en 2016 pour épauler les deux cofondateurs et assurer une levée de fonds de série A d’un montant de 50 millions de dollars en 2017. Les secteurs ciblés par Kinetica vont de la distribution à la logistique en passant par les finances, l’énergie, la santé et les télécoms. En Europe, l’entreprise travaille déjà avec Michelin, la mairie de Londres (un pilote) et un grand constructeur à Stuttgart.