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/en-us/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.co.kr/xeonscalable.

제품 및 성능 정보

1

2칩 인텔® 제온® 플래티넘 8180 프로세서를 사용한 MLPerf 이미지 분류 벤치마크(Resnet-50)에서 0.85점, MLPerf 기준(+)에 비해 0.85배. MLPerf v0.5 Training 클로즈드(Closed) 부문; Caffe*용 인® 최적화 1.1.2a와 인텔® Math Kernel Library for Deep Neural Networks(인텔® MKL-DNN) v0.16 라이브러리를 사용한 시스템. 2018년 12월 12일 www.mlperf.org, 0.5.6.1 항목에서 가져왔습니다. MLPerf 이름과 로고는 등록 상표입니다. 자세한 내용은 www.mlperf.org를 참조하십시오.

2

2칩 인텔® 제온® 플래티넘 8180 프로세서를 사용한 권장 벤치마크(신경망 협업 필터링, NCF)에서 1.6점, MLPerf 기준선(+)에 비해 1.6배. MLPerf v0.5 Training 클로즈드(Closed) 부문; Framework BigDL 0.7.0을 사용한 시스템. 2018년 12월 12일 www.mlperf.org, 0.5.9.6 항목에서 가져왔습니다. MLPerf 이름과 로고는 상표입니다. 자세한 내용은 www.mlperf.org를 참조하십시오.

3

2칩 카운트 인텔® 제온® 플래티넘 8180 프로세서를 사용하는  MLPerf 기준(+)에 비해 6.3배의 강화 학습 벤치마크(mini GO)에서 6.3점을 얻었습니다. MLPerf v0.5 교육 클로즈 부문; 딥 신경망용 인텔® Math Kernel Library(인텔® MKL-DNN) v0.14 라이브러리와 함께 TensorFlow 1.10.1를 사용한 시스템. www.mlperf.org 2018년 12월 12일, 0.5.10.7 항목에서 가져왔습니다. MLPerf 이름과 로고는 상표입니다. 자세한 내용은 www.mlperf.org를 참조하십시오.

(+) MLPerf 기준선(MLPerf v0.5 커뮤니티 보도 자료에서 발췌): MLPerf Training v0.5는 ML 시스템 속도를 측정하기 위한 벤치마크 제품입니다. 각각의 MLPerf Training 벤치마크는 데이터 세트와 품질 목표로 정의됩니다. 또한 MLPerf Training에서는 특정 모델을 사용하는 각각의 벤치마크에 대한 기준 구현 모델을 제공합니다. 다음 표에는 v0.5 제품 버전의 7가지 벤치마크가 요약되어 있습니다.

벤치마크

데이터 세트

품질 목표

기준 구현 모델

이미지 분류

ImageNet

74.90% 분류

Resnet-50 v1.5

물체 감지(경량)

COCO 2017

21.2% mAP

SSD(Resnet-34 백본)

물체 감지(중량)

COCO 2017

0.377 박스 최소 AP, 0.339 마스크 최소 AP

마스크 R-CNN

번역(반복)

WMT 영어-독일어

21.8 BLEU

신경망 기계 번역

번역(반복 안함)

WMT 영어-독일어

25.0 BLEU

변환기

권장 사항

MovieLens-20M

0.635 HR@10

신경망 협업 필터링

강화 학습

프로 게임

40.00% 움직임 예측

Mini Go


MLPerf 교육 규칙: https://github.com/mlperf/training_policies/blob/master/training_rules.adoc

4

MLPerf* 기준 시스템: Google 클라우드 플랫폼 구성: vCPU 16개, 인텔 Skylake 이상, 60GB RAM(n1­standard­16), NVIDIA* Tesla* P100 GPU 1개, CUDA* 9.1(TensorFlow의 경우 9.0*), nvidia­docker2, Ubuntu* 16.04 LTS, 선점성: 끄기, 자동 재시작: 끄기, 30GB 부트 디스크 + SSD 영구 디스크 500GB 1개, 도커* 이미지: 9.1­cudnn7­runtime­ubuntu16.04(TensorFlow의 경우 9.0­cudnn7­devel­ubuntu16.04*).

