Skip to content

oneDPL 2022.11.0 release

Latest

Choose a tag to compare

@timmiesmith timmiesmith released this 27 Dec 16:26
1a9da9f

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::select and adding oneapi::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_if to allow output ranges of any size.
  • Fixed a compilation error that occurs with device policies when calling oneapi::dpl::reduce multiple 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_if with 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.
  • histogram algorithm 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_scan and exclusive_scan to run in-place (that is, with the same data
    used for both input and destination) and with an execution policy of unseq or par_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
    with unseq or par_unseq policy when compiled by Intel® oneAPI DPC++/C++ Compiler 2024.1 or earlier
    with -fiopenmp, -fiopenmp-simd, -qopenmp, -qopenmp-simd options on Linux.
    To avoid the issue, pass -fopenmp or -fopenmp-simd option instead.