MLPerf* ベンチマーク結果は、ディープラーニング・トレーニング用 CPU の性能を実証します。

著者

  • コア & ビジュアル・コンピューティング事業本部副社長兼マシンラーニング / 機械翻訳担当ジェネラル・マネージャー - Wei Li

BUILT IN - ARTICLE INTRO SECOND COMPONENT

スーパーコンピューターからデータベース・サーバー、さらにはモバイル端末と多様なプラットフォームで、20 年以上にわたりコンピューター性能の最適化とベンチマーク評価に携わってきました。製品の開発プロセスで性能結果を浮き彫りにし、業界の競合製品と比較するのは常に興味深い作業です。 SPEC*、LINPACK、TPC といった名称は、プロセッサーの世界にいる我々にとってなじみ深いものになりました。現在、MLPerf* が、これまでなかったマシンラーニング用ベンチマークとしての役割を担っています。

自分のチームから提出されるインテル® Xeon® スケーラブル・プロセッサーの MLPerf* 測定値を見るのは楽しみなものです。ユーザー側とコンピューター・システム開発側の両方の立場でディープラーニングに取り組んでいますから。 このベンチマーク結果が示すのは、インテル® Xeon® スケーラブル・プロセッサーが性能しきい値を超えたということです。既存のインフラストラクチャーで複数ワークロードを実行しようと試みるデータ・サイエンティストにとって、専用のハードウェアに投資しなくても可能な、有効な選択肢となります。1 2 3

モバイル端末の開発チームを率いていた 2015年当時、 モバイルゲームを手動でプレイするテスト担当者を採用する必要がありました。最初のうちは、テスト担当者たちもゲームを楽しんでいましたが、すぐに退屈でコストのかかる作業になり、 採用したその日のうちに辞めてしまうテスト担当者まで出たほどです。そこで、モバイルゲームをテストするロボットを作成し、ディープラーニングを導入することにしました。このテスト用ロボットは自動でゲームをプレイするうえ、人間主導のテストよりも多くのバグを発見できたのです。ラボの所有マシンでニューラル・ネットワークのトレーニングを実施しようとしましたが、処理速度が足りず、 GPU の購入予算を割り当てることになりました。それでも MLPerf* リファレンス GPU よりも古いバージョンです。4

現在の CPU には、ディープラーニング・トレーニングだけでなく推論処理を実行する性能も備わっています。インテルの MLPerf インテル® Xeon® スケーラブル・プロセッサーの結果 (英語) では、MLPerf リファレンス GPU4 を使用して、さまざまな MLPerf ディープ・ラーニング・トレーニング・ワークロード1,2,3を比較しています。例えば、インテルが提出した単一システム 2-way のインテル® Xeon® スケーラブル・プロセッサーの結果は、MLPerf* 画像分類ベンチマーク (Resnet-50) で 0.851、レコメンデーション・ベンチマーク (ニューラル協調フィルタリング NCF) で 1.62、強化学習ベンチマーク (ミニ GO) で 6.3 というスコアを達成しました3。ここで挙げたスコアはすべて、1.0 はリファレンス GPU を使用したリファレンス実装のスコアとして定義されています4。上記の測定はすべて、現在の市場で使用される一般的な数値精度に FP32 を使用しています。この MLPerf* ベンチマーク結果から、最新のインテル® Xeon® スケーラブル・プロセッサーを使用すれば、ゲームテスト用ロボットを簡単にトレーニングできることが分かります。

ディープラーニングとマシンラーニングの世界は、畳み込みニューラル・ネットワーク (CNN) を使用した画像処理や再帰型ニューラル・ネットワーク (RNN) を使用した自然言語処理から、MLP レイヤーや行列乗算を使用したレコメンデーション・システム、強化学習 (CNN とシミュレーションの混合)、さらにディープラーニングと従来型マシンラーニングを混ぜ合わせたハイブリッド・モデルへと進化し続けています。汎用 CPU は、現行のディープラーニング以外のワークロードを実行するだけでなく、このパワフルに変化する環境に見事に適応しています。

多くの企業が、ディープラーニング・トレーニング用 CPU の導入を進めています。例えば、最近 Datatonic が公開したブログによると、インテル® Xeon® スケーラブル・プロセッサー搭載の Google Cloud* VM で、上位 5 位の英国小売企業でニューラル・ネットワークのレコメンデーション・システムを稼動した場合、最大 11 倍のコスト改善と 57% のパフォーマンス向上を実現できると示されています。5 CPU は大多数のドメインで必要とされる大容量メモリーのモデルにも対応できます。製薬会社の Novartis では、インテル® Xeon® スケーラブル・プロセッサーを使用して、1 万枚のハイコンテンツ細胞顕微鏡画像 (典型的な ImageNet 画像に比べてかなり大きなサイズ) のマルチスケール畳み込みニューラル・ネットワーク (M-CNN) 用トレーニングを加速化しました。これにより、トレーニング時間が 11 時間から 31 分に短縮されています。6

