Pour le moment, dans le domaine en ébullition qu’est celui de l’apprentissage de réseaux neuronaux profonds, l’outil TensorFlow de Google est très souvent utilisé, notamment pour sa performance. Celle-ci est très importante, au vu de la taille des jeux de données… et de la complexité des modèles souhaités.
IBM annonce avoir réussi à battre TensorFlow par un facteur quarante-six : sur une application de référence (prédire si un utilisateur clique ou non sur une publicité, selon un jeu de données de Criteo comportant plus de quatre milliards d’entrées), IBM a réussi à produire un modèle de la même qualité et de la même complexité (une « simple » régression logistique) en un peu plus d’une minute et demie, quand TensorFlow prend septante minutes pour arriver à ce résultat (selon des résultats fournis par Google).
Pour ce faire, IBM a mélangé son outil SNAP ML (pas encore disponible au grand public) et ses serveurs POWER9, avec des cartes graphiques NVIDIA V100 (quatre serveurs, chacun avec deux processeurs principaux et quatre cartes graphiques). De son côté, Google a utilisé son offre infonuagique publique, sans carte graphique. Selon les tests de Google, utiliser des cartes graphiques nuit à la performance : les données sont tellement massives qu’il faut sans cesse les transférer de la mémoire centrale à celle des processeurs graphiques, un temps pendant lequel aucun calcul ne peut être effectué.
Au contraire, IBM a cherché à optimiser au maximum la localité des données au niveau du GPU, afin d’éviter tout transfert. Au niveau matériel, les cartes utilisent le bus NVLink : les copies de données vers les GPU se font six fois plus vite que par PCI Express. Avec ces optimisations, le temps d’entraînement sur une petite partie des données est plus grand que le temps de transfert de ces données : l’utilisation de GPU a maintenant du sens !
Source : New IBM Machine Learning Framework Demonstrates 46x Speedup.
Partager