カスタム DLL をビルドするには、以下のコマンドを使用します。
nmake target [<オプション>]
以下の表は、target で設定可能な値と実行される内容を示しています:
値 |
コメント |
---|---|
libintel64 | ビルダーは、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) の静的インターフェイス、スレッド、およびコア・ライブラリーを使用して、インテル® 64 アーキテクチャー用のカスタム DLL をビルドします。 |
help | このコマンドはカスタム DLL ビルダーのヘルプを表示します |
<オプション> は、makefile で使用するマクロを定義するパラメーターのリストを表します。次の表はこれらのパラメーターを説明しています。
パラメーター [値] |
説明 |
---|---|
interface = {lp64|ilp64} | lp64 インターフェイスは 32 ビット整数タイプを使用し、 ilp64 インターフェイスは 64 ビット整数タイプを使用します。デフォルト値は lp64 です。 |
threading = {parallel|sequential} | インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) をマルチスレッド (parallel) モードとシーケンシャル (sequential) モードのどちらで使用するかを定義します。デフォルト値は parallel です。 |
parallel = {intel|tbb} | インテル OpenMP (intel) またはインテル® oneTBB (tbb) を使用するかどうかを指定します。デフォルト値は Intel です。 |
cluster = {yes|no} | カスタム共有オブジェクトのビルドにインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) クラスター・コンポーネント (BLACS、ScaLAPACK、CDFT) が必要かどうかを指定します。デフォルト値は no です。 |
blacs_mpi = {intelmpi|msmpi} | 使用する事前コンパイル済みのインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) BLACS ライブラリーを指定します。'cluster=no' の場合は無視されます。デフォルト値は intelmpi です。 |
blacs_name = <ライブラリー名> | 使用するカスタムバージョンのインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) BLACS ライブラリーの名前 (拡張子なし) を指定します。'cluster=no' の場合は無視されます。'blacs_name' が明示的に指定された場合、'blacs_mpi' は無視されます。デフォルト値は mkl_blacs_<blacs_mpi>_<interface> です。 |
mpi = <ライブラリー名> | カスタム DLL のビルドに使用される MPI ライブラリーの名前 (拡張子なし) を指定します。'cluster=no' の場合は無視されます。デフォルト値は impi です。 |
export = <ファイル名> | DLL に含めるエントリーポイント関数のリストを含むファイルの完全な名前を指定します。デフォルト名は user_example_list (拡張子なし) です。 |
name = <dll 名> | 作成する dll とインターフェイス・ライブラリーの名前を指定します。デフォルトでは、作成されるライブラリーの名前は mkl_custom.dll と mkl_custom.lib です。 |
xerbla = <エラーハンドラー> | ユーザーのエラーハンドラーを含むオブジェクト・ファイル <user_xerbla>.obj の名前を指定します。Makefile は、このエラーハンドラーをライブラリーに追加します。デフォルトのインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) エラーハンドラー xerbla の代わりに使用されます。このパラメーターを省略すると、標準インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) エラーハンドラー xerbla が使用されます。独自のエラーハンドラーの作成方法は、『インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) デベロッパー・リファレンス』の xerbla 関数の説明を参照してください。 |
MKLROOT = <mkl ディレクトリー> | カスタム DLL のビルドに使用されるインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) の場所を指定します。デフォルトでは、ビルダーはインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) のインストール・ディレクトリーを使用します。 |
uwd_compat = {yes|no} | OneCore.lib を使用して、ユニバーサル Windows* ドライバー (UWD) 互換のカスタム DLL をビルドします。Windows* SDK の推奨バージョンは 10.0.17134.0 以上です。 'uwd_compat'=yes の場合、デフォルトで threading = sequential、crt = ucrt.lib になります。 デフォルト値は uwd_compat は no です。 |
crt = <c ランタイム・ライブラリー> | カスタム DLL のビルドに使用される Microsoft C ランタイム・ライブラリーの名前を指定します。デフォルトで、ビルダーは msvcrt.lib を使用します。 |
manifest = {yes|no|embed} | カスタム DLL の Microsoft マニフェスト作成を管理します。
|
上記のパラメーターは、すべてオプションです。ただし、PATH および LIB 環境変数を適切に設定して、システム・ライブラリー、c-runtime (crt) ライブラリー、および link.exe を使用できる必要があります。これは次の方法で実行できます。
以下は、最も単純な場合の例です。
rem 環境変数を設定 call <oneAPI_dir>\setvars.bat rem カスタム dll ビルダースクリプトを実行 nmake libintel64
不足しているオプションにはデフォルト値が設定されます。このコマンドは、インテル® 64 アーキテクチャー・ベースのプロセッサー用の lp64 インターフェイスを備えた mkl_custom.dll および mkl_custom.lib ライブラリーを作成します。このコマンドは、user_example_list ファイルから関数のリストを取得し、ネイティブのインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) エラーハンドラー xerbla を使用します。
以下は、より複雑な場合の例です。
rem Visual Studio 環境変数を設定 call <script_dir>\vcvarsall.bat x64 rem カスタム dll ビルダースクリプトを実行 nmake libintel64 threading=sequential export=my_func_list name=mkl_small xerbla=my_xerbla.obj
このコマンドは、インテル® 64 アーキテクチャー・ベースのプロセッサー用に、oneMKL シーケンシャル・モードで mkl_small.dll および mkl_small.lib ライブラリーを作成します。my_func_list ファイルから関数のリストが取得され、ユーザーのエラーハンドラー my_xerbla.obj が使用されます。
UWD 互換のカスタム DLL をビルドするには、uwd_compat=yes オプションを使用します。この目的のために、ユニバーサル・システム (OneCore.lib) ライブラリーとユニバーサル c ランタイム (ucrt.lib) ライブラリー向けに別のセットを用意する必要があります。これらのライブラリーは、Windows* 10 SDK 10.0.17134.0 (バージョン 1803) 以降をダウンロードすることで入手できます。ライブラリーをパスに追加するには、適切なネイティブ・アーキテクチャーを使用して Visual Studio* 環境をソースするようにしてください。
この例では、特定の機能に my_func_list を使用して、lp64 インターフェイスと UWD 互換の 64 ビット・アーキテクチャー・ライブラリー mkl_uwd_compat.dll を作成する方法を示します:
rem Set Visual Studio* 環境変数を設定 rem LIB には、必要な OneCore.lib およびユニバーサル crt ライブラリーへのパスが必要です。 call <script_dir>\vcvarsall.bat x64 rem カスタム dll ビルダースクリプトを実行 nmake libintel64 interface=lp64 export=my_func_list uwd_compat=yes name=mkl_uwd_compat
製品および性能に関する情報 |
---|
性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。 改訂 #20201201 |