インテル® oneAPI DPC++ ライブラリー (インテル® oneDPL) 概要

並列 API は、「C++ 標準実行ポリシー」を使用して、ホスト上での並列処理を有効にします。

インテル® oneAPI DPC++ ライブラリー (インテル® oneDPL) は、「oneDPL 仕様」 (英語) に従って実装されます。

ヘテロジニアスをサポートするため、インテル® oneDPL はデータ並列 C++ (DPC++) API と連携して動作します。詳細は、「DPC++ 仕様」 (英語) を参照してください。

はじめに

インテル® oneAPI DPC++ ライブラリー (インテル® oneDPL) の「リリースノート」 (英語) の次のセクションを確認します。

インテル® oneDPL を使用するには、インテル® oneAPI ベース・ツールキット (ベースキット) (英語) をインストールします。

すべてのインテル® oneDPL ヘッダーファイルは、oneapi/dpl ディレクトリーにあります。インテル® oneDPL API を使用するには、ソースコードの対応するヘッダーに #include <oneapi/dpl/…> ディレクティブをインクルードします。インテル® oneDPL のほとんどのクラスと関数は、oneapi::dpl 名前空間を使用します。

検証済みの C++ 標準 API を使用するには、対応する C++ 標準ヘッダーファイルをインクルードして、std 名前空間を使用する必要があります。

必要条件

インテル® oneDPL 2021.6 以降でサポートされる C++ 標準の最小バージョンは C++17 です。つまり、インテル® oneDPL を使用するには、C++17 以降に対応したコンパイラーが必要です。一部の API は古いバージョンの C++ 標準で動作する場合がありますが、動作は保証されていません。

C++ 標準ポリシーで並列 API を呼び出すには、次のソフトウェアをインストールする必要があります。

並列バックエンドについては、「実行ポリシー」を参照してください。

DPC++ 標準ポリシーで並列 API を使用するには、次のソフトウェアをインストールする必要があります。

制約事項

DPC++ 実行ポリシーで呼び出す場合、インテル® oneDPL アルゴリズムは、以下のような DPC++ と同じ制限を適用します (詳細は DPC++ 仕様と SYCL* 仕様を参照)。

既知の制限

インテル® oneDPL を使用したコードのビルド

以下の手順を使用して、インテル® oneDPL でコードをビルドします。

  1. インテル® oneAPI DPC++/C++ コンパイラーでビルドする場合、詳細は「インテル® oneAPI DPC++/C++ コンパイラー導入ガイド」 (英語) を参照してください。

  2. インテル® oneDPL とインテル® oneTBB の環境変数を設定します。

  3. デバイス・ポリシー・オブジェクトの名前を明示的に指定しない場合は、-fsycl-unnamed-lambda オプションを追加します。

以下は、Linux*上でインテル® oneDPL 並列アルゴリズムを含むコードをコンパイルするためのコマンドラインの例です (コードによっては [] 内のパラメーターは不要な場合があります)。

dpcpp [-fsycl-unnamed-lambda] test.cpp [-ltbb|-fopenmp] -o test