New in 2022.11.0
New Features
- Added tools for easier customization of policies and backends for experimental dynamic selection feature, see
documentation for more details. - Simplified public submission API for experimental dynamic selection feature, removing
oneapi::dpl::experimental::selectand addingoneapi::dpl::experimental::try_submit. - Enabled list-initialization for algorithms. This aligns the API with C++26 but is supported for C++17 and above.
Fixed Issues
- Fixed
ranges::copy_ifto allow output ranges of any size. - Fixed a compilation error that occurs with device policies when calling
oneapi::dpl::reducemultiple times with
differing parameter types. - Removed the requirement that ranges passed to range-based algorithms support the subscipt operator. This did not
comply with the requirement of the C++ standard.
Known Issues and Limitations
New in This Release
ranges::copy_ifwith the output size smaller than the input size may lose performance on Intel's GPU devices.
Existing Issues
See oneDPL Guide for other restrictions and known limitations_.
unique_copy,set_union,set_intersection,set_difference,set_symmetric_difference
range algorithms require the output range to have sufficient size to hold all resulting elements.histogramalgorithm requires the output value type to be an integral type no larger than four bytes
when used with a device policy on hardware that does not support 64-bit atomic operations.- For
transform_exclusive_scanandexclusive_scanto run in-place (that is, with the same data
used for both input and destination) and with an execution policy ofunseqorpar_unseq,
it is required that the provided input and destination iterators are equality comparable.
Furthermore, the equality comparison of the input and destination iterator must evaluate to true.
If these conditions are not met, the result of these algorithm calls is undefined. - Incorrect results may be produced by
exclusive_scan,inclusive_scan,transform_exclusive_scan,
transform_inclusive_scan,exclusive_scan_by_segment,inclusive_scan_by_segment,reduce_by_segment
withunseqorpar_unseqpolicy when compiled by Intel® oneAPI DPC++/C++ Compiler 2024.1 or earlier
with-fiopenmp,-fiopenmp-simd,-qopenmp,-qopenmp-simdoptions on Linux.
To avoid the issue, pass-fopenmpor-fopenmp-simdoption instead.