Les résultats des bancs d'essai MLPerf valident les processeurs pour l'entraînement Deep Learning.

Auteurs

  • Vice President, Core and Visual Computing Group et General Manager, Machine Learning and Translation - Wei Li

BUILT IN - ARTICLE INTRO SECOND COMPONENT

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.

Infos sur le produit et ses performances

1

Score de 0,85 sur le banc d'essai MLPerf Image Classification (Resnet-50) 0,85 x supérieur à l'indice de référence MLPerf(+) à l'aide d'un processeur Intel® Xeon® Platinum 8180 à deux puces. MLPerf v0.5 training Closed division ; système utilisant l'optimisation Intel® pour Caffe* 1.1.2a avec la bibliothèque Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) v0.16. Extrait de www.mlperf.org le 12 décembre 2018, entrée 0.5.6.1. Le nom et le logo MLPerf sont des marques commerciales. Consultez www.mlperf.org à ce sujet.

2

Score de 1,6 au banc d'essai Recommendation (NCF, Neural Collaborative Filtering), 1,6 x supérieur à l'indice de référence MLPerf(+) à l'aide d'un processeur Intel® Xeon® Platinum 8180 à deux puces. MLPerf v0.5 training Closed division ; système utilisant le Framework BigDL 0.7.0. Données récupérées sur www.mlperf.org le 12 décembre 2018, entrée 0.5.9.6. Le nom et le logo MLPerf sont des marques commerciales. Consultez www.mlperf.org à ce sujet.

3

Score de 6.3 au banc d'essai pour l'apprentissage par renforcement (mini GO) 6,3 x supérieur à l'indice de référence MLPerf(+) à l'aide d'un processeur Intel® Xeon® Platinum 8180 à deux puces. MLPerf v0.5 training Closed division ; système utilisant TensorFlow 1.10.1 avec la bibliothèque Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) v0.14. Extrait de www.mlperf.org le 12 décembre 2018, entrée 0.5.10.7. Le nom et le logo MLPerf sont des marques commerciales. Consultez www.mlperf.org à ce sujet.

Indice de référence MLPerf (+) (adopté à partir de MLPerf v0.5 Community Press Briefing) : MLPerf Training v0.5 est une suite de banc d'essai pour mesurer la vitesse du système ML. Chaque banc d'essai MLPerf Training est défini par un ensemble de données et un objectif de qualité. MLPerf Training fournit également une implémentation de référence pour chaque banc d'essai utilisant un modèle spécifique. Le tableau suivant résume les sept bancs d'essai dans la version v0.5 de la suite.

Banc d'essai

Ensemble de données

Objectif de qualité

Modèle d'implémentation de référence

Classification de l'image

ImageNet

Classification 74,90 %

Resnet-50 v1.5

Détection d'objet (léger)

COCO 2017

21,2 % mAP

SSD (infrastructure Resnet-34)

Détection d'objet (lourd)

COCO 2017

PA boîtier 0,377 min., PA masque 0,339 min.

Masque R-CNN

Traduction (récurrente)

WMT anglais-allemand

21,8 BLEU

Traduction automatique neuronale

Traduction (non récurrente)

WMT anglais-allemand

25,0 BLEU

Transformer

Recommandation

MovieLens-20M

0,635 HR@10

Filtrage collaboratif neuronal

Apprentissage par renforcement

Jeux professionnels

Prédiction de mouvement 40,00 %

Mini Go


Règles de formation MLPerf : https://github.com/mlperf/training_policies/blob/master/training_rules.adoc​​​1​​​

4

Système de référence MLPerf* : configuration de plate-forme Cloud Google : 16 processeurs virtuels, Intel Skylake ou version ultérieure, 60 Go de mémoire RAM (n1-Standard-16), 1 GPU NVIDIA* Tesla* P100, CUDA* 9.1 (9.0 pour TensorFlow*), nvidia­docker2, Ubuntu* 16.04 LTS, préemptibilité : désactivée, redémarrage automatique : désactivé, disque d'amorçage 30 Go + 1 unité de stockage SSD 500 Go, image docker* : 9.1­cudnn7­runtime­ubuntu16.04 (9.0­cudnn7­devel­ubuntu16.04 pour TensorFlow*).

6