6

Novartis: 2018년 5월 25일 측정한 결과. 단일 노드와 비교한 8개 노드의 속도 향상을 기준으로 합니다. 노드 구성: CPU: 인텔® 제온® 골드 6148 프로세서 @ 2.4GHz, 192GB 메모리, 하이퍼 스레딩: 사용. NIC: 인텔® Omni-Path Host Fabric Interface(인텔® OP HFI), TensorFlow: v1.7.0, Horovod: 0.12.1, OpenMPI: 3.0.0. OS: CentOS* 7.3, OpenMPU 23.0.0, Python 2.7.5. 모델에서 99% 정확도로 컨버전스하는 데 필요한 학습 시간. 출처: https://newsroom.intel.com/news/using-deep-neural-network-acceleration-image-analysis-drug-discovery.

7

GENCI: Occigen: 3,306개 노드 x 2개 Intel® Xeon® 프로세서(12-14코어). 컴퓨팅 노드: 2소켓 인텔® 제온® 프로세서, 소켓당 12코어, 2.70GHz, 노드당 총 24코어, 코어당 2스레드, 96GB DDR4, Mellanox InfiniBand Fabric Interface, 듀얼 레일. 소프트웨어: 인텔® MPI 라이브러리 2017 업데이트 4 인텔® MPI 라이브러리 2019 Technical Preview OFI 1.5.0PSM2 w/ Multi-EP, 10Gbit 이더넷, 200GB 로컬 SSD, Red Hat* Enterprise Linux 6.7. Caffe*: Caffe용 인텔® 최적화*: https://github.com/intel/caffe 인텔® 머신 러닝 스케일링 라이브러리(인텔® MLSL): https://github.com/intel/MLSL 데이터 집합: Pl@ntNet: CINES/GENCI 내부 데이터 집합 성능 결과는 2018년 10월 15일 테스트를 기준으로 합니다.

8

인텔, Dell, Surfsara 협업: 2018년 5월 17일 2소켓 인텔® 제온® 골드 6148 프로세서의 256개 노드에서 측정한 결과. 컴퓨팅 노드: 2소켓 인텔® 제온® 골드 6148F 프로세서, 소켓당 20코어, 2.40GHz, 노드당 총 40코어, 코어당 2스레드, L1d 32K, L1i 캐시 32K, L2 캐시 1024K, L3 캐시 33792K, 96GB DDR4, 인텔® Omni-Path Host Fabric Interface(인텔® OP HFI), 듀얼 레일. 소프트웨어: 인텔® MPI 라이브러리 2017 업데이트 4 인텔® MPI 라이브러리 2019 Technical Preview OFI 1.5.0PSM2 w/ Multi-EP, 10Gbit 이더넷, 200GB 로컬 SSD, Red Hat* Enterprise Linux 6.7. TensorFlow* 1.6: 빌드 및 설치 소스: https://www.tensorflow.org/install/install_sources ResNet-50 모델: 토폴로지 사양: https://github.com/tensorflow/tpu/tree/master/models/official/resnet. DenseNet-121Model: 토폴로지 사양: https://github.com/liuzhuang13/DenseNet. 컨버전스 및 성능 모델: https://surfdrive.surf.nl/files/index.php/s/xrEFLPvo7IDRARs. 데이터 집합: ImageNet2012-1K: http://www.image-net.org/challenges/LSVRC/2012 /. ChexNet*: https://stanfordmlgroup.github.io/projects/chexnet/. 성능 측정 조건: 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: 2018년 5월 17일 Stampede2/TACC에서 측정한 결과: https://portal.tacc.utexas.edu/user-guides/stampede2. 컴퓨팅 노드: 2소켓 인텔® 제온® 플래티넘 8160 프로세서, 소켓당 24코어, 2.10GHz, 노드당 총 48코어, 코어당 2스레드, L1d 32K, L1i 캐시 32K, L2 캐시 1024K, L3 캐시 33792K, 96GB DDR4, 인텔® Omni-Path Host Fabric Interface(인텔® OP HFI), 듀얼 레일. 소프트웨어: 인텔® MPI 라이브러리 2017 업데이트 4 인텔® MPI 라이브러리 2019 기술 미리 보기 OFI 1.5.0PSM2 w/ 멀티 EP, 10Gbit 이더넷, 200GB 로컬 SSD, Red Hat* Enterprise Linux 6.7. TensorFlow* 1.6: 빌드 및 설치 소스: https://www.tensorflow.org/install/install_sources 모델: CERN* 3D GANS: https://github.com/sara-nl/3Dgan/tree/tf 데이터 집합: CERN* 3D GANS: https://github.com/sara-nl/3Dgan/tree/tf 256개 노드에서 측정한 성능, 256개 노드 기준 성능 측정 조건: 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

