Je travaille sur l'optimisation et l'évaluation des performances des ordinateurs depuis plus de deux décennies, sur des plateformes allant des supercalculateurs et des serveurs de bases de données aux appareils mobiles. C'est toujours agréable de mettre en avant les résultats de performance du produit que vous créez et de les comparer à d'autres solutions du secteur. Bon nombre d'entre nous connaissons les noms SPEC*, LINPACK* et TPC*. Désormais, MLPerf* comble le vide qui existait en matière de bancs d'essai pour le Machine Learning.
Je suis ravi de découvrir les résultats MLPerf des processeurs évolutifs Intel® Xeon® transmis par notre équipe, car nous travaillons aussi bien sur l'aspect utilisateurs que sur l'aspect développement de systèmes informatiques du deep learning. Ces résultats montrent que les processeurs évolutifs Intel® Xeon® ont franchi un seuil de performances qui en fait une option efficace pour les scientifiques de données qui souhaitent exécuter plusieurs charges de travail sur leur infrastructure sans investir dans du matériel dédié1 2 3.
En 2015, j'avais une équipe qui travaillait sur les appareils mobiles. Nous avions dû embaucher des testeurs pour jouer manuellement à des jeux mobiles. Au départ, c'était amusant pour les testeurs, puis le processus est devenu fastidieux et coûteux. Un des testeurs que nous avions engagé a démissionné dès le premier jour. Notre équipe a créé un robot pour tester les jeux mobiles et a adopté le deep learning. Notre robot de test jouait automatiquement à des jeux et a trouvé plus de bugs que les testeurs humains. Nous voulions entraîner des réseaux neuronaux sur les machines que nous avions déjà au labo, mais elles n'étaient pas suffisamment rapides. J'ai dû octroyer à l'équipe un budget pour acheter un GPU, une version plus ancienne que le GPU de référence MLPerf4.
Les processeurs actuels sont aptes à gérer l'entraînement et l'inférence des systèmes de deep learning. Les résultats MLPerf de notre processeur Intel® Xeon® Scalable sont comparables à ceux du GPU de référence MLPerf4 sur une variété de charges de travail pour l'entraînement Deep Learning MLPerf.1 2 3 Par exemple, les résultats du processeur Intel® Xeon® Scalable à deux sockets pour système unique soumis par Intel ont obtenu un score de 0,85 sur le banc d'essai Image Classification de MLPerf (Resnet-50)1, 1,6 sur le banc d'essai Recommendation (Neural Collaborative Filtering NCF) 2 et 6,3 sur le banc d'essai Reinforcement Learning (mini GO) 3. Dans tous ces scores, 1,0 est défini comme le score de l'implémentation de référence sur le GPU de référence 4. Pour tous les résultats précédents, nous utilisons le format FP32, la précision numérique couramment utilisée sur le marché actuel. Ces résultats MLPerf montrent que notre robot de test pour les jeux s'entraîne facilement sur les processeurs évolutifs Intel® Xeon® actuels.
L'univers du deep learning et du machine learning continue d'évoluer pour passer du traitement des images à l'aide des réseaux neuronaux convolutifs (CNN) et du traitement du langage naturel à l'aide des réseaux neuronaux récurrents (RNN) aux systèmes de recommandation qui utilisent des couches MLP et General Matrix Multiply (GEMM), l'apprentissage par renforcement (mélangeant CNN et simulation) et les modèles hybrides associant deep learning et machine learning classique. En plus d'exécuter les charges de travail non DL existantes, un processeur à usage général est très adaptable à cet environnement en pleine mutation.
Les entreprises ont adopté les processeurs pour l'entraînement deep learning. Par exemple, Datatonic* a publié aujourd'hui un article de blog indiquant un coût jusqu'à 11 fois inférieur et une amélioration des performance de 57 % lors de l'exécution d'un système de recommandation basé sur les réseaux neuronaux que l'un des cinq premiers détaillants britanniques utilise pour la production sur une MV Google Cloud* équipée de processeurs évolutifs Intel® Xeon®5. Les processeurs gèrent également les grands modèles de mémoire requis dans de nombreux domaines. La société pharmaceutique Novartis a utilisé les processeurs évolutifs Intel® Xeon® pour accélérer l'entraînement d'un réseau neuronal convolutif multi-échelle (M-CNN) pour 10 000 images microscopiques cellulaires riches en contenu, dont la taille est nettement supérieure à celle des images ImageNet* types, réduisant le temps d'entraînement de 11 heures à 31 minutes6.
Les clients ayant recours au calcul intensif (HPC) utilisent des processeurs Intel® Xeon® pour l'entraînement distribué, comme cela a été présenté au salon Supercomputing 2018. Par exemple, GENCI, le CINES et l'INRIA ont entraîné un modèle de classification des plantes pour 300 000 espèces sur un ensemble de données de 1,5 téraoctet composé de 12 millions d'images à l'aide de 128 systèmes équipés de processeurs Intel® Xeon® 2S7. DELL* EMC* et SURFSara ont eu recours à des processeurs Intel® Xeon® pour réduire le temps d'entraînement à 11 minutes pour un modèle DenseNet-1218. Le CERN* a présenté un système d'entraînement distribué utilisant 128 nœuds du cluster TACC Stampede 2 (processeur Intel® Xeon® Platinum 8160, Intel® OPA) avec un réseau antagoniste génératif 3D (3D GAN) atteignant une efficacité d'échelle de 94 %9. Vous trouverez d'autres exemples sur la page https://software.intel.com/en-us/articles/intel-processors-for-deep-learning-training.
Les performances matérielles et logicielles des processeurs pour le deep learning ont augmenté de plusieurs ordres de grandeur ces dernières années. L'entraînement qui prenait auparavant des jours, voire des semaines, peut désormais être réalisé en quelques heures ou même quelques minutes. Ce niveau de gain de performances a été rendu possible par une combinaison de matériel et de logiciels. Par exemple, les processeurs Intel® Xeon® Scalable de la génération actuelle ont ajouté à la fois le jeu d'instructions Intel® Advanced Vector Extensions 512 (Intel® AVX-512) offrant des extensions vectorielles plus longues pour permettre d'effectuer un grand nombre d'opérations en parallèle, et un plus grand nombre de cœurs, devenant pour ainsi dire un mini-superordinateur. Le processeur Intel® Xeon® Scalable de nouvelle génération ajoute Intel® Deep Learning Boost (Intel® DL Boost) : débit supérieur et instructions à précision numérique inférieure pour accélérer l'inférence du Deep Learning. Du côté des logiciels, la différence de performances entre le logiciel de deep learning open source de référence et le logiciel optimisé par Intel peut atteindre un facteur de 275 fois10 sur le même processeur évolutif Intel® Xeon® (comme je l'ai montré hier dans une démo à l'occasion du forum Intel Architecture Day).
Ces dernières années, Intel a collaboré avec des développeurs de frameworks DL pour optimiser de nombreux frameworks open source populaires (tels que TensorFlow*, Caffe*, MXNet*, PyTorch*/Caffe2*, PaddlePaddle* et Chainer*) pour les processeurs Intel®. Intel a également conçu un framework, BigDL pour SPARK*, et le kit d'outils Intel® Deep Learning Deployment (DLDT) pour l'inférence. Comme l'algèbre linéaire représente le principal calcul, nous avons créé une nouvelle bibliothèque mathématique, Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN), spécialement conçue pour le deep learning, en nous appuyant sur les nombreuses années d'expérience avec la bibliothèque Intel® Math Kernel Library (MKL) pour le calcul intensif. L'intégration d'Intel MKL-DNN aux frameworks et les optimisations supplémentaires ont contribué à l'utilisation de toutes les capacités matérielles sous-jacentes par les frameworks et représentent les principaux facteurs de l'énorme amélioration des performances des logiciels.
On me demande souvent si les processeurs sont plus rapides ou plus lents que les accélérateurs. Bien entendu, les accélérateurs présentent certains avantages. Pour un domaine spécifique, si un accélérateur n'est généralement pas plus rapide qu'un processeur, alors un accélérateur ne constitue guère un atout. Toutefois, dans la mesure où les charges de travail de deep learning sont de plus en plus variées, un processeur peut, dans certains cas, s'avérer rapide ou plus rapide tout en conservant la flexibilité essentielle à la proposition de valeur des processeurs. Par conséquent, la question pertinente à se poser consiste à savoir si les processeurs exécutent les charges de deep learning suffisamment bien pour en faire une option efficace pour les clients qui ne veulent pas investir dans des accélérateurs. Ces premiers résultats MLPerf1 2 3, ainsi que les exemples fournis par nos clients, montrent que les processeurs peuvent en effet être utilisés efficacement pour l'entraînement. La stratégie d'Intel consiste à proposer à la fois des processeurs à usage général et des accélérateurs pour répondre aux besoins de machine learning d'un large éventail de clients.
Nous continuerons à ajouter de nouvelles fonctions d'IA et de Deep Learning à nos futures générations de processeurs, comme Intel® Deep Learning Boost (Intel® DL Boost) et bfloat16 pour l'entraînement, ainsi que des optimisations logicielles supplémentaires. Suivez notre actualité pour ne rien rater. Pour de plus amples informations sur les optimisations logicielles Intel®, consultez ai.intel.com/framework-optimizations. Pour de plus amples informations sur les processeurs Intel® Xeon® Scalable, rendez-vous sur intel.fr/xeonscalable.