MLPerf Results Validate CPUs for Deep Learning Training

I have worked on optimizing and benchmarking computer performance for more than two decades, on platforms ranging from supercomputers and database servers to mobile devices. It is always fun to highlight performance results for the product you are building and compare them with others in the industry. SPEC*, LINPACK*, and TPC* have become familiar names to many of us. Now, MLPerf* is filling in the void of benchmarking for Machine Learning.

I am excited to see the Intel® Xeon® Scalable processor MLPerf results submitted by our team because we work on both the user side and the computer system development side of deep learning. These results show that Intel® Xeon® Scalable processors have surpassed a performance threshold where they can be an effective option for data scientists looking to run multiple workloads on their infrastructure without investing in dedicated hardware.1 2 3

Back in 2015, I had a team working on mobile devices. We had to hire testers to manually play mobile games. It was fun initially for the testers, then it became boring and costly. One tester we hired quit on the same day. Our team created a robot to test mobile games and adopted deep learning. Our game testing robot played games automatically and found more bugs than human testers. We wanted to train neural networks on the machines we already had in the lab, but they were not fast enough. I had to allocate budget for the team to buy a GPU, an older version than the MLPerf reference GPU.4

Today CPUs are capable of deep learning training as well as inference. Our MLPerf Intel® Xeon® Scalable processor results compare well with the MLPerf reference GPU4 on a variety of MLPerf deep learning training workloads.1 2 3 For example, the single-system two-socket Intel® Xeon® Scalable processor results submitted by Intel achieved a score of 0.85 on the MLPerf Image Classification benchmark (Resnet-50)1; 1.6 on the Recommendation benchmark (Neural Collaborative Filtering NCF)2; and 6.3 on Reinforcement Learning benchmark (mini GO).3 In all these scores, 1.0 is defined as the score of the reference implementation on the reference GPU.4 For all the preceding results, we use FP32, the common numerical precision used in today’s market. From these MLPerf results, we can see that our game testing robot could easily train on Intel® Xeon® Scalable processors today.

The deep learning and machine learning world continues to evolve from image processing using Convolutional Neural Networks (CNN) and natural language processing using Recurrent Neural Networks (RNN) to recommendation systems using MLP layers and general matrix multiply, reinforcement learning (mixing CNN and simulation) and hybrid models mixing deep learning and classical machine learning. A general purpose CPU is very adaptable to this dynamically changing environment, in addition to running existing non-DL workloads.

Enterprises have adopted CPUs for deep learning training. For example, today, Datatonic* published a blog showing up to 11x cost and 57 percent performance improvement when running a neural network recommender system used in production by a top-5 UK retailer on a Google Cloud* VM powered by Intel® Xeon® Scalable processors.5 CPUs can also accommodate the large memory models required in many domains. The pharmaceutical company Novartis used Intel® Xeon® Scalable processors to accelerate training for a multiscale convolutional neural network (M-CNN) for 10,000 high-content cellular microscopic images, which are much larger in size than the typical ImageNet* images, reducing time to train from 11 hours to 31 minutes.6

High performance computing (HPC) customers use Intel® Xeon® processors for distributed training, as showcased at Supercomputing 2018. For instance, GENCI/CINES/INRIA trained a plant classification model for 300K species on a 1.5TByte dataset of 12 million images using 128 2S Intel® Xeon® processor-based systems.7 DELL EMC* and SURFSara used Intel® Xeon® processors to reduce training time to 11 minutes for a DenseNet-121 model.8 CERN* showcased distributed training using 128 nodes of the TACC Stampede 2 cluster (Intel® Xeon® Platinum 8160 processor, Intel® OPA) with a 3D Generative Adversarial Network (3D GAN) achieving 94% scaling efficiency.9 Additional examples can be found at https://software.intel.com/es-es/articles/intel-processors-for-deep-learning-training.

CPU hardware and software performance for deep learning has increased by a few orders of magnitude in the past few years. Training that used to take days or even weeks can now be done in hours or even minutes. This level of performance improvement was achieved through a combination of hardware and software. For example, current-generation Intel® Xeon® Scalable processors added both the Intel® Advanced Vector Extensions 512 (Intel® AVX-512) instruction set (longer vector extensions) to allow a large number of operations to be done in parallel, and with a larger number of cores, essentially becoming a mini-supercomputer. The next-generation Intel® Xeon® Scalable processor adds Intel® Deep Learning Boost (Intel® DL Boost): higher throughput, lower numerical precision instructions to boost deep learning inference. On the software side, the performance difference between the baseline open source deep learning software, and the Intel-optimized software can be up to 275X10 on the same Intel® Xeon® Scalable processor (as illustrated in a demo I showed at the Intel Architecture Day forum yesterday).