Supercomputing 2018 で紹介されたように、ハイパフォーマンス・コンピューティング (HPC) の企業ユーザーは分散学習用にインテル® Xeon® プロセッサーを使用しています。例えば、GENCI/CINES/INRIA は、128 台の 2-way インテル® Xeon® プロセッサー搭載システムを使用し、1,200 万枚の画像からなる 1.5 テラバイトのデータセットで、30 万種の植物分類モデルをトレーニングしました7。Dell EMC* および SURFSara は、インテル® Xeon® プロセッサーを使用して、DenseNet-121 モデルでトレーニング時間を 11 分に短縮8。CERN は、128 ノードの TACC Stampede 2 クラスター (インテル® Xeon® Platinum 8160 プロセッサー、インテル® OPA) を 3D 敵対的生成ネットワーク (3D GAN) と組み合わせた分散学習を紹介しています。これにより、94% の拡張効率を達成しました9。その他のさまざまな事例については、https://software.intel.com/en-us/articles/intel-processors-for-deep-learning-training/ を参照してください。

この数年間で、ディープラーニング向け CPU の性能はハードウェア、ソフトウェアともに、桁違いで向上しています。数日または数週間かかっていたトレーニングが、数時間、数分単位で完了できるようになりました。このレベルの性能向上は、ハードウェアとソフトウェアの組み合わせによる成果です。例えば、現行世代のインテル® Xeon® スケーラブル・プロセッサーは、大量の操作を並列処理できるインテル® アドバンスト・ベクトル・エクステンション (インテル® AVX-512) 命令セット (さらに拡張されたベクトル・エクステンション) とマルチコアの両方を追加することで、実質的にはミニ・スーパーコンピューターになったとも言えます。次世代のインテル® Xeon® スケーラブル・プロセッサーにはインテル® ディープラーニング・ブースト (インテル® DL ブースト) が備わり、スループットを高め、数値精度命令数を抑えることでて、ディープラーニング推論が強化されています。ソフトウェアの面では、同じインテル® Xeon® スケーラブル・プロセッサーを使用した場合、ベースラインとなるオープンソースのディープラーニング・ソフトウェアとインテル® プラットフォームで最適化されたソフトウェアとの性能差は最大 275 倍 10 と出ています (先日開催された Intel Architecture Day フォーラムのデモ内で説明)。

ここ数年間にわたり、インテルはディープラーニング・フレームワークの開発部門と連携し、TensorFlow*、Caffe、MXNet*、PyTorch*/Caffe2、PaddlePaddle、Chainer* といった広く利用されているオープンソース・フレームワークをインテル® プロセッサー向けに最適化してきました。インテルは、Apache Spark* 向けのフレームワーク BigDL や、推論処理向けにインテル® ディープラーニング・デプロイメント・ツールキット (DLDT) も開発しています。コア演算は線形代数であるため、ディープ・ニューラル・ネットワーク向けインテル® マス・カーネル・ライブラリー (インテル® MKL-DNN) という新しい数値演算ライブラリーを作成しました。これは、ハイパフォーマンス・コンピューティング (HPC) 向けインテル® マス・カーネル・ライブラリー (インテル® MKL) での長年にわたる経験に基づいて、ディープラーニング向けに設計されています。インテル® MKL-DNN のフレームワークへの統合、そしてこのフレームワークが基盤となるハードウェアの性能を十分に活用するためのさらなる最適化が、ソフトウェア性能の大幅な向上をもたらした主な要因です。

CPU はアクセラレーターよりも速いのか遅いのか、とよく尋ねられます。もちろん、アクセラレーターにもいくつかの利点があります。特定のドメインでアクセラレーターが CPU よりもとにかく遅いとしたら、それほど高性能のアクセラレーターではありません。とはいえ、ディープラーニングのワークロードが多様化していることを考えると、一定の状況では CPU もその価値提案の核心にある柔軟性を保持しつつ、アクセラレーター同等またはそれ以上の速度を示す必要があります。そのため、アクセラレーターへの投資を避けたいユーザーにとって有効な選択肢となるほど CPU はディープラーニングを問題なく実行できるのか、と尋ねるのが妥当と言えるのではないでしょうか。ここで示されているインテルが実施した初期の MLPerf* ベンチマーク結果 1 2 3 および顧客事例は、CPU がトレーニングでの使用に有効であることを実証しています。インテルでは、汎用 CPU とアクセラレーターの両方を提供して、顧客環境でのマシンラーニングの幅広いニーズに対応することを目指しています。

