インテル® Xeon Phi™ コプロセッサー向けインテル® MKL 自動オフロード対応関数

同カテゴリーの次の記事

インテル® Xeon Phi™ コプロセッサーでのデバッグ: 使用例

この記事は、インテル® デベロッパー・ゾーンに掲載される「Intel MKL Automatic Offload enabled functions for Intel Xeon Phi coprocessors」の参考訳です。


インテル® MKL は、インテル® メニー・インテグレーテッド・コア・アーキテクチャーベースのインテル® Xeon Phi™ で動作する Linux* をサポートしています。インテル® Xeon Phi™ コプロセッサー向けインテル® MKLでは、自動オフロード、コンパイラー支援のオフロード、そしてネイティブ実行の 3つの利用モデルがあります。

この記事では、インテル® Xeon Phi™ コプロセッサー向けのインテル® MKL における自動オフロードに対応した関数のリストを掲載しています:

BLAS:

  • レベル 3 の BLAS サブルーチン – ?SYMM、?TRMM、?TRSM、?GEMM

LAPACK:

  • LU (?GETRF)、コレスキー((S/D)POTRF)、およびQR (?GEQRF) 因数分解関数

MKL バージョン 11.0.2 では、上記のリストの関数が自動オフロードされると、次の配列サイズが適用できます。(これらの数値は、将来の MKL のリリースで変更される可能性があります):

レベル 3 BLAS

  • GEMM:
    • SGEMM: M, N > 2048, K > 256
    • DGEMM NN, NT: M, N > 1280, K > 256
    • DGEMM TN, TT: M, N > 2048, K > 256
    • C, Z GEMM: M, N > 2048, K > 256, M % 16 == 0, K % 16 == 0
  • TRxM:
    • S, D TRxM: M, N > 3072
    • C, Z TRxM: M, N > 3072, M % 16 == 0, N % 16 == 0
  • ?SYMM: M, N > 2048

?GETRF: M, N > 8192

[S/D/C]POTRF:N>=6144

[S/D/C/Z]GEQRF:M=N>=8192

上記の自動オフロードが有効な関数とは別に、次の表で BLAS と LAPACK 関数で自動オフロードの恩恵を得られるいくつかの関数を示します。

下記の表では、横一列が自動オフロードをサポートする関数を示し、縦の行で自動オフロードによって利点が得られる BLAS と LAPACK の関数を示しています。”x” マークが利点が得られることを示します。

 

GETRF

GEQRF

POTRF

TRSM

TRMM

SYMM

GEMM

?gesv

x

 

 

x

 

 

 

?gesvx

x

 

 

x

 

 

 

?gesvxx

x

 

 

x

 

 

 

(ds/zc)gesv

x

 

 

x

 

 

x

?sysv

 

 

 

x

 

 

 

(c/z)hesv

 

 

 

x

 

 

 

?gegs

 

x

 

 

 

 

 

?gegv

 

x

 

 

 

 

 

(d/s)gejsv

 

x

 

x

 

 

 

?gels

 

x

 

x

 

 

 

?gelsd

 

x

 

 

 

 

x

?gelss

 

x

 

 

 

 

x

?geqp3

 

x

 

 

 

 

 

?gesdd

 

x

 

 

 

 

x

?gesvd

 

x

 

 

 

 

x

?gges

 

x

 

 

 

 

 

?ggesx

 

x

 

 

 

 

 

?ggev

 

x

 

 

 

 

 

?ggevx

 

x

 

 

 

 

 

?ggqrf

 

x

 

 

 

 

 

?ggrqf

 

x

 

 

 

 

 

?ggglm

 

x

 

x

 

 

 

?gglse

 

x

 

x

 

 

 

?gelsy

 

x

 

x

 

 

 

?gelsx

 

 

 

x

 

 

 

?pftrf

 

 

x

x

 

 

 

?posv

 

 

x

x

 

 

 

?posvx

 

 

x

x

 

 

 

?posvxx

 

 

x

x

 

 

 

(ds/zc)posv

 

 

x

x

 

x

 

?(sy/he)gv

 

 

x

x

x

 

 

?(sy/he)gvd

 

 

x

x

x

 

 

?(sy/he)gvx

 

 

x

x

x

 

 

?(sy/he)gst

 

 

 

 

 

x

 

?(sy/he)trs2

 

 

 

x

 

 

 

?tfsm

 

 

 

x

 

 

x

?trtrs

 

 

 

x

 

 

 

?potrs

 

 

 

x

 

 

 

?pftri

 

 

 

 

x

 

 

?pftrs

 

 

 

x

 

 

x

?tftri

 

 

 

 

x

 

 

?(s/h)frk

 

 

 

 

 

 

x

?geqrt3

 

 

 

 

x

 

x

?lalsd

 

 

 

 

 

 

x

?larfb

 

 

 

 

x

 

x

 

インテル® MKL の自動オフロードの利用法は、こちらの記事を参照ください。

インテル® Xeon Phi™ コプロセッサー向けのインテル® MKL の他の記事に関してはこちらをご覧ください。

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

 

関連記事

  • インテル® Xeon Phi™ コプロセッサー向けにインテル® MKL のワーク分割を制御する方法インテル® Xeon Phi™ コプロセッサー向けにインテル® MKL のワーク分割を制御する方法 この記事は、インテル® デベロッパー・ゾーンに掲載されている「How to control the work division in Intel MKL on Intel Xeon Phi」の日本語参考訳です。 自動オフロードされるインテル® MKL レベル 3 BLAS 関数 (?GEMM、?TRMM、?TRSM) […]
  • インテル® マス・カーネル・ライブラリーの FFTW3 インターフェイスインテル® マス・カーネル・ライブラリーの FFTW3 インターフェイス この記事は、インテル® MKL リファレンス・マニュアルの項目「FFTW3 Interface to Intel® Math Kernel Library」の日本語参考訳です。 この記事では、インテル® マス・カーネル・ライブラリー (インテル® MKL) の FFTW3 ラッパーについて説明します。このラッパーは、FFTW3 […]
  • インテル® MKL を Numpy/Scipy に実装インテル® MKL を Numpy/Scipy に実装 この記事は、インテル® デベロッパー・ゾーンに公開されている「Numpy/Scipy with Intel® MKL」の日本語参考訳です。 *著者注: この記事は 2014 年 8 月 27 日更新されました。 NumPy/SciPy アプリケーション・ノート ステップ 1 - 概要 このガイドは、現在 […]
  • HPL 向けアプリケーション・ノートHPL 向けアプリケーション・ノート この記事は、インテル® ソフトウェア・ネットワークに掲載されている「HPL application note」の日本語参考訳です。 ステップ 1 - 概要 このガイドは、現在 HPL を使用しているユーザーが、より優れたベンチマーク結果を得られるように、インテル® マス・カーネル・ライブラリー (インテル® MKL) の […]
  • インテル® MKL 10.3 で追加された新機能インテル® MKL 10.3 で追加された新機能 この記事は、インテル® ソフトウェア・ネットワークに掲載されている「What's new in Intel® MKL?」の日本語参考訳 (一部編集含む) です。 インテル® MKL 10.3 では主に次の機能が追加されました。 インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) […]