Windows* で setvars.bat 設定ファイルを使用

setvars.bat スクリプトは、それぞれの oneAPI フォルダーにある <install-dir>\latest\env\vars.bat スクリプトを実行することで、インテル® oneAPI ツールキットで使用する環境変数を設定します。setvars.bat スクリプトを自動実行しないように Windows* システムを設定しない限り、新しいターミナルウィンドウを開くか Visual Studio*、Sublime Text*、またはそのほかの C/C++ エディターを起動するたびに setvars.bat スクリプトが実行されます。詳細は、システムの設定 (英語) を参照してください。

設定ファイルは、コンポーネント・ディレクトリー・レイアウト内の setvars.bat でのみ使用できます。統合ディレクトリー・レイアウトでは、設定ファイルをサポートしていない oneapi-vars.bat が使用されます。レイアウトの詳細については、Windows* で setvars および oneapi-vars スクリプトを使用するを参照してください。

次に設定ファイルを使用して環境変数を管理する方法を説明します。

バージョンと構成

一部のインテル® oneAPI ツールでは複数バージョンのインストールがサポートされます。複数バージョンをサポートするツールのディレクトリー構造は次のようになります(デフォルトのインストールを想定し、例としてコンパイラーを使用します)。

Program Files (x86)\\Intel\\oneAPI\\compiler\\ 
|-- 2021.1.1 
|-- 2021.2.0 
`-- latest -> 2021.2.0

以下に例を示します:

../../_images/env-setup-setvars-directories-win.png

すべてのツールには、そのコンポーネントの最新バージョンのインストール先を示す latest という名前のシンボリックリンクがあります。latest\env\ フォルダーにある vars.bat スクリプトは、 setvars.bat によって実行されます (デフォルト)。

必要に応じて、設定ファイルを使用して特定のディレクトリーを示すよう setvars.bat をカスタマイズできます。

–config パラメーター

最上位の setvars.bat スクリプトは、カスタム config.txt ファイルを指定する --config パラメーターを受け入れます。

<install-dir>\setvars.bat --config="path\to\your\config.txt"

設定ファイルは任意の名前にすることができます。複数の設定ファイルを作成して、さまざまな開発環境やテスト環境を設定できます。例えば、最新バージョンのライブラリーを古いバージョンのコンパイラーでテストしたいこともあります。そのような場合に、setvars 設定ファイルを使用して環境を管理できます。

設定ファイルの例

以下に簡単な設定ファイルの例を示します。

最新のコンポーネントをすべてロードしますが …

mkl=1.1 
dldt=exclude

除外するコンポーネントもあります …

default=exclude 
mkl=1.0 
ipp=latest

設定テキストファイルは次の要件に従う必要があります。

  • 改行で区切られたテキストファイル

  • 各行は、"key=value" のペアで構成されます

  • "key" は、oneAPI ディレクトリーの最上位セット (%ONEAPI_ROOT% ディレクトリーにあるフォルダー) 内のコンポーネント・フォルダーの名前です。同じ "key" が設定ファイルに複数定義されると、最後の "key" が優先され、それ以外は無視されます。

  • value” には、コンポーネント・ディレクトリーの最上位にあるバージョン・ディレクトリー名を指定します。これには、コンポーネント・ディレクトリーのレベルに存在する可能性があるショートカット (latest など) が含まれます。

    • または、"value""exclude" にできます。これは、名前付き key に、setvars.bat スクリプトによって実行される vars.bat スクリプトがないことを意味します。

"key=value" ペア "default=exclude" は特別なケースです。これは、設定ファイルに定義されているものを除き、それ以外のすべての env\vars.bat スクリプトの実行を除外します。以下に例を示します。

設定ファイルをさらにカスタマイズ

設定ファイルを使用して、特定のコンポーネントを除外したり、特定のバージョンを含めたり、特定のコンポーネントのバージョンのみを含めることができます。これには、設定ファイルの "default=exclude" 行を変更します。

デフォルトでは、setvars.bat は各 env\vars.bat スクリプトの latest バージョンを処理します。

例えば、2 つのバージョン(2021.1.1 と 2021.2.0)のインテル® oneAPI マス・カーネル・ライブラリー (oneMKL) がインストールされていると仮定します。Latest ショートカットは、インストールされている最新バージョンであるため 2021.2.0 フォルダーを指します。デフォルトで、 setvars.bat は、latest が指すフォルダーである mkl フォルダー 2021.2.0 の vars.bat スクリプトを実行します。

../../_images/env-setup-setvars-multi-version-win.png

図. 2 oneMKL の 2 つのバージョンの設定ファイル

特定のバージョンを指定

setvars.bat<install-dir>\mkl\2021.1.1\env\vars.bat スクリプトを実行するように指示するには、設定ファイルに mkl=2021.1.1 を追加します。

これには、setvars.bat に、mkl ディレクトリ内の 2021.1.1 バージョンフォルダーにある env\vars.bat スクリプトを実行するように指示します。インストールされている他のコンポーネントでは、setvars.bat は最新バージョンのフォルダーにある env\vars.bat スクリプトを実行 します。

特定のコンポーネントを除外

コンポーネントを除外する構文は次のようになります:

<key>=exclude

たとえば、インテル® インテグレーテッド・パフォーマンス・プリミティブ (インテル® IPP) を除外し、インテル® oneAPI マス・カーネル・ライブラリー (oneMKL) の 2021.1.1 バージョンを含めるには、次のようにします:

mkl=2021.1.1 
ipp=exclude

この例では:

  • setvars.bat は、oneMKL 2021.1.1 の env\vars.bat スクリプトを実行します

  • setvars.bat は、インテル® IPP の env\vars.bat スクリプトファイルを実行します

  • setvars.bat は、そのほかのコンポーネントの最新バージョンの env\vars.bat スクリプトを実行 します

特定のコンポーネントを含めます

特定のコンポーネントの env\vars.bat スクリプトを実行するには、最初にすべての env\vars.bat スクリプトの実行を除外する必要があります。その後、setvars.bat で実行するコンポーネントを追加し直します。次の行を定義して、すべてのコンポーネントの env\vars.bat スクリプトの実行を除外します:

default=exclude

例えば、setvars.bat が oneMKL とインテル® IPP コンポーネントの env\vars.bat スクリプトのみを実行するには、次の設定ファイルを使用します:

default=exclude 
mkl=2021.1.1 
ipp=latest

この例では:

  • setvars.bat は、oneMKL 2021.1.1 の env\vars.bat スクリプトを実行します

  • stvars.bat は、最新バージョンのインテル® IPP の env\vars.bat スクリプトを実行 します

  • setvars.bat は、そのほかのコンポーネントの env\vars.bat スクリプトを実行しません