Intel® oneAPI DPC++ Library (oneDPL) Release Notes
###################################################
Overview
The Intel® oneAPI DPC++ Library (oneDPL) accompanies the Intel® oneAPI DPC++/C++ Compiler
and provides high-productivity APIs aimed to minimize programming efforts of C++ developers
creating efficient heterogeneous applications.
New in 2022.13.0
New Features
- Added more parallel range algorithms in
namespace oneapi::dpl::ranges:replace_copy,replace_copy_if,
remove_copy,remove_copy_if,find_last,find_last_if,find_last_if_not,starts_with,
ends_with,contains,contains_subrange,lexicographical_compare. - The sorting algorithms with device policies now can use radix sort with
thelessandgreatercomparators from thestd::rangesnamespace [#fnote1]_. - Implemented support for bounded output for range-based set algorithms with CPU policies,
with optional support for C++26 semantics of return values. - Improved performance of
sort,stable_sort,sort_by_key, andstable_sort_by_keywhen using
Radix sort [#fnote1]_ and device policies for key and/or value types larger than four bytes. - Improved performance of
inclusive_scan,exclusive_scan,transform_inclusive_scan, and
transform_exclusive_scanwith device policies for non-trivially-copyable value types on GPU devices. - Improved performance of the
histogram_evenandhistogram_rangealgorithms with device policies for a small
number of bins on GPU devices.
Known Issues and Limitations
Existing Issues
See oneDPL Guide for other restrictions and known limitations_.
- When used with device policies,
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. kt::gpu::radix_sort_by_keyfunction may produce incorrect results on RHEL 10 or earlier when run on
Intel® Data Center GPU Max Series with SYCL buffer passed as input data and no optimization flags passed
to the device compiler.