BVLC-Caffe*에 비해 Caffe용 인텔® 최적화*에서 추론 처리 성능 275배 개선: 2018년 12월 11일에 인텔에서 측정한 결과. 2S 인텔® 제온® 플래티넘 8180 프로세서 CPU @ 2.50GHz(28코어), HT 사용, turbo 사용, 192GB 총 메모리(12슬롯 * 16GB, Micron 2666MHz), 인텔® SSD SSDSC2KF5, Ubuntu 16.04 커널 4.15.0-42.generic; BIOS: SE5C620.86B.00.01.0009.101920170742(마이크로코드: 0x0200004d); 토폴로지: Resnet-50 기준선: FP32, BVLC Caffe* (https://github.com/BVLC/caffe.git) 커밋 99bd99795dcdf0b1d3086a8d67ab1782a8a08383 현재 성능: INT8, Caffe용 인텔® 최적화* (https://github.com/Intel/caffe.git) 커밋: Caffe* 커밋: e94b3ff41012668ac77afea7eda89f07fa360adf, MKLDNN 커밋: 4e333787e0d66a1dca1218e99a891d493dbc8ef1.

성능 테스트에 사용된 소프트웨어 및 워크로드는 인텔 마이크로프로세서에만 적합하도록 최적화되었을 수 있습니다. SYSmark* 및 MobileMark*와 같은 성능 테스트는 특정 컴퓨터 시스템, 구성 요소, 소프트웨어, 운영, 기능을 사용하여 측정된 것입니다. 해당 요소에 변경이 생기면 결과가 달라질 수 있습니다. 구매를 고려 중인 제품을 제대로 평가하려면 다른 제품과 결합하여 사용할 경우 해당 제품의 성능을 포함한 기타 정보 및 성능 테스트를 참고해야 합니다. 자세한 내용은 www.intel.co.kr/benchmarks를 참조하십시오.

최적화 공지: 인텔 컴파일러는 인텔 마이크로프로세서에 고유하지 않은 최적화에 대해 타사 마이크로프로세서에서 동일한 수준의 최적화를 제공할 수도 있고 그렇지 않을 수도 있습니다. 이러한 최적화에는 SSE2, SSSE3 및 SSE3 명령 세트 등이 있습니다. 인텔은 인텔이 제조하지 않은 마이크로프로세서에 대한 최적화의 사용 가능성, 기능 또는 효과를 보장하지 않습니다. 마이크로프로세서에 따라 좌우되는 이 제품의 최적화는 인텔 마이크로프로세서에 사용할 목적으로 만들어졌습니다. 인텔 마이크로아키텍처 전용이 아닌 특정 최적화는 인텔 마이크로프로세서에 사용할 수 있습니다. 이 공지가 적용되는 구체적인 명령 세트에 대한 자세한 정보는 해당 제품의 사용자 안내서 및 참조 안내서를 참조하십시오.

성능 결과에 공개된 모든 보안 업데이트가 반영되어 있지 않았을 수 있습니다. 자세한 내용은 공개된 구성 정보를 참조하십시오. 어떤 제품도 절대적으로 안전할 수는 없습니다.

인텔, 인텔 로고, 제온 스케일러블 프로세서, 딥 러닝 부스트는 미국 및/또는 다른 국가에서 인텔사 또는 그 자회사의 상표입니다.
*기타 명칭 및 브랜드는 해당 소유업체의 자산입니다.
© 인텔사.