インテル® oneAPI プログラミングの概要

oneAPI プログラミング・モデルは、複数のワークロード・ドメインにまたがる広範囲のパフォーマンス・ライブラリーを含む、ハードウェア・ターゲット全体で利用できる開発者向けツールの包括的かつ統合された資源を提供します。ライブラリーには、ターゲット・アーキテクチャーごとにカスタマイズされた関数が含まれているため、同じ関数呼び出しを使用して、サポートされるすべてのアーキテクチャーで最適なパフォーマンスを実現できます。

../_images/intro-oneapi-overview.jpg

図. 1 oneAPI プログラミング・モデル

上の図に示すように、oneAPI プログラミング・モデルを利用するアプリケーションは、CPU から FPGA まで複数のターゲット・ハードウェア・プラットフォームで実行できます。インテルは、一連のツールキットの一部として oneAPI 製品を提供しています。インテル® oneAPI ベース・ツールキットとインテル® HPC ツールキット、およびその他のツールキットは、特定の開発者のワークロード要件を満たす補完的なツールを備えています。例えば、インテル® oneAPI ベース・ツールキットには、インテル® oneAPI DPC++/C++ コンパイラー、インテル® DPC++ 互換性ツール、ライブラリー、および解析ツールが含まれます。

  • 既存の CUDA* コードを SYCL* に移行しようとする開発者は、インテル® DPC++ 互換性ツールを使用して、プロジェクトをインテル® oneAPI DPC++ コンパイラーでコンパイルする SYCL* に移行できます。

  • インテル® oneAPI DPC++/C++ コンパイラーは、アクセラレーターをターゲットとするコードのダイレクト・プログラミングをサポートします。ダイレクト・プログラミングは、ユーザーコードで使用されるアルゴリズムで API が利用できない場合にパフォーマンスを向上するコーディング手法です。CPU と GPU ターゲット向けにはオンラインとオフラインコンパイルがサポートされ、FPGA ターゲット向けにはオフラインコンパイルのみがサポートされます。

  • API ベースのプログラミングは、最適化済みのライブラリー・セットによりサポートされます。oneAPI 製品で提供されるライブラリー関数は、サポートされるターゲット・アーキテクチャー向けに事前チューニングされているため、開発者の介在は必要ありません。例えば、インテル® oneAPI マス・カーネル・ライブラリー の BLAS ルーチンは、CPU ターゲットだけでなく GPU ターゲット向けにも最適化されています。

  • また、コンパイルされた SYCL* アプリケーションは、インテル® VTune™ プロファイラーインテル® Advisor などのツールを使用して、パフォーマンス、安定性、電力効率の目標を達成するため、解析およびデバッグできます。

インテル® oneAPI ベース・ツールキットは、インテル® デベロッパー・ゾーン (英語) から無料でダウンロードできます。

インテル® Parallel Studio およびインテル® System Studio に精通しているユーザーは、インテル® HPC ツールキット (英語) に興味を持つかもしれません。