ILP64 インターフェイスと LP64 インターフェイスの使用

インテル® マス・カーネル・ライブラリー (インテル® MKL) ILP64 ライブラリーは、64 ビット整数型 (231-1 以上の要素を含む大規模な配列のインデックス処理に必要) を使用します。しかし、LP64 ライブラリーは 32 ビット整数型を使用して配列をインデックス処理します。

LP64 インターフェイスと ILP64 インターフェイスは、インターフェイス・レイヤーに実装されます。LP64 または ILP64 インターフェイスでそれぞれ、以下のインターフェイス・ライブラリーをリンクします。

ILP64 インターフェイスは、以下のために提供されています。

"LP64" はインテル® MKL のバージョン 9.1 以前に提供されていたインターフェイスの新しい名前です。以前のインテル® MKL との互換性を保つ場合は、LP64 インターフェイスを選択してください。アプリケーションやライブラリーで大規模なデータ配列の計算にインテル® MKL を使用する場合は、ILP64 インターフェイスを選択してください。

ILP64 インターフェイスと LP64 インターフェイスでは同じインクルード・ディレクトリーが使用されます。

LP64/ILP64 用のコンパイル

以下の表は、ILP64 および LP64 インターフェイス用のコンパイル方法を示しています。

Fortran

ILP64 用のコンパイル

ifort /4I8 /I<mkl ディレクトリー>\include ...

LP64 用のコンパイル

ifort /I<mkl ディレクトリー>\include ...

C/C++

ILP64 用のコンパイル

icl /DMKL_ILP64 /I<mkl ディレクトリー>\include ...

LP64 用のコンパイル

icl /I<mkl ディレクトリー>\include ...

Caution icon警告

/4I8 または /DMKL_ILP64 オプションを使用してコンパイルしたアプリケーションと LP64 ライブラリーをリンクすると、予測できない結果や誤出力が発生する場合があります。

ILP64 用のコーディング

ILP64 インターフェイスを使用していない場合、既存コードを変更する必要はありません。

ILP64 へ変更したり、ILP64 用に新しいコードを記述する場合は、インテル® MKL 関数とサブルーチンのパラメーターに適切な型を使用してください。

整数型

Fortran

C/C++

32 ビット整数

INTEGER*4 または
INTEGER(KIND=4)

int

ILP64/LP64 のユニバーサル整数:

  • 64 ビット (ILP64 の場合)

  • 32 ビット (その他の場合)

INTEGER
KIND の指定なし

MKL_INT

ILP64/LP64 のユニバーサル整数:

  • 64 ビット整数

INTEGER*8 または
INTEGER(KIND=8)

MKL_INT64

ILP64/LP64 の FFT インターフェイス整数:

INTEGER
KIND の指定なし

MKL_LONG

インテル® MKL インクルード・ファイルの参照

『インテル® MKL リファレンス・マニュアル』では、ILP64 で 64 ビットになる整数パラメーターと 32 ビットのままの整数パラメーターは説明されていません。 ILP64 インターフェイスの詳細は、インクルード・ファイル、サンプル、およびテストを参照してください。

Fortran インターフェイスのみをサポートする一部の関数ドメインでも、インクルード・ディレクトリーに C/C++ 用のヘッダーファイルが提供されます。これらの *.h ファイルを使用すると、C/C++ コードから Fortran バイナリー・インターフェイスが利用可能になります。 これらのファイルは、ILP64 の使用法を理解するために使用することもできます。

制限

すべてのインテル® MKL 関数ドメインは、以下の例外を除いて ILP64 プログラミングをサポートしています。

関連情報


このヘルプトピックについてのフィードバックを送信

© 2007 - 2010 Intel Corporation. 無断での引用、転載を禁じます。