この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel® 64 and IA-32 Architectures Optimization Reference Manual」 (https://software.intel.com/sites/default/files/managed/9e/bc/64-ia-32-architectures-optimization-manual.pdf) ドキュメント番号: 248966-041 April 2019 で追加された「Chapter 7 INT8 Deep Learning Inference」の日本語参考訳です。
第 7 章 INT8 ディープラーニング推論
この章では、インテル® テクノロジー上のディープラーニング推論向けの INT8 データ型について説明します。ここでは、インテル® AVX-512 実装と新しいインテル® Deep Learning Boost (インテル® DL Boost) 命令を使用した実装の両方についてカバーします。
この章はいくつかの節に分けて説明します。最初の節では、INT8、具体的にはインテル® DL Boost 命令を主なデータタイプとして説明し、ML ワークロードで使用する命令を紹介します。2 番目の節では、効率良い推論計算向けの一般的な方法論とガイドラインでについて説明します。3 番目の節では CNN 向けの最適化について説明し、最後の節で LSTM/RNN 固有の最適化について説明します。
関連がある場合、インテル® DL Boost 命令の有無にかかわらず例を示します。多くの場合 (量子化やメモリーレイアウトなど)、オフラインで実行可能なステップと、実行時に行うステップがあります。各ステップについてその都度明確に説明していきます。
7.1 ディープラーニング推測向けの INT8 データ型について
伝統的にディープラーニングでは、単精度浮動小数点 (F32) データ型が使用されてきました (https://itpeernetwork.intel.com/myth-busted-general-purpose-cpus-cant-tackle-deep-neural-networktraining/#gs.rGp9lgWH (英語) を参照)。INT8 は精度をほとんど低下させることなく大幅なパフォーマンス向上をもたらし、ディープラーニングの推論で採用されはじめています。単一の F32 FMA 命令に対し、INT8 MAC 操作に必要な 4 つのナローデータ型と 3 つのインテル® AVX-512 命令は、ほぼ 1.33 倍のゲインをもたらします。Skylake Server✝ マイクロアーキテクチャー・ベースのインテル® Xeon® スケーラブル・プロセッサーで、ResNet-50、Inception-Resnet V2、SRGAN および NMT を評価した結果、INT8 の少ないメモリー・フットプリントにより、 1.5 倍以上のスピードアップを観測できました。7.2 節では、Cascade Lake✝ 製品ベースのプロセッサーで導入されたインテル® Deep Learning Boost 命令について説明します。これにより、DL 推論のパフォーマンスがさらに向上します。
ここでは、DL 推論の 2 つの利用ケースを検討します。最初のケースはスループット・モデルです。ここでは、要素 (イメージや文章) が単一の要素にかかる時間に関係なく処理されます。通常、この使用モデルは、大量のイメージを処理して分類したり、特定のユーザーに合わせた推奨事項をオフラインで準備するサーバーに適しています。次の使用モデルは、単一要素の計算時間に制限があるスループット・レイテンシー・モデルです。この使用モデルは、オンライン計算 (言語翻訳、リアルタイム・オブジェクト検出など) に適しています。
✝開発コード名