< 目次

コマンドライン・モードでカスタム動的リンク・ライブラリー・ビルダーを使用

カスタム 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.dllmkl_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 マニフェスト作成を管理します。

  • manifest=yes の場合、上記の name パラメーターで定義された名前とマニフェスト拡張子を持つマニフェスト・ファイルが作成されます。
  • manifest=no の場合、マニフェスト・ファイルは作成されません。
  • manifest=embed の場合、マニフェストは DLL に埋め込まれます。デフォルト値は embed です。

上記のパラメーターは、すべてオプションです。ただし、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

関連情報