Over the past few years, Intel has worked with DL framework developers to optimize many popular open source frameworks such as TensorFlow*, Caffe*, MXNet*, PyTorch*/Caffe2*, PaddlePaddle* and Chainer*, for Intel® processors. Intel has also designed a framework, BigDL for SPARK*, and the Intel® Deep Learning Deployment Toolkit (DLDT) for inference. Since the core computation is linear algebra, we have created a new math library, Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN), specifically for deep learning, based on many years of experience with the Intel® Math Kernel Library (MKL) for high performance computing (HPC). The integration of Intel MKL-DNN into the frameworks, and the additional optimizations contributed to the frameworks to fully utilize the underlying hardware capabilities, are the key reason for the huge software performance improvement.

I’ve often been asked whether CPUs are faster or slower than accelerators. Of course, accelerators have certain advantages. For a specific domain, if an accelerator is not generally faster than a CPU, then it is not much of an accelerator. Even so, given the increasing variety of deep learning workloads, in some cases, a CPU may be as fast or faster while retaining that flexibility that is core to the CPU value proposition. Thus, the more pertinent question is whether CPUs can run deep learning well enough to be an effective option for customers that don’t wish to invest in accelerators. These initial MLPerf results1 2 3, as well as our customer examples, show that CPUs can indeed be effectively used for training. Intel’s strategy is to offer both general purpose CPUs and accelerators to meet the machine learning needs of a wide range of customers.

Looking forward, we are continuing to add new AI and deep learning features to our future generations of CPUs, like Intel® Deep Learning Boost (Intel® DL Boost), plus bfloat16 for training, as well as additional software optimizations. Please stay tuned. For more information on Intel® software optimizations, see ai.intel.com/framework-optimizations. For more information on Intel® Xeon® Scalable processors, see intel.com/xeonscalable.

Información sobre productos y desempeño

1

Puntuación de 0,85 en el análisis de desempeño de la clasificación de imágenes de MLPerf (Resnet-50), 0,85 veces superior a la referencia de MLPerf(+) utilizando un procesador Intel® Xeon® Platinum 8180 con 2 chips. División cerrada de capacitación de MLPerf v0.5; sistema que utilizaba la optimización de Intel® para Caffe* 1.1.2a con la biblioteca Intel® Math Kernel Library para Deep Neural Networks (Intel® MKL-DNN) v0.16. Información obtenida de www.mlperf.org, 12 de diciembre del 2018, entrada 0.5.6.1. El nombre y el logotipo de MLPerf son marcas comerciales. Visite www.mlperf.org para obtener más información.

2

Puntuación de 1,6 en el análisis de desempeño de recomendación (Neural Collaborative Filtering [NCF]), 1,6 veces superior a la referencia de MLPerf(+) utilizando un procesador Intel® Xeon® Platinum 8180 con 2 chips. División cerrada de capacitación de MLPerf v0.5; sistema que utilizaba Framework BigDL 0.7.0. Información obtenida de www.mlperf.org, 12 de diciembre del 2018, entrada 0.5.9.6. El nombre y el logotipo de MLPerf son marcas comerciales. Visite www.mlperf.org para obtener más información.

3

Puntuación de 6,3 en el análisis de desempeño de aprendizaje por refuerzo (mini GO), 6,3 veces superior a la referencia de MLPerf(+) utilizando un procesador Intel® Xeon® Platinum 8180 con 2 chips. División cerrada de capacitación de MLPerf v0.5; sistema que utilizaba TensorFlow 1.10.1 con la biblioteca Intel® Math Kernel Library para Deep Neural Networks (Intel® MKL-DNN) v0.14. Información obtenida de www.mlperf.org, 12 de diciembre del 2018, entrada 0.5.10.7. El nombre y el logotipo de MLPerf son marcas comerciales. Visite www.mlperf.org para obtener más información.

(+) Referencia de MLPerf (se adoptó de la reunión informativa de prensa de la comunidad de MLPerf v0.5): la capacitación de MLPerf v0.5 es un conjunto de análisis de desempeño que se utiliza para realizar la medición de velocidad del sistema de ML. Un objetivo centrado en la calidad y en los conjuntos de datos permite definir todos los análisis de desempeño de capacitación de MLPerf. La capacitación de MLPerf también permite realizar una implementación de referencia para todos los análisis de desempeño en los que se utiliza un modelo específico. En la siguiente tabla se resumen los siete análisis de desempeño en la versión v0.5 del conjunto.

Análisis de referencia

Conjunto de datos

Objetivo de calidad

Modelo de implementación de referencia

Clasificación de imágenes

ImageNet

Clasificación del 74,90 %

Resnet-50 v1.5

