Linux* で setvars.sh 設定ファイルを使用

2024.0 リリース以降、インテル® oneAPI ツールキットおよびコンポーネントでは macOS* がサポートされなくなりました。oneAPI スレッディング・ビルディング・ブロック (oneTBB) やインテル®インプリシット SPMD プログラム・コンパイラーなど、インテルが主導するいくつかのオープンソース開発ツール・プロジェクトは、Apple シリコン上の macOS* を引き続きサポートします。将来的には、貢献者と協力して追加ツールへのサポート拡張を歓迎します。

Linux* で環境をするには、次の 2 つの方法があります:

  • このページで示すように、setvars.sh 設定ファイルを使用します します。

  • modulefiles を使用します

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

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

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

バージョンと構成

一部のインテル® oneAPI ツールでは複数バージョンのインストールがサポートされます。複数バージョンのサポートするツールのディレクトリー構造は次のようになります。

intel/oneapi/compiler/ 
|-- 2021.1.1 
|-- 2021.2.0 
`-- latest -> 2021.2.0

以下に例を示します:

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

図. 3 複数バージョンと環境変数

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

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

–config パラメーター

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

> source <install-dir>/setvars.sh --config="full/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.sh スクリプトによって source される env/vars.sh スクリプトがないことを意味します。

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

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

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

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

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

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

図. 4 oneMKL の 2 つのバージョンがインストールされている

特定のバージョンを指定

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

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

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

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

<key>=exclude

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

mkl=2021.1.1 ipp=exclude

この例では:

  • setvars.sh は oneMKL 2021.1.1 env/vars.sh スクリプトを source します

  • setvars.sh はインテル® IPP env/vars.sh スクリプトファイルを source しません

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

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

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

default=exclude

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

default=exclude 
mkl=2021.1.1 
ipp=latest

この例では:

  • setvars.sh は oneMKL 2021.1.1 の env/vars.sh スクリプトを source します

  • setvars.sh は、最新バージョンのインテル® IPP env/vars.sh スクリプトを使用します source します

  • setvars.sh は、そのほかのコンポーネントの env/vars.sh スクリプトを source しません