インテル® MKL 2018 デベロッパー・ガイド
カスタム DLL をビルドするには、以下のコマンドを使用します。
nmake target [<オプション>]
以下の表は、target の設定可能な値と実行される内容を示しています。
値 |
内容 |
---|---|
libia32 | スタティック・バージョンのインテル® MKL インターフェイス・ライブラリー、スレッド・ライブラリー、コア・ライブラリーを使用して、IA-32 アーキテクチャー用のカスタム DLL をビルドします。 |
libintel64 | スタティック・バージョンのインテル® MKL インターフェイス・ライブラリー、スレッド・ライブラリー、コア・ライブラリーを使用して、インテル® 64 アーキテクチャー用のカスタム DLL をビルドします。 |
dllia32 | シングル・ダイナミック・ライブラリー libmkl_rt.dll を使用して、IA-32 アーキテクチャー用のカスタム DLL をビルドします。 |
dllintel64 | シングル・ダイナミック・ライブラリー libmkl_rt.dll を使用して、インテル® 64 アーキテクチャー用のカスタム DLL をビルドします。 |
help | カスタム DLL ビルダーのヘルプを表示します。 |
<オプション> は、メイクファイルで使用するマクロを定義するパラメーターのリストを表します。以下の表で、これらのパラメーターを説明します。
パラメーター [値] |
説明 |
---|---|
interface | 使用するプログラミング・インターフェイスを定義します。値は以下のいずれかになります。
|
threading = {parallel|sequential} | インテル® MKL をマルチスレッド・モードとシーケンシャル・モードのどちらで使用するかを定義します。デフォルト値は parallel です。 |
export = <ファイル名> | DLL に含まれるエントリーポイント関数のリストを含むファイルの完全な名前を指定します。デフォルト名は、user_example_list (拡張子なし) です。 |
name = <dll の名前> | 作成する dll およびインターフェイス・ライブラリーの名前を指定します。デフォルトでは、作成するライブラリーの名前は mkl_custom.dll および mkl_custom.libです。 |
xerbla = <エラーハンドラー> | ユーザーのエラーハンドラーを含むオブジェクト・ファイル <user_xerbla>.obj の名前を指定します。メイクファイルは、このエラーハンドラーをライブラリーに追加します。デフォルトのインテル® MKL エラーハンドラー xerbla の代わりに使用されます。このパラメーターを省略すると、標準インテル® MKL エラーハンドラー xerbla が使用されます。独自のエラーハンドラーの開発方法は、『インテル® MKL デベロッパー・リファレンス』の xerbla 関数の説明を参照してください。IA-32 アーキテクチャーでは、オブジェクト・ファイルはインターフェイス・マクロ (cdecl または stdcall) で定義されたインターフェイスにする必要があります。 |
MKLROOT = <mkl ディレクトリー> | カスタム DLL のビルドに使用するインテル® MKL ライブラリーの場所を指定します。デフォルトでは、ビルダーはインテル® MKL インストール・ディレクトリーを使用します。 |
buf_lib | インテル® 64 アーキテクチャー・ベースのシステムのカスタム DLL における外部参照 __security_cookie の解決を管理します。 デフォルトでは、メイクファイルは Microsoft* SDK builds 1289 以降の bufferoverflowu.lib ライブラリーを使用します。このライブラリーは、外部参照 __security_cookie を解決します。 このライブラリーを使用しないようにするには、このパラメーターの値を空にします。このため、古い SDK を使用する場合は、buf_lib= に設定します。 注意buf_lib パラメーターの値は空に設定してください。パラメーターに正しくない値を設定すると、ビルダーでエラーが発生することがあります。 |
crt = <c ランタイム・ライブラリー> | カスタム DLL のビルドに使用する Microsoft* C ランタイム・ライブラリーの名前を指定します。デフォルトでは、ビルダーは msvcrt.lib を使用します。 |
manifest = {yes|no|embed} | カスタム DLL 用の Microsoft* マニフェストの作成を管理します。
デフォルトでは、ビルダーは manifest パラメーターを使用しません。 |
上記のすべてのパラメーターはオプションです。
最も簡単なコマンドは nmake ia32 (残りのパラメーターはデフォルト値) です。この場合、IA-32 アーキテクチャー・ベースのプロセッサー用の mkl_custom.dll および mkl_custom.lib ライブラリーが cdecl インターフェイスで作成されます。functions_list ファイルから関数のリストが取得され、標準インテル® MKL エラーハンドラー xerbla が使用されます。
以下は、より複雑な場合の例です。
nmake ia32 interface=stdcall export=my_func_list.txt name=mkl_smallxerbla=my_xerbla.obj
この場合、IA-32 アーキテクチャー・ベースのプロセッサー用の mkl_small.dll および mkl_small.lib ライブラリーが stdcall インターフェイスで作成されます。my_func_list.txt ファイルから関数のリストが取得され、ユーザーのエラーハンドラー my_xerbla.obj が使用されます。
インテル® 64 アーキテクチャー・ベースのプロセッサーの場合も処理はほぼ同様です。
最適化に関する注意事項 |
---|
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |