インテル® MKL におけるインテル® AVX2 向け最適化

インテル® oneMKL

この記事は、インテル® デベロッパー・ゾーンに掲載されている「Intel® AVX2 optimization in Intel® MKL」(http://software.intel.com/en-us/articles/intel-mkl-support-for-intel-avx2) の日本語参考訳です。


第 4 世代インテル® Core™ プロセッサー (開発コード名: Haswell) は、2013 年にリリースされた新しい世代の x86 プロセッサー・マイクロアーキテクチャー (tock) です。Haswell の新しい命令は、幅広いアプリケーションと使用モデルを高速化します。https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html から『Intel® Advanced Vector Extensions Programming Reference』をダウンロードできます。新しい命令セットは、Ivy Bridge (開発コード名) マイクロアーキテクチャーの命令を基に構築されており、デジタル乱数ジェネレーター、半精度浮動小数点 (float16) アクセラレーター、インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 命令の拡張セットが含まれています。
新しい命令は次のように分類できます。

インテル® AVX2 – 整数型を 256 ビットの SIMD へ拡張: インテル® AVX2 の整数型は、商用のイメージ/ビデオ処理ワークロードでよく使われる映像データ処理に特に役立ちます。Haswell では、インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) の浮動小数点型とインテル® AVX2 の整数型の両方を利用できます。
ビット操作命令: 圧縮データベース、ハッシュ、大数演算、およびさまざまな汎用コードで役立ちます。
ギャザー命令: 隣接しないデータ要素を利用するベクトル化されたコードで便利です。Haswell のギャザー命令は、(インテル® AVX の条件付きロード/ストアと同様に) 安全性を確保するためマスクを採用しています。値の丸め操作や境界のアライメント、または同様の条件付き操作に適しています。
Any-to-Any 並べ替え: シャッフル操作に便利です。Haswell では、DWORD と QWORD がサポートされ、256 ビットのレジスター全体にわたって並べ替えを行うことができます。
ベクトル-ベクトルシフト: 新しいベクトルのシフト操作が追加されました。シフト量はベクトルによって制御されます。これは、要素ごとにシフト量が異なるベクトル化されたループで重要です。
浮動小数点の乗累算: ピーク FLOPS を大幅に向上し、超越関数の精度をさらに高めます。ハイパフォーマンス・コンピューティング、プロ品質の画像、顔検出など幅広い分野で利用できます。スカラー、128 ビット/256 ビットのパックド単精度/倍精度データ型を処理します。(これらの命令は、初期のインテル® AVX の仕様書で説明されているとおりです。)

インテル® MKL 11.0 はインテル® AVX2 を完全にサポートしており、以下の関数はインテル® AVX2 向けに最適化されています。

Basic Linear Algebra Subprograms (BLAS)

  • xGEMM
  • xTRSM
  • xTRMM
  • xSYRK
  • xSYMM
  • xHERK
  • xHEMM
  • xHER2K

LAPACK

  • DGETRF
  • DPOTRF
  • DGEQRF

離散フーリエ変換 (DFT)

  • 1 次元、2 の累乗
  • 2 次元、2 の累乗
  • 3 次元、2 の累乗
  • 1 次元、2 の累乗ではないもの
  • 2 次元、2 の累乗ではないもの
  • 3 次元、2 の累乗ではないもの

スパース BLAS

  • dcsrmm
  • scsrmm
  • dcoomm
  • scoomm

ベクトル・スタティスティカル・ライブラリー (VSL)

  • MRG32k3a

参考文献

インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) の最適化

Haswell New Instruction Descriptions Now Available! (http://software.intel.com/en-us/blogs/2011/06/13/haswell-new-instruction-descriptions-now-available)

Intel® Advanced Vector Extensions Programming Reference (https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html)

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

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