IBM propose une bibliothèque d'apprentissage profond 46 x plus rapide que Google TensorFlow
SNAP disponible en fin d'année

Le , par dourouc05, Responsable Qt & Livres
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.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Matthieu76 Matthieu76 - Membre confirmé https://www.developpez.com
le 06/04/2018 à 15:31
Citation Envoyé par dourouc05 Voir le message
Avec ces optimisations, le temps d’entraînement sur une petite partie des données est plus petit que le temps de transfert de ces données : l’utilisation de GPU a maintenant du sens !
C'est pas plutôt l’inverse ? Vu que le temps d’entraînement sur une petite partie et moins rapide que le temps de transfert de ces données, on peut transférer les données de l'apprentissage suivant pendant le temps d'apprentissage et ainsi ne pas interrompre l'apprentissage (excepter les 3ms d'initialisation).
Avatar de dourouc05 dourouc05 - Responsable Qt & Livres https://www.developpez.com
le 06/04/2018 à 15:54
De fait, merci pour ta lecture attentive !
Avatar de emixam16 emixam16 - Membre averti https://www.developpez.com
le 09/04/2018 à 14:41
Quelle prouesse technique, je serai curieux de voir le code.

On savait que TensorFlow était loin d'être optimal, mais si ces résultat s'avèrent généralisables, c'est un sacré boost
Avatar de Matthieu76 Matthieu76 - Membre confirmé https://www.developpez.com
le 10/04/2018 à 9:45
Oui enfin calmons-nous un peu, c'est juste sur 1 seul exemple. Cela ne prouve absolument rien, de plus s'ils ont développé leur projet juste pour un seul exemple avec du hardware spécifique c'est normal d'avoir de meilleurs résultats que TensorFlow qui est une library grand public.
Avatar de dourouc05 dourouc05 - Responsable Qt & Livres https://www.developpez.com
le 10/04/2018 à 15:21
Ce n'est pas tellement du matériel spécifique : si tu as le budget nécessaire, tu peux t'acheter la même chose. Maintenant, c'est de bonne guerre : tous les fabricants cherchent à optimiser ce genre d'opérations sur leur matériel.
Avatar de Matthieu76 Matthieu76 - Membre confirmé https://www.developpez.com
le 10/04/2018 à 17:25
Je voulais juste souligner que du code spécifique à une configuration de PC sera toujours plus rapide que du code qui fonctionne sur tout les PC. C'est juste que TensorFlow n'a pas optimize son code pour le PCI Express et cela n'a pas vraiment d'intérêt de la faire si quasiment personne n'en utilise pour le moment. Et encore, peut-être que sur d'autre jeux de données ou l'apprentissage est plus court et les données plus petite cela cela plus lent que TensorFlow. Et aussi faut être sur que les 2 codes font exactement la même choses.

En conclusion la solution d'IBM est bien mais je pense que sur plus 90% des projets développés avec TensorFlow leur solution serait plus lente.
Avatar de Bigb Bigb - Membre actif https://www.developpez.com
le 17/04/2018 à 9:18
En lisant l'article on s'attend à ce que ce soit le code qui soit optimisé, alors qu'en fait c'est le couple logiciel/matériel. On ne peut pas faire ce type de comparaison !
Un bon pilote sur une 2CV ira moins vite qu'un mauvais pilote sur une Ferrari...
Responsable bénévole de la rubrique HPC : Thibaut Cuvelier -