推奨システム向けに INT8 推論パフォーマンスを高速化

マシンラーニング

この記事は、インテル® AI Blog に公開されている「Accelerating INT8 Inference Performance for Recommender Systems」(https://www.intel.ai/wide-deep-model) の日本語参考訳です。


今日のほとんどの推論アプリケーションでは、低レイテンシー、高メモリー帯域幅、大きな計算能力が求められます。データセンターにおけるすべての推論ワークロードの 50-60% を占める推奨システムの使用拡大とメモリー・フットプリントの増加により[1], [2]、この要求はさらに高まることが予想されます。インテル® Xeon® スケーラブル・プロセッサーは引き続き、推論システム、特にアクセラレーターに収まらない大きなメモリー・フットプリントのスパースモデルにおいて、優れた推論を提供します。最近、8 ビットの乗数を使用することで精度をほとんどまたは全く損なうことなく、ディープラーニングの推論を低い精度で行えることをインテルの研究者が実証しました。低い精度を使用する利点は主に 2 つあります。1 つ目は、多くの操作はメモリー帯域幅依存であり、精度を下げることでキャッシュを効率良く利用し、帯域幅のボトルネックを軽減できます。2 つ目は、低い数値精度では乗数が必要とするシリコン面積と電力が少ないため、ハードウェアは 1 秒間により多くの操作を処理できるようになります。

記事では、ビルトインの AI 推論アクセラレーターを備えた唯一のマイクロプロセッサーである、第 2 世代インテル® Xeon® スケーラブル・プロセッサーで利用可能なインテル® ディープラーニング・ブースト (インテル® DL ブースト) を使用した INT8 データ型による高速化を説明します。第 2 世代インテル® Xeon® スケーラブル・プロセッサーは、512 ビット幅の積和演算 (FMA) 基本命令を含むインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 命令セットをサポートしています。これらの命令は、低い精度の乗算と高い精度の累算の利用を可能にします。これらの特殊なハイパフォーマンス命令は、インテル® DL ブーストを介して組込みアクセラレーションを提供し、低い精度の推論を高速化します。さらに、インテルは、そのような CPU 機能を直接利用するインテル® ディープ・ニューラル・ネットワーク・ライブラリー (インテル® DNNL) (英語) などのライブラリーで、最適化されたソフトウェア・サポートを提供しています。

また記事では、インテル® DL ブーストを使用してワイドおよびディープラーニングの推奨モデルのパフォーマンスを効率良く向上するため[3]、モデルの重みと活性化、およびインテル® DNNL で利用可能な低い数値精度の関数を量子化する方法も説明します。通常メモリー・フットプリントが高いモデルの組込みルックアップ部分は、インテル® Xeon® スケーラブル・プロセッサーの高メモリー帯域幅と大容量メモリーにより利点が得られます。計算負荷の高いニューラル・ネットワーク部分 (全結合層) は、インテル® DL ブーストで利用可能な低い精度 (INT8) によりパフォーマンスを高速化できます。データセットを考慮して、最高のパフォーマンスを達成するためモデルを最適化する方法を説明します。さらに、インテル® DNNL は、INT8 入力値と INT8 重み値を受け取り、行列乗算を実行して INT32 結果を出力する汎用行列乗算関数をサポートします。記事では、インテル® DNNL 関数を利用して推論パフォーマンスを高速化するため、ワイドおよびディープラーニングのモデルの深い部分の全結合層を量子化する方法を説明します。

インテル® DL ブーストは、INT8 で FP32 精度と比較して、精度の低下を 0.5% 未満に抑えつつ、2 倍の推論パフォーマンスを提供します[4]。これは、TensorFlow* や MXNet などの一般的なマシンラーニング・フレームワーク上の典型的な推奨システムにおいて、小さなバッチサイズのユースケースで実証されています。このパフォーマンス向上についての詳細は、記事を参照してください。AI 研究チームの最新情報は、Twitter (英語) をフォローしてください。

法務上の注意書きと最適化に関する注意事項

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