インテル® oneAPI DPC++/C++ コンパイラーにおける OpenMP* 機能と拡張のサポート

同カテゴリーの次の記事

インテル® oneAPI 最新情報

この記事は、インテル® デベロッパー・ゾーンに公開されている「OpenMP* Features and Extensions Supported in Intel® oneAPI DPC++/C++ Compiler」の日本語参考訳です。


インテル® oneAPI DPC++/C++ コンパイラー (dpcpp および icx) は、新しい LLVM ベースのコンパイラーであり、インテル® oneAPI ツールキットに含まれます。この記事では、インテル® oneAPI DPC++/C++ コンパイラーの各リリースでサポートされている OpenMP* 仕様の機能とインテルの OpenMP* 拡張機能について説明します。

インテル® Fortran コンパイラー (ifx) で実装されている言語および OpenMP* の機能に関する同様の情報はこちらを参照してください。

OpenMP* 4.5

OpenMP 4.5 のすべての機能はバージョン 2021.1 で実装されました。

OpenMP* 5.0

以下は、OpenMP* 5.0 の機能のサポート状況を示します。

機能 2021.1 2021.2 2021.3 説明
unified_shared_memoryrequires ディレクティブ
target variant dispatch (インテル拡張) をサポートする declare variant サブセット
target を囲まない teams
ループの正規化: != の許可
デフォルトの nonmonotonic スケジュール
SIMD 句の nontemporal および order(concurrent)
loop 構造
task/taskloop in_reduction
taskgroup task_reduction
allocate ディレクティブ、allocate/allocator
use_device_addr
C/C++ の入れ子の declare target 構造
master taskloop
parallel master
parallel master taskloop
master taskloop simd
parallel master taskloop simd
teams loop
atomic と flush の acq_relacquirerelease
atomic の relaxed および hint
条件付きの lastprivate
close マップタイプ修飾子
defaultmap 拡張
omp_get_supported_active_levels
omp_set_affinity_format
omp_get_affinity_format
omp_display_affinity
omp_capture_affinity
OMP_DISPLAY_AFFINITY
OMP_AFFINITY_FORMAT
omp_get_device_num
omp_pause_resource
omp_pause_resource_all
OMP_TARGET_OFFLOAD
OMPT サポート
scan × × ×
メタディレクティブ × × ×
in、out、および inout 依存関係タイプ
mutexinoutset および depobj 依存関係タイプ × × ×
detach × × ×
declare マッパ― × ×
taskwait の depend × × ×
depobj ディレクティブ × × ×
イテレーター × × ×
OMP_ALLOCATOR
OMP_DEBUG ホスト: サポート
デバイス: 未サポート
OMP_TOOL
OMP_TOOL_LIBRARIES
omp_control_tool
ホスト: サポート
デバイス: 最小限のサポート

OpenMP* 5.1

以下は、OpenMP* 5.1 の機能のサポート状況を示します。

機能 2021.1 2021.2 2021.3
dispatch × ×
dispatch をサポートする declare variant サブセット × ×
interop × ×
target の thread_limit
OMP_DISPLAY_ENV
OMP_NUM_TEAMS
OMP_TEAMS_THREAD_LIMIT

拡張

拡張 2021.1 2021.2 説明
target variant dispatch 構造 OMP5.1 で dispatch 構造に変更
統合共有メモリー (USM) ランタイム API: omp_target_alloc_host、omp_target_alloc_shared、omp_target_alloc_device OpenMP* 6.0 仕様の一部として提案されている機能

関連情報

OpenMP* 仕様

OpenMP* 仕様は openmp.org (英語) から入手できます。

インテルのドキュメント

インテル® oneAPI DPC++/C++ コンパイラー・デベロッパー・ガイドおよびリファレンス (英語)
インテル® oneAPI DPC++/C++ コンパイラー 2021.1 デベロッパー・ガイドおよびリファレンス日本語版
インテル® Fortran および C++ コンパイラー・クラシックで実装されている OpenMP* 機能


製品および性能に関する情報

1 性能は、使用状況、構成、その他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex/ (英語) を参照してください。

関連記事