Novartis : mesure effectuée le 25 mai 2018. Sur la base d'une accélération pour 8 nœuds par rapport à un seul nœud. Configuration de nœud : Processeur Intel® Xeon® Gold 6148 à 2,4 GHz, 192 Go de mémoire, technologie Intel® Hyper-Threading activée. Carte réseau : interface Intel® Omni-Path Host Fabric (Intel® OP HFI), TensorFlow : v1.7.0, Horovod : 0.12.1, OpenMPI : 3.0.0. Système d'exploitation : CentOS* 7.3, OpenMPU 23.0.0, Python 2.7.5. Temps d'apprentissage permettant de converger jusqu'à 99 % de précision dans le modèle. Source : https://newsroom.intel.com/news/using-deep-neural-network-acceleration-image-analysis-drug-discovery.

7

GENCI : Occigen : 3306 nœuds x 2 processeurs Intel® Xeon® (12-14 cœurs). Nœuds de calcul : processeur Intel® Xeon® à 2 sockets comprenant 12 cœurs chacun à 2,70 GHz pour un total de 24 cœurs par nœud, 2 threads par cœur, 96 Go de mémoire DDR4, Interface InfiniBand Fabric de Mellanox, double-rail. Logiciel : Intel® MPI Library 2017, mise à jour 4, Intel® MPI Library 2019, Technical Preview OFI 1.5.0PSM2 avec Multi-EP, Ethernet 10 Gbit, unité de stockage SSD locale 200 Go, Red Hat* Enterprise Linux 6.7. Caffe* : optimisation Intel® pour Caffe* : https://github.com/intel/caffe Intel® Machine Learning Scaling Library (Intel® MLSL) : https://github.com/intel/MLSL Ensemble de données : Pl@ntNet : ensemble de données CINES/GENCI. Les résultats de performance s'appuient sur les tests réalisés le 15/10/2018.

8

Collaboration Intel, Dell et Surfsara : mesure effectuée le 17/05/2018 sur 256 nœuds d'un processeur Intel® Xeon® Gold 6148 à 2 sockets. Nœuds de calcul : processeur Intel® Xeon® Gold 6148F à 2 sockets comprenant 20 cœurs chacun à 2,40 GHz pour un total de 40 cœurs par nœud, 2 threads par cœur, L1d 32K ; cache L1i 32K ; cache L2 1024K ; cache L3 33792K, 96 Go de mémoire DDR4, Interface Intel® Omni-Path Host Fabric (Intel® OP HFI), double rail. Logiciel : Intel® MPI Library 2017, mise à jour 4, Intel® MPI Library 2019, Technical Preview OFI 1.5.0PSM2 avec Multi-EP, Ethernet 10 Gbit, unité de stockage SSD locale 200 Go, Red Hat* Enterprise Linux 6.7. TensorFlow* 1.6 : compilé et installé à partir de la source : https://www.tensorflow.org/install/install_sources Modèle ResNet-50 : spécifications des topologies sur https://github.com/tensorflow/tpu/tree/master/models/official/resnet. Modèle DenseNet-121 : spécifications des topologies sur https://github.com/liuzhuang13/DenseNet. Convergence et modèle de performance : https://surfdrive.surf.nl/files/index.php/s/xrEFLPvo7IDRARs. Ensemble de données : ImageNet2012-1K : http://www.image-net.org/challenges/LSVRC/2012 /. ChexNet* : https://stanfordmlgroup.github.io/projects/chexnet/. Performances mesurées avec : OMP_NUM_THREADS=24 HOROVOD_FUSION_THRESHOLD=134217728 export I_MPI_FABRICS=tmi, export I_MPI_TMI_PROVIDER=psm2 \ mpirun -np 512 -ppn 2 python resnet_main.py –train_batch_size 8192 –train_steps 14075 –num_intra_threads 24 –num_inter_threads 2 — mkl=True –data_dir=/scratch/04611/valeriuc/tf-1.6/tpu_rec/train –model_dir model_batch_8k_90ep –use_tpu=False –kmp_blocktime 1. https://ai.intel.com/diagnosing-lung-disease-using-deep-learning/.

9

