インテル® Xeon Phi™ コプロセッサー向けインテル® MKL 自動オフロード対応関数
この記事は、インテル® デベロッパー・ゾーンに掲載される「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 の他の記事に関してはこちらをご覧ください。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。