インテル® 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 の他の記事に関してはこちらをご覧ください。

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

 

関連記事