本資料は、インテルのウェブサイトで公開されている「Intel® oneAPI DPC++/C++ Compiler Release Notes」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
このドキュメントでは、新機能、変更された機能、注意事項、および製品ドキュメントに記述されていない既知の問題について説明します。
このサイトから手順に従ってツールキットをダウンロードし、インストール手順に従ってツールキットをインストールします。
インテル® oneAPI DPC++/C++ コンパイラーの Altera FPGA (英語) の統合サポートは 2025.1 リリースで削除されました。Altera は、専用の FPGA ソフトウェア開発ツールにより FPGA サポートを引き続き提供します。既存のユーザーは、FPGA 開発をサポートし、APT、YUM/DNF、Zypper などの Linux パッケージ・マネージャー (英語) から利用できる、インテル® oneAPI DPC++/C++ コンパイラー 2025.0 リリースを引き続き使用できます。有効なサポートライセンスをお持ちのユーザーは、カスタマー・サポート・アカウントからインテル® oneAPI DPC++/C++ コンパイラー 2025.0 リリースにアクセスできます。
Altera 開発ツールへの移行に関する詳細とサポートについては、Altera の担当者までお問い合わせください。
メモリー・サニタイザーのサポート: CPU でサポートしているメモリー・サニタイザーの機能を、GPU を含むデバイス側に拡張しました。CPU とデバイスコードの両方でメモリーの問題を簡単に検出してトラブルシューティングできます。プラットフォーム間で包括的なメモリーエラーのチェックが保証され、アプリケーションの信頼性が向上します。
ccache の統合: コンパイラーは、C++ および SYCL コードのビルド時間を大幅に短縮する ccache (英語) をサポートしました。以前のコンパイルをキャッシュして再利用することで、反復処理が高速化し、ワークフローが効率化されます。
浮動小数点の精度の制御: 浮動小数点演算の精度とライブラリー呼び出しの制御をデバイスコードに拡張しました。
グラフィックス API との SYCL 相互運用性: DirectX 12 および Vulkan との SYCL 相互運用性の初期サポートを追加しました。開発者は、インテル® グラフィックス上で効率的なビジュアル・コンピューティング、メディア処理、レンダリング・アプリケーションを作成できます。サポートする画像形式とプラットフォームの詳細は、SYCL 相互運用性の制限付きサポートを参照してください。
SYCL コンパイラー
-fsycl-allow-device-image-dependencies
コマンドライン・オプションによるデバイスコードの動的リンクをサポートしました。Windows DLL 経由でデバイスコードをエクスポートできるようになり、OpenCL GPU バックエンドで AOT コンパイルイメージの動的リンクもサポートされます。-fsycl-allow-all-features-in-constexpr
オプションを指定して定数式の SYCL デバイスコードに対する制限を解除するメカニズムが実装されました。SYCL ライブラリー
execute_graph
により、SYCL グラフ機能を強化しました。clamp
API の追加、ext::intel::experimental::esimd::frem
関数のサポートが含まれます。sycl_ext_oneapi_enqueue_functions
(英語) をサポートしました。sycl_ext_oneapi_raw_kernel_arg
(英語) 拡張機能を実装しました。sycl_ext_oneapi_atomic16
(英語) 拡張機能を初期サポートしました。sycl_ext_oneapi_get_kernel_info
(英語) 拡張機能を実装しました。sycl_ext_oneapi_work_group_memory
(英語) 拡張機能を実装しました。sycl_ext_oneapi_reduction_properties
(英語) 拡張機能を実装しました。統合ランタイム
OpenMP
その他
-q[no-]unknown-option-as-warning
オプションをサポートしました。デフォルトの動作では、不明なオプションを指定するとエラーが発生します。SYCL コンパイラー
SYCL_EXTERNAL
属性が不要になりました。-Wsycl-strict
診断を含む残りの SYCL 2017/1.2.1 の互換性要素を削除しました。-Werror
ビルドエラーが発生するのを防ぐため、コンパイラーにより生成される統合ヘッダー/フッターに警告が表示されないようにしました。joint_matrix
拡張機能の基本的な機能を SPV_KHR_cooperative_matrix
拡張機能に組み込みました。-fsycl-device-obj
を指定した場合の不正な引数の診断を追加しました。[[sycl_device]]
や [[intel::device_indirectly_callable]]
などの属性を使用したときの、非外部関数/変数に対する誤解を招く診断を修正しました。-fsycl-link=early
などのホスト・オブジェクトをパッケージ化するように -fsycl-link=image
を更新しました。PATH
など) のみを使用するように -fsycl-host-compiler
を更新しました。[[intel::reqd_sub_group_size]]
は非推奨になりました。sycl::
名前空間では SYCL 2020 の構文を使用してください。atomicrmw
命令を使用した浮動小数点アトミックを有効にしました。SYCL ライブラリー
kernel_compiler
拡張機能でバイナリーキャッシュをサポートしました。SYCL_PI_TRACE
の代わりに SYCL_UR_TRACE
を使用するようにユーザーに通知するチェックを有効にしました。ur
から ur.call
に変更しました。command_graph::begin_recording
を繰り返し呼び出すとエラーになるようにしました。sycl_ext_oneapi_address_cast
の実装を仕様に準拠するようにしました。atomic_ref
コンストラクターを最適化しました。UR_LAYER_ASAN_OPTIONS
環境変数を使用したデバイス・サニタイザーのオプションの解析を改善しました。rsqrt
ESIMD API のパフォーマンスを向上しました。__SYCL_USE_VARIADIC_SPIRV_OCL_PRINTF__
は非推奨になりました。marray
と vec
のデータ型の制限を強化しました。sycl_ext_oneapi_address_cast
を改良しました。可能な場合は "dynamic" 動作を "static" に変更します。ext::intel::info::device::device_id
をレポートするように sycl-ls
を拡張しました。local_accessor
GDB プリンターを更新しました。block_load
/block_store
を使用するように ESIMD copy_to()
と copy_from()
を改良しました。clEnqueueNDRangeKernel
で指定されていない場合、OpenCL アダプターはプログラム IL で設定されたローカル・ワーク・サイズを使用するようになりました。SYCL_CACHE_TRACE
の用途を変更し、すべての SYCL プログラムキャッシュを細かくトレースできるようにしました。ZES_ENABLE_SYSMAN
を設定する必要はなくなりました。device_image_scope
プロパティーなしで device_global
のコピー構築が可能になりました。ur.call
XPTI 呼び出しストリームに何もサブスクライブされていない場合の不要なオーバーヘッドを回避するように UR ライブラリーを改良しました。libsycl-asan
に変更しました。multi_ptr
を非推奨から除外しました。info::device::atomic64
は非推奨になりました、代わりに sycl::aspect::atomic64
を使用してください。clGetKernelSubGroupInfo
の拡張バージョンを使用するように OpenCL アダプターを改良しました。online_compiler::compile
を拡張しました。その他
__attribute__((blocking))
のサポートを削除しました。この削除により、[[clang::nonblocking]], [[clang::nonallocating]], [[clang::blocking]]
および [[clang::allocating]]
関数の型属性とその GNU スタイルのバリアントのサポートが有効になります。SYCL
ext_oneapi_ballot_group
アスペクトを OpenCL CPU 2024.2 以降でサポートされている spir64_x86_64
ターゲットに追加しました。clang-linker-wrapper
でメモリーが使用後に解放される問題を修正しました。#include <sycl/sycl.hpp>
で SYCL ヘッダーを強制的にインクルードするようにしました。assert
の使用に関連する ESIMD のデバイスモジュール分割を修正しました。-fsycl-targets
で指定したターゲットに正しいアーキテクチャーが割り当てられるようになりました。-device_options
と -device
を一致させました。-device_options
に HEX 値を渡さないようにしました。-fsycl-targets
オプションが空のときにクラッシュする問題を修正しました。spir_func
に設定しました。AccessChain
の使用に対する回避策を追加しました。device_global
の統合フッターを修正しました。OpenMP
SYCL
Windows で CMake とコンパイラーの最新バージョン 2025.1 を使用して SYCL コードをコンパイルすると、次のようなエラーが発生する既知の問題があります。
CMake Error at C:/Program Files/CMake/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
Could NOT find IntelSYCL (missing: SYCL_LIBRARY)
Reason given by package: SYCL: It appears that the C:/Program Files (x86)/Intel/oneAPI/compiler/latest/bin/icx.exe does not support SYCL
回避策: C:\Program Files (x86)\Intel\oneAPI\compiler\latest\lib\cmake\IntelSYCL\IntelSYCLConfig.cmake ファイルに次の 2 つの変更を加えて更新する必要があります。
set(sycl_lib_suffix "7")
を set(sycl_lib_suffix "8")
に変更します。set(SYCL_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SYCL_FLAGS}")
をlist(JOIN SYCL_FLAGS " " SYCL_FLAGS_STRING)
message(DEBUG "SYCL_FLAGS_STRING: ${SYCL_FLAGS_STRING}")
set(SYCL_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SYCL_FLAGS_STRING}")
に置換します。exp
や tanh
など) は、Windows で一部のエッジケース入力に対して誤った結果を返すことがあります。この問題は SYCL 実装では修正されているため、残りの問題は MSVC にあると考えられます。sycl/test-e2e/VirtualFunctions
(英語) を参照してください。OpenMP
その他の既知の問題
sycl_ext_oneapi_bindless_images
(英語) 拡張機能のドキュメントと実装を更新しました。相互運用性構造体/関数の名前が interop
から external
キーワードに変更されました。sycl::ext::oneapi::experimental::is_property_key
を削除しました。-fpreview-breaking-changes
オプションで、ABI から一部の OSUtil::*
関数を削除しました。これらの関数は DSO の内部で使用されるもので、外部に公開する必要はありません。ext_oneapi_cl_profile
実装を ABI に依存しないようにしました。このコンパイラーのパッチリリースには、さまざまなバグ修正と品質向上が含まれています。
終了予定のサポート: インテル® oneAPI DPC++/C++ コンパイラーの Altera FPGA (英語) の統合サポートは非推奨になりました。2025年第 1 四半期のコンパイラー・リリースで削除される予定です。Altera は、専用の FPGA ソフトウェア開発ツールにより FPGA サポートを引き続き提供します。既存のユーザーは、FPGA 開発をサポートし、APT、YUM/DNF、Zypper などの Linux パッケージ・マネージャー (英語) から利用できる、インテル® oneAPI DPC++/C++ コンパイラー 2025.0 リリースを引き続き使用できます。有効なサポートライセンスをお持ちのユーザーは、カスタマー・サポート・アカウントからインテル® oneAPI DPC++/C++ コンパイラー 2025.0 リリースにアクセスできます。
Altera 開発ツールへの移行に関する詳細とサポートについては、Altera の担当者までお問い合わせください。
このパッチリリースには、次の新機能、品質向上およびバグ修正が含まれています。
[-x|-ax][SIERRAFOREST|GRANDRIDGE|GRANITERAPIDS|EMERALDRAPIDS| GRANITERAPIDS-D|ARROWLAKE|ARROWLAKE-S|LUNARLAKE|PANTHERLAKE| CLEARWATERFOREST] // Linux
[/arch:|/Qx|/Qax][SIERRAFOREST|GRANDRIDGE|GRANITERAPIDS|EMERALDRAPIDS| GRANITERAPIDS-D|ARROWLAKE|ARROWLAKE-S|LUNARLAKE|PANTHERLAKE| CLEARWATERFOREST] // Windows
主な新機能と機能強化
新機能
パフォーマンス・チューニングと機能強化
新機能
SYCL コンパイラー
--offload-new-driver
を使用した新しい SYCL オフロード・ドライバー・メカニズムを導入し、I/O と外部プロセスを削減することでインフラストラクチャーを改善し、リンク時間を短縮します。-fsycl-range-rounding
オプションを追加しました。さらに、試験的な -fsycl-exp-range-rounding
オプションは、すべての次元にわたって丸めを実行します。-fsycl-fp64-conv-emu
オプションを追加しました。kernel_bundle API
や AOT mode
などの一部の機能はまだサポートしていません。SYCL ライブラリー
sycl_ext_oneapi_prod
、sycl_ext_oneapi_profiling_tag
、sycl_ext_oneapi_forward_progress
、sycl_ext_oneapi_private_alloca
, syclext_codeplay_enqueue_native_command
、sycl_ext_oneapi_enqueue_functions
など、複数の拡張を実装しました。sycl_ext_oneapi_group_load_store
をサポートし、該当する場合はネイティブ・ハードウェア・ブロックの読み取り/書き込み機能を有効にします。sycl_ext_oneapi_free_function_kernels
拡張の初期サポートを導入しました。fma
を追加しました。sycl_ext_oneapi_group_sort
拡張の改善: 仕様のリビジョン 2 に合わせて sycl_ext_oneapi_group_sort
拡張の実装を更新しました。以前のバージョン 1 は使用できなくなり、コードの変更が必要になる場合があります。改善点
SYCL コンパイラー
truncf
、sinpif
、rsqrtf
、exp10f
、ceilf
、copysignf
、cospif
、fmaxf
、fminf
などの数学関数を新たにサポートしました。インテルの数学関数 (IMF) の統合を拡張し、インテルのデバイスのデバイスコードで ::rand
と ::srand
を利用できるようにしました。this
キャプチャーや、複数のターゲットが -fsycl-targets
オプションに渡されるとアーキテクチャー情報が欠落するシナリオのエラーメッセージを改善しました。-MD
オプションで依存関係を生成するのに必要なコマンドの数が削減され、ビルドプロセスが合理化されました。SYCL ライブラリー
sqrt
関数と rsqrt
関数をサポートしました。sycl_ext_oneapi_bindless_images
拡張を更新しました。executable_command_graph::update
によるグラフ全体の更新をサポートしました。<CL/sycl.hpp>
ヘッダーの使用に関する警告を追加しました。local_accessor::get_pointer
と local_accessor::get_multi_ptr
は、ホストで呼び出された場合、無効な例外をスローするようになりました。atomic_update
、block_load
、block_store
など) のオーバーロードを追加し、一部のテンプレート引数を省略できるようにしました。bfloat16
のベクトルを数学関数に渡せるようにするため、sycl_ext_oneapi_bfloat16_math_functions
を更新しました。sycl::vec::as
の最適化: sycl::detail::memcpy
の実装を最適化することで sycl::vec::as
のパフォーマンスを改善しました。sycl::vec::convert
サポート: vec<bfloat16, N>
との間の sycl::vec::convert
をサポートしました。marray<bool, n>::operator++/--
と accessor::get_multi_ptr
は非推奨となりました。sycl_ext_oneapi_free_function_queries
の最新リビジョンを実装しました。sycl-ls --verbose
を拡張し、UUID やアーキテクチャーなどの詳細なデバイス情報を出力できるようにしました。copy_to
と copy_from
ESIMD API でコンパイル時のプロパティーをサポートしました。printf
インターフェイス:: 浮動小数点値を出力する際の使いやすさを向上するため、experimental::printf
を非可変長インターフェイスに切り替えました。rdregion
および wrregion
API の検証を改善しました。vec
の変異スウィズル演算子とスカラー変換を更新しました。ext_intel_matrix
をサポートしました。load_2d
、store_2d
、prefetch_2d
ESIMD API の新しいオーバーロードを導入しました。shift_group_left
、permute_group_by_xor
など) をサポートしました。block_store
API の制限解除と slm_atomic_update
API の拡張により、fsub
と fadd
をサポートしました。image_device_handle
のデバイス間コピーを導入しました。libsycl.so
の起動オーバーヘッドを削減しました。問題の修正
SYCL コンパイラー
-fsycl-link-targets
オプションを使用すると、意図せずに追加のデバイス・コード・リンク・ステップがトリガーされる問題を修正しました。--save-temps
の使用時に AOT コンパイルで誤ったファイル拡張子が出力される問題を修正しました。-fsycl-link
を使用して別々にコンパイルおよびリンクを実行すると、リンクステップで「number of output files and targets should match in unbundling mode (アンバンドル・モードでは、出力ファイルとターゲットの数が一致する必要があります)」というエラーが発生する問題を修正しました。-fsycl-device-code-split=none
を使用して異なる reqd_work_group_size
属性を持つカーネルをコンパイルすると、work-group サイズの不一致に関するランタイム例外が発生する問題を修正しました。reqd_work_group_size
属性を 3 つ未満の引数で使用するとクラッシュする問題を解決しました。half
データ型で shift_group_[right|left]
、permute_by_xor
、および select_from_group
アルゴリズムを使用すると無効な値を返す問題を修正しました。SYCL ライブラリー
sycl::ext::oneapi::experimental::info::device
を照会すると、空のベクトルが返される代わりに例外が発生する状況を修正しました。-ffast-math
オプションでの esimd::atan
実装を修正しました。config_2d_mem_access
ESIMD クラスのコピー・コンストラクターの問題を修正しました。atomic64
アスペクトを使用する atomic_ref<T*>
が正しく検出されず、エラーが発生する問題を解決しました。ctanh
と cexp
がエッジケースで誤った値を返す問題を修正しました。build_options
を介して -Xs
オプションに渡された値がデバイス・コンパイラーに渡されない問題を修正しました。-fno-sycl-unnamed-lambda
の使用時にカーネルを名前付き関数として定義すると、コンパイルエラーが発生する問題を修正しました。windows.h
のマクロとの競合によって発生する -fpreview-breaking-changes
オプションのコンパイル問題を修正しました。sycl::vec<sycl::half, N>::operator[]
の実装でエラーを引き起こす厳密なエイリアシング違反を解決しました。local_accessor
引数が、特に Windows と -O0
最適化を指定した Linux でランタイムエラーになる問題に対処しました。ONEAPI_DEVICE_SELECTOR
に無効な値が渡されるとハングする問題を解決しました。marray
と vec
で不均一グループ組込み関数を使用する際のコンパイルの問題を解決しました。device_global
変数の型として使用される struct
に適用されたメモリー属性が無視される問題を解決しました。value_type
と vector_t
メンバー型エイリアスをスウィズルに追加しました。ONEAPI_DEVICE_SELECTOR
を持つ環境で、デフォルトで構築されたイベントで event::get_backend()
を呼び出すとクラッシュする問題を修正しました。--ignore-device-selectors
を指定した sycl-ls
が環境変数を適切に無視しない問題を修正しました。sycl::ext::oneapi::experimental::properties
の可変引数コンストラクターを拡張仕様に一致するように修正しました。load_2d
、store_2d
、prefetch_2d
などの ESIMD 関数を使用するとビルドプログラムに失敗する問題を修正しました。sycl_ext_oneapi_kernel_compiler_opencl
拡張の実装におけるヒープ・バッファー・オーバーフローに対処しました。sycl_ext_oneapi_graph
拡張がアクセサーのアクセスモードを無視し、不要なグラフエッジを作成する問題を修正しました。Level Zero
バックエンドのプロファイルでインオーダー・キューのタイムスタンプがゼロになったり、正しくない問題を修正しました。immediate_command_list
および no_immediate_command_list
) を持つ複数のキューを使用するとクラッシュする問題を解決しました。info::kernel_device_specific::work_group_size
が Level Zero
バックエンドのカーネルを無視してデバイス固有の制限を返す問題を修正しました。その他
SYCL コンパイラー
-fsycl
オプションを使用せず、リンクステップでは -fsycl
オプションを使用するコンパイルシナリオをサポートするため、Windows で以前に導入された変更を元に戻しました。コンパイラーはリンクステップでリンクする標準ライブラリーのバージョンを認識しないため、このシナリオはサポートされなくなりました。2025.0 での API/ABI に関する重大な変更
このリリースでは ABI に関して重大な変更があります。古いバージョンのツールチェーンでビルドされたアプリケーションを新しいバージョンの SYCL ランタイム・ライブラリーで実行するには、再コンパイルする必要があります。
std::string
やその他のオブジェクトを使用しないように、いくつかの関数とメソッドの ABI を更新し、C++11 より前の ABI でビルドされたアプリケーションで SYCL RT を使用できるようにしました。sycl_ext_oneapi_bindless_images
拡張の ext_oneapi_copy
API を変更し、Src
パラメーターで const 修飾型を使用できるようにしました。すでに非推奨となっている API のサポート廃止や、一部のクラスの実装をプレビュー実装へ切り替えるなど、API に関していくつかの重大な変更が行われました。これらの重大な変更の一部に対するコード修正の推奨事項は、こちら (英語) を参照してください。
sycl::abs
オーバーロードを削除しました。sycl::host_ptr
と sycl::device_ptr
を削除しました。queue::discard_or_return
を削除しました。sycl::make_unique_ptr
を削除しました。use_primary_context
プロパティーとメソッドを削除しました。runtime_error
、nd_range_error
、invalid_parameter_error
、device_error
、feature_not_supported
などの SYCL 1.2.1 例外サブクラスを削除しました。pi_mem_advice
を受け付ける queue::mem_advice
オーバーロードを削除しました。sycl::id -> sycl::range
変換演算子を削除しました。sycl_ext_oneapi_bindless_images
拡張の実装から非推奨の API を削除しました。sycl_ext_oneapi_bindless_images
拡張の試験的な destroy_external_semaphore
API の名前を release_external_semaphore
に変更しました。sycl_ext_oneapi_bindless_images
拡張で image_descriptor
構造体の image_channel_order
フィールドをチャネル数に置き換えました。parallel_for(range)
と parallel_for(nd_range)
に渡されるラムダ/関数の第 1 引数の制限を強化しました。sycl::vec
実装を切り替えました。vec<std::byte, N>
で使用できる数学演算を、std::byte
に適用可能なものに制限しました。sycl::exception
実装をプレビューバージョンに切り替えました。bfloat16
実装をプレビューバージョンに切り替えました。sycl::nd_item
実装をプレビューバージョンに切り替えました。<cmath>
と <complex>
を除外しました。SYCL_DEVICE_FILTER
環境変数のサポートを廃止しました。accessor::get_pointer
インターフェイスを更新して、global_ptr<value_type>
を返すようにしました。global_ptr<value_type>
は、アクセサーのデータ型が const 修飾されている場合、またはアクセサーが読み取り専用の場合、const 修飾できます。sycl_ext_oneapi_free_function_queries
に関連する非推奨の API を削除しました。slm_allocator
ESIMD API を試験的な名前空間に移動しました。usm_system_allocator
アスペクトを削除しました。sycl_ext_oneapi_root_group
機能から get_child_group
API を削除しました。simd_view
に関連するテンプレート引数を簡素化しました。ESIMD atomic_op::predec
を削除しました。sycl_ext_oneapi_group_sort
拡張のリビジョン 1 のインターフェイスを廃止しました。sycl_ext_oneapi_graph
拡張で command_graph::begin_recording
と command_graph::end_recording
の戻り型を void
から bool
に変更しました。コンパイラー・オプションに関する重大な変更
-fsycl-link-huge-device-code
、-fsycl-[add|link]-targets
、-foffload-static-lib
、-foffload-whole-static-lib
、-fsycl-disable-range-rounding
、-sycl-std
コンパイラー・オプションが削除されました。SYCL の既知の問題
.wait()
を明示的に呼び出すことです。この問題は次のリリースで修正される予定です。以下の例では、最初のカーネルが実行を完了する前に、2 番目のカーネルが実行を開始します。// q1 実行時間の長いタスク
sycl::event e = q1.single_task([=](){ /* ... */ });
// q2 タスク
q2.single_task(e, [=](){ /* ... */ });
opencl.dll
によって発生する可能性のある問題に対処する必要があります。古い opencl.dll
がシステム・ディレクトリーに存在するか、ライブラリー・パスで優先される場合、特定の OpenCL 3.0 機能の使用時に、SYCL 関連の問題を含む障害が発生したり、インテル® VTune™ プロファイラーやインテル® Advisor などのツールがクラッシュする可能性があります。推奨される解決策は、古い opencl.dll
を DPC++ パッケージにインストールされている opencl.dll
に置き換えることです。これを行うには、$oneAPI_Install_Folder\compiler\latest\bin
から新しい opencl.dll
をシステムフォルダーにコピーします。ほかのアプリケーションで必要になる場合に備えて、コピーする前に元の opencl.dll
を必ずバックアップしてください。sycl_ext_oneapi_free_function_kernels
には、次のような制限があります。SYCL_EXTERNAL
を SYCL_EXT_ONEAPI_FUNCTION_PROPERTY
と一緒に使用する必要があります。accessor
などの SYCL クラスにすることはできません。-fsycl-dead-args-optimization
(デフォルトで有効) を使用すると、エラーが発生する可能性があります。info::kernel::num_args
は、フリー関数カーネルに対して正しい結果を返しません。新しい OpenMP の機能
-fopenmp-offload-mandatory
コンパイラー・オプションのサポートにより、ホスト・フォールバック・コードの作成が省略され、デバイスへの OpenMP オフロードが失敗した場合にランタイムエラーが生成されます。device={arch(gen)}
が指定されている場合に、インテル® Xe2 アーキテクチャーの GPU が含まれるようにディスパッチ構造の declare
バリアントが更新されました。device_type(host|nohost|any)
節がサポートされました。if
節が追加されました。map(always : x)
は map(always, tofrom : x)
と同じです。ompx_sub_group_size
節のサポートにより、カーネルの SIMD 幅を設定できます。ompx_dyn_cgroup_mem
節のサポートにより、GPU オフロード向けに SLM で動的割り当てが可能になります。OMP_THREAD_LIMIT
、OMP_TEAMS_THREAD_LIMIT
、および OMP_NUM_THREADS
が拡張され、抽象名がサポートされます。例: OMP_THREAD_LIMIT=n_cores
。OMP_PLACES
の構文が拡張され、抽象名の境界とストライドがサポートされます。例: OMP_PLACES=threads(4:2)
。OMP_AVAILABLE_DEVICES
のホストランタイムがサポートされます。OMP_DEFAULT_DEVICE
が拡張され、特性によるデバイス選択がサポートされます。注目すべき OpenMP の修正
adjust_args
節を指定しない場合の内部コンパイラー・エラーを解決しました。for
ループと simd
ループの最適化の問題を修正しました。thread_limit
が指定されている場合、コンパイラーは target に指定されたものを常に使用するのではなく、それらの最小値を正しく選択するようになりました。declare mapper
を使用してマップされた変数の参照カウントが正しく減分されないオフロードランタイムの問題を解決しました。OpenMP の既知の問題
その他の既知の問題と制限事項
-march
の使用に関する詳細は、こちら (英語) を参照してください。
GCC13.1
GCC13.1
GCC14.1
Binutils 2.40
Binutils 2.41
Binutils 2.42
Glibc2.37
Glibc2.37
Glibc2.39
LLVM 16.0
LLVM 17.0
LLVM 18.0
ICX 2023.1
ICX 2023.2
ICX 2024.0
インテルの最適化機能は、インテルのコンパイラーまたはその他のインテル製品を対象としたものであり、他社製品に同等の最適化を行えないことがあります。
インテルのテクノロジーを使用するには、対応したハードウェア、ソフトウェア、またはサービスの有効化が必要となる場合があります。
絶対的なセキュリティーを提供できる製品またはコンポーネントはありません。
実際の費用と結果は異なる場合があります。
© Intel Corporation. Intel、インテル、Intel ロゴ、その他のインテルの名称やロゴは、Intel Corporation またはその子会社の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
✝開発コード名
本資料は、(明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず) いかなる知的財産権のライセンスも許諾するものではありません。
本資料で説明されている製品には、エラッタと呼ばれる設計上の不具合が含まれている可能性があり、公表されている仕様とは異なる動作をする場合があります。現在確認済みのエラッタについては、インテルまでお問い合わせください。
インテルは、明示されているか否かにかかわらず、いかなる保証もいたしません。ここにいう保証には、商品適格性、特定目的への適合性、および非侵害性の黙示の保証、ならびに履行の過程、取引の過程、または取引での使用から生じるあらゆる保証を含みますが、これらに限定されるわけではありません。
性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。