CERN : mesuré le 17/05/2018 sur Stampede2/TACC : https://portal.tacc.utexas.edu/user-guides/stampede2. Nœuds de calcul : processeur Intel® Xeon® Platinum 8160 à 2 sockets comprenant 24 cœurs chacun à 2,10 GHz pour un total de 48 cœurs par nœud, 2 threads par cœur, L1d 32K ; cache L1i 32K ; cache L2 1024K ; cache L3 33792K, 96 Go de mémoire DDR4, Interface Intel® Omni-Path Host Fabric (Intel® OP HFI), double rail. Logiciel : Intel® MPI Library 2017, mise à jour 4, Intel® MPI Library 2019, Technical Preview OFI 1.5.0PSM2 avec Multi-EP, Ethernet 10 Gbit, unité de stockage SSD locale 200 Go, Red Hat* Enterprise Linux 6.7. TensorFlow* 1.6 : compilé et installé à partir de la source : https://www.tensorflow.org/install/install_sources Modèle : CERN* 3D GANS depuis https://github.com/sara-nl/3Dgan/tree/tf Ensemble de données : CERN* 3D GANS depuis https://github.com/sara-nl/3Dgan/tree/tf Performance mesurée sur 256 nœuds. Performance mesurée sur 256 nœuds avec : OMP_NUM_THREADS=24 HOROVOD_FUSION_THRESHOLD=134217728 export I_MPI_FABRICS=tmi, export I_MPI_TMI_PROVIDER=psm2 \ mpirun -np 512 -ppn 2 python resnet_main.py –train_batch_size 8 \ –num_intra_threads 24 –num_inter_threads 2 –mkl=True \ –data_dir=/path/to/gans_script.py –kmp_blocktime 1. https://www.rdmag.com/article/2018/11/imagining-unthinkable-simulations-without-classical-monte-carlo.

10

Amélioration multipliée par 275 du débit d'inférence avec l'optimisation Intel® pour Caffe* par rapport à BVLC-Caffe* : mesure effectuée par Intel le 11/12/2018. Processeur Intel® Xeon® Platinum 8180 à 2 sockets de 2,50 GHz (28 cœurs), technologies Intel® Turbo Boost et Intel® Hyper Threading activées, 192 Go de mémoire totale (12 emplacements* de 16 Go, Micron 2 666 MHz), unité de stockage SSD Intel® SSDSC2KF5, Ubuntu 16.04 noyau 4.15.0-42.generic ; BIOS : SE5C620.86B.00.01.0009.101920170742 (microcode : 0x0200004d) ; topologie : indice de référence Resnet-50 : FP32, BVLC Caffe* (https://github.com/BVLC/caffe.git) validation 99bd99795dcdf0b1d3086a8d67AB1782a8a08383 ; Performance actuelle : INT8, optimisations Intel® pour Caffe* (https://github.com/Intel/caffe.git) validation : validation Caffe* : e94b3ff41012668ac77afea7eda89f07fa360adf, validation MKLDNN : 4F333787e0d66a1dca1218e99a891d493dbc8ef1.

Les logiciels et charges de travail employés dans les tests de performance ont peut-être été optimisés pour les microprocesseurs Intel®. Les tests de performances tels que SYSmark* et MobileMark* portent sur des configurations, composants, logiciels, opérations et fonctions spécifiques. Les résultats peuvent varier en fonction de ces facteurs. Pour l'évaluation complète d'un produit, il convient de consulter d'autres tests et d'autres sources d'informations, notamment pour connaître le comportement de ce produit lorsqu'il est associé à d'autres composants. Pour plus d'informations, rendez-vous sur www.intel.fr/benchmarks.

Avis sur l'optimisation : les compilateurs d'Intel peuvent optimiser ou non au même degré les microprocesseurs non Intel pour les optimisations qui ne sont pas uniques aux microprocesseurs Intel. Ces optimisations comprennent les jeux d’instructions SSE2, SSE3 et SSE3, ainsi que d’autres optimisations. Intel ne fournit aucune garantie quant à la disponibilité, la fonctionnalité ou l'efficacité des optimisations sur des microprocesseurs d'autres fabricants. Dans ce produit, les optimisations dépendantes du processeur sont conçues pour les processeurs Intel. Certaines optimisations non spécifiques à la microarchitecture Intel sont réservées aux microprocesseurs Intel. Reportez-vous au guide de l'utilisateur et au guide de référence applicable pour obtenir davantage d'informations concernant les jeux d'instructions spécifiques couverts par cet avis.

Les valeurs de performances peuvent ne pas refléter toutes les mises à jour de sécurité rendues publiques. Pour obtenir plus de détails, veuillez lire les informations de configuration. Aucun produit ne saurait être totalement sécurisé.

Intel, le logo Intel, les processeurs Xeon Scalable et Deep Learning Boost sont des marques commerciales d'Intel Corporation ou de ses filiales aux États-Unis et/ou dans d'autres pays.
*Les autres noms et marques peuvent être revendiqués comme la propriété de tiers.
© Intel Corporation.