引き続き将来世代の CPU に新しい AI 機能やディープラーニング機能 (インテル® ディープラーニング・ブースト (インテル® DL ブースト) など) を追加し、トレーニング向け bfloat16 の提供、ソフトウェア最適化を進めていく予定です。最新情報にご注目ください。インテル® ソフトウェアの最適化の詳細については、http://ai.intel.com/framework-optimizations/ を参照してください。インテル® Xeon® スケーラブル・プロセッサーの詳細については、http://www.intel.co.jp/xeonscalable/ を参照してください。

免責事項

1

MLPerf 画像分類ベンチマークのスコア 0.85 (Resnet-50) MLPerf ベースラインの 0.85 倍 (+) 2 チップカウント・インテル® Xeon® Platinum 8180 プロセッサーを使用。 MLPerf v0.5 トレーニング・クローズド部門、システムはインテル® Optimization for Caffe* 1.1.2a とディープ・ニューラル・ネットワーク向けインテル® マス・カーネル・ライブラリー (インテル® MKL-DNN) v0.16 ライブラリーを搭載。取得先: www.mlperf.org (2018年12月12日、エントリー 0.5.6.1)。MLPerf の名称とロゴは商標です。詳細については、www.mlperf.org (英語) を参照してください。

2

推奨ベンチマークでのスコア 1.6 (ニューラル・コラボレーション・フィルタリング NCF) MLPerf ベースラインの 1.6 倍 (+) 2 チップカウントのインテル® Xeon® Platinum 8180 プロセッサーを使用。 MLPerf v0.5 トレーニング・クローズド部門、システムは Framework BigDL 0.7.0 を搭載。取得先 www.mlperf.org (2018年12月12日、エントリー 0.5.9.6)。MLPerf の名称とロゴは商標です。詳細については、www.mlperf.org (英語) を参照してください。

3

強化学習ベンチマークでのスコア 6.3 (mini GO) MLPerf ベースラインの 6.3 倍 (+) 2 チップカウントのインテル® Xeon® Platinum 8180 プロセッサーを使用。 MLPerf v0.5 トレーニング・クローズド部門、システムは TensorFlow 1.10.1 とディープ・ニューラル・ネットワーク向けインテル® マス・カーネル・ライブラリー (インテル® MKL-DNN) v0.14 ライブラリーを搭載。取得先: www.mlperf.org (2018年12月12日、エントリー 0.5.10.7)。MLPerf の名称とロゴは商標です。詳細については、www.mlperf.org (英語) を参照してください。

(+) MLPerf ベースライン (MLPerf v0.5 コミュニティー・プレス・ブリーフィングから引用): MLPerf トレーニング v0.5 は ML システム速度を測定するためのベンチマーク・スイートです。各 MLPerf トレーニング・ベンチマークはデータセットと品質目標で定義されます。MLPerf トレーニングには、特定のモデルを使用する各ベンチマークのリファレンス実装も含まれます。以下の表は、スイート v0.5 における 7 件のベンチマークをまとめたものです。

ベンチマーク

データセット

品質目標

リファレンス実装モデル

画像分類

ImageNet

74.90% の分類精度

Resnet-50 v1.5

オブジェクト検出 (ライトウェイト)

COCO 2017

21.2% mAP

SSD (Resnet-34 バックボーン)

オブジェクト検出 (ヘビーウェイト)

COCO 2017

0.377 Box 最小 AP、0.339 Mask 最小 AP

Mask 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 Cloud Platform 構成: 16 vCPU、インテル® Skylake 以降、60 GB RAM (n1­standard­16)、1 NVIDIA* Tesla* P100 GPU、CUDA* 9.1 (9.0 は TensorFlow 用*)、nvidia­docker2、Ubuntu* 16.04 LTS、Pre­emtibility: オフ、自動再起動: オフ、30GB 起動ディスク + 1 SSD パーシステント・ディスク 500 GB、docker* イメージ: 9.1­cudnn7­runtime­ubuntu16.04 (TensorFlow* 向けは 9.0­cudnn7­devel­ubuntu16.04)。

6

