NCF ディープラーニング推論で第 2 世代インテル® Xeon® スケーラブル・プロセッサーが NVIDIA* GPU を凌駕

AIマシンラーニング

この記事は、インテル® AI Blog に公開されている「2nd Generation Intel® Xeon® Scalable CPUs Outperform NVIDIA GPUs on NCF Deep Learning Inference」の日本語参考訳です。


推奨システム (英語) は、今日インターネット企業が展開している最も複雑で広く普及している商用 AI アプリケーションです。これらのシステムを使用する際の最大の課題の 1 つは、ユーザーと類似ユーザーの好みに基づいてそのユーザーの興味を予測する、協調フィルタリングです。ニューラル協調フィルタリング (NCF) (英語) と呼ばれる新しいモデルは、ディープラーニングを活用してユーザーとアイテムの相互関係を学習し、推奨パフォーマンスを向上します。MLPerf* (https://mlperf.org/) は、主要ベンチマークとして NCF を採用 (https://github.com/mlperf/training/blob/master/recommendation/pytorch/ncf.py) しています。

近年のハードウェアの進歩、ソフトウェア・ツールの開発、およびフレームワークの最適化をとおして、インテルは CPU のディープラーニング・パフォーマンスを大幅に向上しました。第 2 世代インテル® Xeon® スケーラブル・プロセッサーのインテル® ディープラーニング・ブースト (インテル® DL ブースト) 機能により、インテルはデュアルソケットのインテル® Xeon® Platinum 9282 プロセッサー・ベースのシステムにおいて、1.22 ミリ秒 (msec) 未満で 1 秒あたり 6,400 万文の NCF モデル推論パフォーマンスを達成し、2020 年 1 月 16 日に NVIDIA が発表した (英語) NCF の GPU パフォーマンス[1] を凌駕しました。

モデル プラットフォーム パフォーマンス 精度 データセット
NCF インテル® Xeon® Platinum 9282 プロセッサー スループット: 6,454 万要求/秒
レイテンシー: 1.22msec
INT8 MovieLens 20M (英語)
NVIDIA* V100 Tensor Core GPU スループット: 6,194 万要求/秒
レイテンシー: 20msec
混在 MovieLens 20M
NVIDIA* T4 Tensor Core GPU スループット: 5,534 万要求/秒
レイテンシー: 1.8msec
INT8 合成

図 1: NCF モデルにおける第 2 世代インテル® Xeon® スケーラブル・プロセッサーと NVIDIA* GPU のパフォーマンスの比較性能やベンチマーク結果について、さらに詳しい情報をお知りになりたい場合は、http://www.intel.com/benchmarks/ (英語) を参照してください。インテル® ソフトウェア製品のパフォーマンスおよび最適化に関する注意事項については、http://software.intel.com/en-us/articles/optimization-notice を参照してください。

再現手順:

ステップ 1: YUM (英語) または APT リポジトリー (https://software.intel.com/en-us/articles/installing-intel-free-libs-and-python-apt-repo) からインテル® マス・カーネル・ライブラリー (インテル® MKL) をインストールします。

ステップ 2: インテル® MKL で MXNet をビルドしてランタイム環境を有効にします。

インテル® ディープ・ニューラル・ネットワーク・ライブラリー (インテル® DNNL) (旧称: ディープ・ニューラル・ネットワーク向けインテル® マス・カーネル・ライブラリー (インテル® MKL-DNN)) はデフォルトで有効になります。詳細は、「インテル® MKL-DNN と MXNet をインストールする」 (英語) を参照してください。

git clone https://github.com/apache/incubator-mxnet
cd ./incubator-mxnet && git checkout dfa3d07
git submodule update --init --recursive
make -j USE_BLAS=mkl USE_INTEL_PATH=/opt/intel
source /opt/intel/bin/compilervars.sh intel64
export PYTHONPATH=/workspace/incubator-mxnet/python/

ステップ 3: NCF を起動します (詳細は README (英語) を参照)。次のコマンドを使用して、簡単なベンチマークを実行できます。

# go to NCF dir
cd /workspace/incubator-mxnet/example/neural_collaborative_filtering/
# install some python libraries
pip install numpy pandas scipy tqdm
# prepare ml-20m dataset
python convert.py
# download pre-trained models
# optimize model
python model_optimizer.py
# calibration on ml-20m dataset
python ncf.py --prefix=./model/ml-20m/neumf-opt --calibration
# benchmark
bash benchmark.sh -p model/ml-20m/neumf-opt-quantized

まとめ

この記事で紹介したとおり、インテル® Xeon® スケーラブル・プロセッサーは NCF モデルの推論に非常に効果的です。今後、インテルは DLRM などより広範な推奨システムモデルの高速化に取り組み、2020 年にリリース予定の次世代インテル® Xeon® スケーラブル・プロセッサーでインテル® DL ブーストに新しい拡張を追加して、単精度 (float 32) と半精度 (bfloat16 (英語)) の混在精度でトレーニング効率を示す予定です。

法務上の注意書き

タイトルとURLをコピーしました