Detección de objetos (ligeros)

COCO 2017

mAP del 21,2 %.

SSD (Resnet-34 backbone)

Detección de objetos (pesados)

COCO 2017

AP mínimo de Box de 0,377, AP mínimo de Mask de 0,339

Mask R-CNN

Traducción (recurrente)

Del inglés al alemán de WMT

BLEU de 21,8

Neural Machine Translation

Traducción (no recurrente)

Del inglés al alemán de WMT

BLEU de 25,0

Transformer

Recomendación

MovieLens-20M

0,635 HR a 10

Neural Collaborative Filtering

Aprendizaje por refuerzo

Pro games

Predicción de movimientos del 40 %

Mini Go


Normas de capacitación de MLPerf: https://github.com/mlperf/training_policies/blob/master/training_rules.adoc

4

Sistema de referencia de MLPerf*: configuración de Google Cloud Platform: 16 vCPU, Intel Skylake o posterior, RAM de 60 GB (n1­standard­16), 1 GPU NVIDIA* Tesla* P100, CUDA* 9.1 (9.0 para TensorFlow*), nvidia­docker2, Ubuntu* 16.04 LTS, reemplazo: desactivado, reinicio automático: desactivado, disco de arranque de 30 GB y 1 disco persistente con SSD de 500 GB, imagen de docker*: 9.1­cudnn7­runtime­ubuntu16.04 (9.0­cudnn7­devel­ubuntu16.04 para TensorFlow*).

6

Novartis: medición realizada el 25 de mayo del 2018. Según la aceleración para 8 nodos en comparación con un nodo único. Configuración de nodo: CPU: procesador Intel® Xeon® Gold 6148 a 2,4 GHz, memoria de 192 GB, tecnología Hyper-threading: habilitada. NIC: interfaz Intel® Omni-Path Host Fabric (Intel® OP HFI), TensorFlow: v1.7.0, Horovod: 0.12.1, OpenMPI: 3.0.0. SO: CentOS* 7.3, OpenMPU 23.0.0, Python 2.7.5. Es momento de capacitarse a fin de enfocarse en lograr una precisión del 99 % en el modelo. Fuente: https://newsroom.intel.com/news/using-deep-neural-network-acceleration-image-analysis-drug-discovery.

7

GENCI: Occigen: 2 procesadores Intel® Xeon® de 3306 nodos (entre 12 y 14 núcleos). Nodos informáticos: procesador Intel® Xeon® de 2 zócalos con 12 núcleos cada uno a 2,70 GHz para un total de 24 núcleos por nodo, 2 subprocesos por núcleo, 96 GB de DDR4, interfaz Mellanox InfiniBand Fabric, carril doble. Software: cuarta actualización de la biblioteca MPI de Intel® 2017, vista previa de OFI 1.5.0PSM2 de la biblioteca MPI de Intel® 2019 con varios EP, Ethernet de 10 Gbit, SSD local de 200 GB, Red Hat* Enterprise Linux 6.7. Caffe*: optimización de Intel® para Caffe*: https://github.com/intel/caffe Intel® Machine Learning Scaling Library (Intel® MLSL): https://github.com/intel/MLSL Conjunto de datos: Pl@ntNet: CINES/GENCI, los resultados de desempeño del conjunto de datos interno se obtuvieron en pruebas realizadas hasta el 15 de octubre del 2018.

8