Novartis: 2018年5月25日測定 1 ノードに対する 8 ノードの速度上昇率に基づいています。ノード構成: CPU: インテル® Xeon® Gold 6148 プロセッサー @ 2.40GHz、192GB メモリー、ハイパースレッディング有効 NIC: インテル® Omni-Path ホスト・ファブリック・インターフェイス (インテル® 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: 3306 ノード x 2 インテル® Xeon® プロセッサー (12-14 コア)。コンピュート・ノード: 2 ソケット・インテル® Xeon® プロセッサー、各 12 コア @ 2.70GHz (合計 24 コア / ノード、2 スレッド / コア、96 GB DDR4、Mellanox InfiniBand ファブリック・インターフェイス、デュアルレール。ソフトウェア: インテル® MPI ライブラリー 2017 アップデート 4 インテル® MPI ライブラリー 2019 テクニカルプレビュー OFI 1.5.0PSM2 + Multi-EP、10 Gbit イーサネット、200 GB ローカル SSD、Red Hat* Enterprise Linux 6.7。 Caffe*: インテル® Optimization for Caffe*。https://github.com/intel/caffe インテル® マシンラーニング・スケーリング・ライブラリー (インテル® MLSL): https://github.com/intel/MLSL データセット: Pl@ntNet: CINES/GENCI 内部データセット・パフォーマンスの結果は 2018年10月15日時点のテストに基づいています。

8

インテル、Dell、Surfsara による合同テスト: 2 ソケット・インテル® Xeon® Gold 6148 プロセッサーの 256 ノードで 2018年5月17日測定。コンピュート・ノード: 2 ソケット・インテル® Xeon® Gold 6148F プロセッサー、各 20 コア @ 2.40GHz (合計 40 コア / ノード、2 スレッド / コア、L1d 32K、L1i キャッシュ 32K、L2 キャッシュ 1024K、L3 キャッシュ 33792K、96 GB DDR4、インテル® Omni-Path ホスト・ファブリック・インターフェイス (インテル® OP HFI)、デュアルレール。ソフトウェア: インテル® MPI ライブラリー 2017 アップデート 4 インテル® MPI ライブラリー 2019 テクニカルプレビュー OFI 1.5.0PSM2 + Multi-EP、10 Gbit イーサネット、200 GB ローカル 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-121 モデル: トポロジーの仕様の詳細は、以下のサイトをご覧ください。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 ソケット・インテル® Xeon® Platinum 8160 プロセッサー、各 24 コア @ 2.10GHz (合計 48 コア / ノード、2 スレッド / コア、L1d 32K、L1i キャッシュ 32K、L2 キャッシュ 1024K、L3 キャッシュ 33792K、96 GB DDR4、インテル® Omni-Path ホスト・ファブリック・インターフェイス (インテル® OP HFI)、デュアルレール。ソフトウェア: インテル® MPI ライブラリー 2017 アップデート 4 インテル® MPI ライブラリー 2019 テクニカルプレビュー OFI 1.5.0PSM2 + Multi-EP、10 Gbit イーサネット、200 GB ローカル 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 ノードで測定したパフォーマンス: 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

インテル® Optimization for Caffe* を BVLC-Caffe* と比較した場合、推論のスループットが 275 倍に向上。インテルによる測定結果 (2018年12月11日時点)。2S インテル® Xeon® Platinum 8180 プロセッサー CPU @ 2.50GHz (28 コア)、HT 有効、ターボ有効、総メモリー容量 192GB (12 スロット* 16 GB、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、インテル® Optimizations for Caffe* (https://github.com/Intel/caffe.git) コミット: Caffe* コミット: e94b3ff41012668ac77afea7eda89f07fa360adf、MKLDNN コミット: 4e333787e0d66a1dca1218e99a891d493dbc8ef1。

性能に関するテストに使用されるソフトウェアとワークロードは、性能がインテル® マイクロプロセッサー用に最適化されていることがあります。SYSmark* や MobileMark* などの性能テストは、特定のコンピューター・システム、コンポーネント、ソフトウェア、操作、機能に基づいて行ったものです。結果はこれらの要因によって異なります。製品の購入を検討される場合は、ほかの製品と組み合わせた場合の本製品の性能など、ほかの情報や性能テストも参考にして、パフォーマンスを総合的に評価することをお勧めします。詳細については、http://www.intel.co.jp/benchmarks (英語) を参照してください。

最適化に関する注意事項: インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® SSE2、インテル® SSE3、インテル® SSSE3 命令セットなどの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル製マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

パフォーマンス実績は、公開されているすべてのセキュリティー・アップデートが適用されていない可能性があります。詳細については、公開されている構成情報を参照してください。絶対的なセキュリティーを提供できる製品はありません。

Intel、インテル、Intel ロゴ、Xeon スケーラブル・プロセッサー、ディープ・ラーニング・ブーストは、アメリカ合衆国および / またはその他の国における Intel Corporation またはその子会社の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
© Intel Corporation.