インテル® MKL 2020 デベロッパー・ガイド

カスタム共有オブジェクト・ビルダー

カスタム共有オブジェクトをビルドするには、以下のコマンドを使用します。

make target [<オプション>]

以下の表は、target の設定可能な値と実行される内容を示しています。

内容

libia32

スタティック・バージョンのインテル® MKL インターフェイス・ライブラリー、スレッド・ライブラリー、コア・ライブラリーを使用して、IA-32 アーキテクチャー用のカスタム共有オブジェクトをビルドします。

libintel64

スタティック・バージョンのインテル® MKL インターフェイス・ライブラリー、スレッド・ライブラリー、コア・ライブラリーを使用して、インテル® 64 アーキテクチャー用のカスタム共有オブジェクトをビルドします。

soia32

シングル・ダイナミック・ライブラリー libmkl_rt.so を使用して、IA-32 アーキテクチャー用のカスタム共有オブジェクトをビルドします。

sointel64

シングル・ダイナミック・ライブラリー libmkl_rt.so を使用して、インテル® 64 アーキテクチャー用のカスタム共有オブジェクトをビルドします。

help

カスタム共有オブジェクト・ビルダーのヘルプを表示します。

<オプション> は、メイクファイルで使用するマクロを定義するパラメーターのリストを表します。以下の表で、これらのパラメーターを説明します。

パラメーター [値]

説明

interface = {lp64|ilp64}

インテル® 64 アーキテクチャーのプログラミング・インターフェイス (LP64 または ILP64) を定義します。

threading = {parallel|sequential}

インテル® MKL をマルチスレッド・モードとシーケンシャル・モードのどちらで使用するかを定義します。デフォルト値は parallel です。

cluster = {yes|no}

(libintel64 のみ) カスタム共有オブジェクトのビルドにインテル® MKL クラスター・コンポーネント (BLACS、ScaLAPACK、CDFT) が必要かどうかを指定します。デフォルト値は no です。

blacs_mpi = {intelmpi|mpich2|msmpi}

使用する事前ビルド済みのインテル® MKL BLACS ライブラリーを指定します。'cluster=no' の場合は無視されます。デフォルト値は intelmpi です。

blacs_name = <lib name>

使用するカスタムバージョンのインテル® MKL BLACS ライブラリーの名前 (拡張子なし) を指定します。'cluster=no' の場合は無視されます。'blacs_name' が明示的に指定された場合、'blacs_mpi' は無視されます。デフォルト値は mkl_blacs_<blacs_mpi>_<interface> です。

mpi = <lib name>

カスタム DLL のビルドに使用する MPI ライブラリーの名前 (拡張子なし) を指定します。'cluster=no' の場合は無視されます。デフォルト値は impi です。

export = <ファイル名>

共有オブジェクトに含まれるエントリーポイント関数のリストを含むファイルの完全な名前を指定します。デフォルト名は、user_example_list (拡張子なし) です。

name = <so の名前>

作成するライブラリーの名前を指定します。デフォルトでは、作成するライブラリーの名前は mkl_custom.so.です。

xerbla = <エラーハンドラー>

ユーザーのエラーハンドラーを含むオブジェクト・ファイル <user_xerbla>.o の名前を指定します。メイクファイルは、このエラーハンドラーをライブラリーに追加します。デフォルトのインテル® MKL エラーハンドラー xerbla の代わりに使用されます。このパラメーターを省略すると、標準インテル® MKL エラーハンドラー xerbla が使用されます。独自のエラーハンドラーの開発方法は、『インテル® MKL デベロッパー・リファレンス』の xerbla 関数の説明を参照してください。

MKLROOT = <mkl ディレクトリー>

カスタム共有オブジェクトのビルドに使用するインテル® MKL ライブラリーの場所を指定します。デフォルトでは、ビルダーはインテル® MKL インストール・ディレクトリーを使用します。

上記のすべてのパラメーターはオプションです。しかし、PATH 環境変数と LIB 環境変数を適切に設定して、システム・ライブラリー、C ランタイム (crt) ライブラリー、link.exe を利用可能にする必要があります。これは次の方法で行うことができます。

以下は、最も単純な場合の例です。

make ia32

省略したオプションはデフォルト値になります。この場合、mkl_custom.so ライブラリーが作成されます。user_list ファイルから関数のリストが取得され、標準インテル® MKL エラーハンドラー xerbla が使用されます。

以下は、より複雑な場合の例です。

make intel64 export=my_func_list.txt name=mkl_small xerbla=my_xerbla.o

この場合、mkl_small.so ライブラリーが作成されます。my_func_list.txt ファイルから関数のリストが取得され、ユーザーのエラーハンドラー my_xerbla.o が使用されます。

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804

関連情報