Colaboración de Intel, Dell y Surfsara: medición realizada el 17 de mayo del 2018 en 256 nodos del procesador Intel® Xeon® Gold 6148 de 2 zócalos. Nodos informáticos: procesador Intel® Xeon® Gold 6148F de 2 zócalos con 20 núcleos cada uno a 2,40 GHz para un total de 40 núcleos por nodo, 2 subprocesos por núcleo, L1d de 32 K; caché L1i de 32 K, caché L2 de 1024 K, caché L3 de 33 792 K, 96 GB de DDR4, interfaz Intel® Omni-Path Host Fabric (Intel® OP HFI), carril doble. Software: cuarta actualización de la biblioteca MPI de Intel® 2017, vista previa de OFI 1.5.0PSM2 de la biblioteca MPI de Intel® 2019 con varios EP, Ethernet de 10 Gbit, SSD local de 200 GB, Red Hat* Enterprise Linux 6.7. TensorFlow* 1.6: desarrollado e instalado desde la fuente: https://www.tensorflow.org/install/install_sources Modelo ResNet-50: especificaciones de topología de https://github.com/tensorflow/tpu/tree/master/models/official/resnet. Modelo DenseNet-121: especificaciones de topología de https://github.com/liuzhuang13/DenseNet. Modelo de convergencia y desempeño: https://surfdrive.surf.nl/files/index.php/s/xrEFLPvo7IDRARs. Conjunto de datos: ImageNet2012-1K: http://www.image-net.org/challenges/LSVRC/2012 /. ChexNet*: https://stanfordmlgroup.github.io/projects/chexnet/. Medición de desempeño realizada con: 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: medición realizada el 17 de mayo del 2018 en Stampede2/TACC: https://portal.tacc.utexas.edu/user-guides/stampede2. Nodos informáticos: procesador Intel® Xeon® Platinum 8160 de 2 zócalos con 24 núcleos cada uno a 2,10 GHz para un total de 48 núcleos por nodo, 2 subprocesos por núcleo, L1d de 32 K; caché L1i de 32 K, caché L2 de 1024 K, caché L3 de 33 792 K, 96 GB de DDR4, interfaz Intel® Omni-Path Host Fabric (Intel® OP HFI), carril doble. Software: cuarta actualización de la biblioteca MPI de Intel® 2017, vista previa de OFI 1.5.0PSM2 de la biblioteca MPI de Intel® 2019 con varios EP, Ethernet de 10 Gbit, SSD local de 200 GB, Red Hat* Enterprise Linux 6.7. TensorFlow* 1.6: desarrollado e instalado desde la fuente: https://www.tensorflow.org/install/install_sources Modelo: CERN* 3D GANS de https://github.com/sara-nl/3Dgan/tree/tf Conjunto de datos: CERN* 3D GANS de https://github.com/sara-nl/3Dgan/tree/tf Medición de desempeño realizada en 256 nodos con: 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

Mejora de desempeño de capacidad de procesamiento de inferencias 275 veces superior gracias a la optimización de Intel® para Caffe* en comparación con BVLC-Caffe*: medición realizada por Intel el 11 de diciembre del 2018. CPU con procesador 2S Intel® Xeon® Platinum 8180 a 2,50 GHz (28 núcleos), tecnología HT activada, turbo activado, memoria total de 192 GB (12 ranuras*, 16 GB, Micron de 2666 MHz), SSD Intel® SSDSC2KF5, Ubuntu 16.04 Kernel 4.15.0-42.generic; BIOS: SE5C620.86B.00.01.0009.101920170742 (microcódigo: 0x0200004d); topología: referencia de Resnet-50: FP32, confirmación de BVLC-Caffe* (https://github.com/BVLC/caffe.git) 99bd99795dcdf0b1d3086a8d67ab1782a8a08383 Desempeño actual: INT8, optimizaciones de Intel® para la confirmación de Caffe* (https://github.com/Intel/caffe.git): confirmación de Caffe*: e94b3ff41012668ac77afea7eda89f07fa360adf, confirmación de MKLDNN: 4e333787e0d66a1dca1218e99a891d493dbc8ef1.

El software y las cargas de trabajo que se utilizan en las pruebas de desempeño pueden haber sido optimizados solamente para desempeño en microprocesadores Intel. Las pruebas de desempeño, tales como SYSmark* y MobileMark*, se miden con sistemas específicos de computación, componentes, software, operaciones y funciones. Cualquier cambio en alguno de esos factores podría generar un cambio en los resultados. Debe consultar otra información y pruebas de desempeño que lo ayuden a evaluar plenamente las compras consideradas, incluido el desempeño de ese producto cuando se combina con otros. Para obtener más información, visite www.intel.la/benchmarks.

Aviso sobre la optimización: Los compiladores de Intel pueden o no ofrecer el mismo nivel de optimización para microprocesadores que no son de Intel en el caso de optimizaciones que no son exclusivas para microprocesadores Intel. Estas optimizaciones incluyen conjuntos de instrucciones SSE2, SSE3 y SSSE3, además de otras optimizaciones. Intel no garantiza la disponibilidad, funcionalidad o eficacia de ninguna optimización en microprocesadores que no sean fabricados por Intel. Las optimizaciones dependientes del microprocesador en este producto fueron diseñadas para usarse con microprocesadores Intel. Ciertas optimizaciones no específicas de la microarquitectura Intel se reservan para los microprocesadores Intel. Consulta las guías de referencia y del usuario para obtener más información acerca de los conjuntos de instrucciones específicos cubiertos en este aviso.

Los resultados de desempeño podrían no reflejar todas las actualizaciones de seguridad disponibles para el público. Consulte la divulgación de configuración para obtener más información. Ningún producto puede proporcionar una seguridad absoluta.

Intel, el logotipo de Intel, los procesadores escalables Xeon y Deep Learning Boost son marcas comerciales de Intel Corporation o de sus filiales en los Estados Unidos o en otros países.
*Otros nombres y marcas podrían ser reclamados como propiedad de terceros.
© Intel Corporation.