Skip to content

WIP - Dynamic Selection Custom Backend Support #2130

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 125 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
34d5f88
Deactivating policies beside RR for custom backend testing
egfefey Mar 14, 2025
c615e4a
default base + RR updates for default sycl backend
egfefey Mar 14, 2025
e8c0fb3
adding missed updated sycl_backend
egfefey Mar 14, 2025
a5b8b61
RFC Move histogram CPU backend implementation to Supported (#2015)
danhoeflinger Mar 14, 2025
ce7b687
updating fixed resource policy and test to use default sycl backend
egfefey Mar 17, 2025
d5cce9f
updating dynamic load policy to use default sycl backend
egfefey Mar 17, 2025
0044059
Move min/max XPU tests into XPU folder (#2119)
dmitriy-sobolev Mar 18, 2025
e4161bf
Correct deprecation syntax of oneapi::dpl::experimental::kt::esimd na…
mmichel11 Mar 18, 2025
cc7aba2
Stop using std::is_trivial (#2039)
akukanov Mar 18, 2025
8445939
Fix missing-field-initializers warning (#2125)
dmitriy-sobolev Mar 19, 2025
148d91f
Refactor argument list with an unused tag (#2122)
dmitriy-sobolev Mar 21, 2025
5f839ea
updating the auto_tune policy to use the default sycl backend
egfefey Mar 21, 2025
189a067
[oneDPL][ranges][tests] update macro _PSTL_LAMBDA_PTR_TO_MEMBER_WINDO…
MikeDvorskiy Mar 25, 2025
6d52d6e
[test] Fix spelling check error (#2143)
SergeyKopienko Mar 26, 2025
3cf4229
[test] Remove unused code from `struct test_copy_if` (#2144)
SergeyKopienko Mar 27, 2025
fb1bd87
[test] Remove `invoke_if()` function in tests (#2145)
SergeyKopienko Mar 27, 2025
a3f112b
[oneDPL] Remove `ExecutionPolicy` template param from internal oneDPL…
SergeyKopienko Mar 27, 2025
8be2be8
RFC for "Passed Directly" Customization Point (#1999)
danhoeflinger Mar 27, 2025
cc2f8b2
split submit into instument_before, function invocation and instrumen…
egfefey Mar 31, 2025
28a6c39
Comment/remove unused parameter `_ExecutionPolicy&& __exec` in some f…
SergeyKopienko Apr 2, 2025
c63f0bf
Update license (#2160)
emmanuel-ferdman Apr 2, 2025
e90b267
[RNG] Small refactoring of Philox engine implementation and updates i…
ElenaTyuleneva Apr 4, 2025
b34453d
Correct reduce-then-scan -O0 workaround behavior with different host …
mmichel11 Apr 6, 2025
1625f6a
Fix potential memory leak in __parallel_merge_submitter::operator() (…
SergeyKopienko Apr 8, 2025
7089ff2
Adding Dynamic Selection RFC (#2079)
vossmjp Apr 8, 2025
d2a9491
[Tests] Remove broken macro for msvc array swap (#2073)
danhoeflinger Apr 9, 2025
896e226
[oneDPL] Avoid some `auto` return types (#2168)
SergeyKopienko Apr 10, 2025
21b009b
Fix 'use after move' issue in a test (#2174)
dmitriy-sobolev Apr 10, 2025
4685b2f
Remove erroneously const scratch space (#2175)
danhoeflinger Apr 10, 2025
eeaa84c
[oneDPL] Removal `ExecutionPolicy` template parameter from sycl utili…
SergeyKopienko Apr 10, 2025
2298615
Enable vectorization of reverse iterators in SYCL backend parallel-fo…
mmichel11 Apr 10, 2025
ae029ed
Fix philox_test.pass (#2178)
dmitriy-sobolev Apr 11, 2025
1c36346
[oneDPL] Removal `ExecutionPolicy` template parameter from `brick`s (…
SergeyKopienko Apr 14, 2025
9dccbe9
[tests] Update _PSTL_TEST_LATEST_INTEL_LLVM_COMPILER macro to 2025020…
SergeyKopienko Apr 14, 2025
ce5fc81
[oneDPL] Define the amount of results in `__result_and_scratch_storag…
SergeyKopienko Apr 14, 2025
fc6bb4f
Fix example CMakes, add build+run into CI (#2176)
danhoeflinger Apr 14, 2025
6b0b97e
Replacing CPATH usage with CPLUS_INCLUDE_PATH (#2183)
timmiesmith Apr 15, 2025
1e2318b
[tests] Fix predicate in test_adjacent_difference (#2185)
SergeyKopienko Apr 15, 2025
b2441dd
[oneDPL] Replacement of internal `lambda` in `oneDPL` code by functio…
SergeyKopienko Apr 15, 2025
5d12f4d
[oneDPL] Fix incorrect return type in the `__pattern_swap` function f…
SergeyKopienko Apr 16, 2025
269c39e
Update a link to oneAPI specification (#2186)
dmitriy-sobolev Apr 16, 2025
5387709
[oneDPL] Fix double type definition in `__parallel_transform_reduce_w…
SergeyKopienko Apr 17, 2025
14c97e0
[oneDPL] Removal `ExecutionPolicy` from submitters and etc. stuff (#2…
SergeyKopienko Apr 17, 2025
5b78009
Fix warning for histogram (#2195)
danhoeflinger Apr 17, 2025
6ec6be1
updating the backend traits with a scratch space for selection
egfefey Apr 17, 2025
1a0c620
warning fix from previous push
egfefey Apr 17, 2025
87ad0a6
[oneDPL] Revert: Removal ExecutionPolicy from submitters and etc. stu…
SergeyKopienko Apr 17, 2025
19bc099
[oneDPL] Remove some duplicated structures (#2200)
SergeyKopienko Apr 19, 2025
bf93a22
Fix naming and namespaces for scan_by_segment (#2201)
danhoeflinger Apr 21, 2025
21b8354
Update ICPX/oneTBB links in the CI (#2203)
dmitriy-sobolev Apr 22, 2025
0ec109c
[oneDPL] Fix an error in __one_group_submitter (#2194)
SergeyKopienko Apr 25, 2025
390204b
[oneDPL] Removal `ExecutionPolicy` from submitters and etc. stuff (#…
SergeyKopienko Apr 29, 2025
0703cf3
Fix segmented scans: remove extra template parameter (#2213)
dmitriy-sobolev Apr 30, 2025
81f22d3
Resolve ambiguous return in `__red_by_seg_op` in SYCL backend (#2206)
mmichel11 May 1, 2025
17c1d90
Restore execution policy at mid-level (algorithm_impl) (#2216)
dmitriy-sobolev May 1, 2025
a037a98
Fix a compile error with mismatching types in std::min (#2217)
dmitriy-sobolev May 1, 2025
79abfda
Fix warning: unused parameter (#2218)
dmitriy-sobolev May 2, 2025
a6461f7
[test] Update usages of TupleAddFunctor to TupleAddFunctor1 (#2221)
mmichel11 May 2, 2025
a5f94ba
[oneDPL][rfc][ranges] proposal for implementation of the second part …
MikeDvorskiy May 4, 2025
df22ab7
[onedpl][ranges] oneDPL range based API: M algorithms set implementat…
MikeDvorskiy May 5, 2025
a414da0
Set Algorithms Performance Improvements (#2147)
danhoeflinger May 5, 2025
9dc9b19
[oneDPL] Fix early memory deallocation in algorithm implementations (…
SergeyKopienko May 5, 2025
23a8b42
Refactor parallel for brick functors in the SYCL backend (#2165)
mmichel11 May 5, 2025
48717e3
Indirectly Device Accessible Iterator Trait and ADL Customization Poi…
danhoeflinger May 5, 2025
396b390
Fix scan kernel template (#2226)
dmitriy-sobolev May 6, 2025
5de4f98
[Test] Balanced path tests fix (#2228)
danhoeflinger May 6, 2025
2a0f2d5
Remove use of `std::array` in `reduce_by_segment` (#2227)
mmichel11 May 6, 2025
468739f
[Doc] Update the tested Standard C++ APIs for `libc++` (#2080)
SergeyKopienko May 6, 2025
ee95992
Update the ONEDPL_VERSION number for the coming release (#2215)
timmiesmith May 6, 2025
5ac7b66
Bugfix fix naming of ADL overload indirectly device accessible (#2230)
danhoeflinger May 6, 2025
56dd000
[Bugfix] Forwarding then use bug (#2231)
danhoeflinger May 7, 2025
0939f47
[oneDPL] Declare return type in the function `__future::__wait_and_ge…
SergeyKopienko May 7, 2025
59fa2a5
[oneDPL] Remove extra `__device_backend_tag` parameter from sycl-subm…
SergeyKopienko May 8, 2025
61b42db
Fix nanorange with gcc 15 (#2234)
dmitriy-sobolev May 8, 2025
680938f
Update the feature test macro for parallel range algorithms (#2236)
akukanov May 8, 2025
2663aa5
Fix warnings related to <ciso646> deprecation (#2237)
dmitriy-sobolev May 8, 2025
c5ff6b1
Remove duplicate `__pattern_min_element_reduce_fn` implementations (#…
mmichel11 May 9, 2025
043ba63
Resolving g++ warnings with `is_onedpl_indirectly_device_accessible` …
danhoeflinger May 9, 2025
2fbad9a
[tests] Log exceptions from get_test_queue() into std::cerr (#2239)
SergeyKopienko May 12, 2025
7a7c20e
Fix unused-parameter warning (policies and tags) (#2244)
dmitriy-sobolev May 12, 2025
722e9c3
Fix unused-parameter warnings (device backend) (#2245)
dmitriy-sobolev May 12, 2025
1b72bec
Fix unused-variable warning (set balanced path) (#2243)
dmitriy-sobolev May 12, 2025
1500a69
Fix __dpl_signbit to prevent double support requirement (#2251)
danhoeflinger May 12, 2025
5f7ca44
[Tests] Improve Dynamic Selection tests (#2229)
danhoeflinger May 12, 2025
0049294
Fix warnings in XPU tests (#2255)
dmitriy-sobolev May 13, 2025
e7bb240
Fix warnings in additional algorithms (#2256)
dmitriy-sobolev May 13, 2025
dea5640
Fix warnings in esimd KT (#2252)
dmitriy-sobolev May 13, 2025
4b85fad
CI: treat a subset of warnings as errors (#2248)
dmitriy-sobolev May 13, 2025
bff9c80
Fix warnings in the statistics tests (#2253)
dmitriy-sobolev May 13, 2025
ba917c3
Fix warnings in device selection (#2254)
dmitriy-sobolev May 13, 2025
5485d93
[oneDPL][ranges] usage subrange view instead of take and drop views (…
MikeDvorskiy May 14, 2025
aeeeb60
Fix unused-parameter warnings in device copyable test (#2265)
dmitriy-sobolev May 15, 2025
48370dc
Fix deprecated-copy warning in the library (#2257)
dmitriy-sobolev May 15, 2025
36c62a0
Fix warning: conditional expression is constant (#2263)
dmitriy-sobolev May 15, 2025
6d0b5a7
Fix macro-redefined warning, fix enablement of PSTL_USE_NONTEMPORAL_S…
dmitriy-sobolev May 15, 2025
4e4bba6
Fix warning in tests: declaration of x hides global declaration (#2264)
dmitriy-sobolev May 15, 2025
e6fa213
Fix various warnings in tests (#2266)
dmitriy-sobolev May 15, 2025
0d73f23
CI: remove fixed warnings from -Werror exclusions (#2271)
dmitriy-sobolev May 19, 2025
056e7e0
Fix warning: unary minus operator applied to unsigned type (#2268)
dmitriy-sobolev May 19, 2025
f8d16c4
Adding definition of DPLROOT variable to make the library consistent …
timmiesmith May 20, 2025
0411b61
adding missing condition for scratch space use
egfefey May 21, 2025
a2b7175
initial policy base plus round robin inheriting
egfefey May 21, 2025
a928d16
initial policy customization - policy base plus inherited round robin
egfefey May 21, 2025
3121538
[oneDPL][ranges][hetero] A hot fix for __pattern_adjacent_find; exper…
MikeDvorskiy May 21, 2025
6e517e7
fixed resource policy using the policy_base
egfefey May 21, 2025
9a65385
adding exception in select
egfefey May 21, 2025
6fa45c1
Release notes for 2022.9.0 release. (#2267)
timmiesmith May 21, 2025
22513bb
Deactivating policies beside RR for custom backend testing
egfefey Mar 14, 2025
fb965aa
default base + RR updates for default sycl backend
egfefey Mar 14, 2025
d442372
adding missed updated sycl_backend
egfefey Mar 14, 2025
8a8e8ff
updating fixed resource policy and test to use default sycl backend
egfefey Mar 17, 2025
d547a3e
updating dynamic load policy to use default sycl backend
egfefey Mar 17, 2025
f2573eb
updating the auto_tune policy to use the default sycl backend
egfefey Mar 21, 2025
0d26cbe
split submit into instument_before, function invocation and instrumen…
egfefey Mar 31, 2025
ef6e6e6
updating the backend traits with a scratch space for selection
egfefey Apr 17, 2025
9a62576
warning fix from previous push
egfefey Apr 17, 2025
b77e08a
adding missing condition for scratch space use
egfefey May 21, 2025
1c41842
initial policy base plus round robin inheriting
egfefey May 21, 2025
ad698d5
initial policy customization - policy base plus inherited round robin
egfefey May 21, 2025
6459df0
fixed resource policy using the policy_base
egfefey May 21, 2025
3ab72c9
adding exception in select
egfefey May 21, 2025
92a9ec6
Rebasing...
egfefey May 22, 2025
0d66c06
updates to enable non-sycl samples plus a traits check for wait
egfefey May 29, 2025
fa212c5
enabling fixed_resource_policy for non-sycl samples
egfefey May 29, 2025
b815741
initial update to enable dynamic_load_policy for non-sycl samples
egfefey Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 68 additions & 17 deletions .github/workflows/ci-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ env:
BUILD_CONCURRENCY: 4
MACOS_BUILD_CONCURRENCY: 3
TEST_TIMEOUT: 360
WINDOWS_TBB_DOWNLOAD_LINK: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18b6bbb1-7b63-4949-8488-ba2b14cebe12/intel-onetbb-2022.0.0.397_offline.exe
WINDOWS_ICPX_DOWNLOAD_LINK: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/90492fdd-9cdc-4423-b9d2-c35de9510fd2/intel-dpcpp-cpp-compiler-2025.0.4.21_offline.exe
WINDOWS_TBB_DOWNLOAD_LINK: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/bfa5ed88-0925-401c-b40d-5baaeb8d849c/intel-onetbb-2022.1.0.428_offline.exe
WINDOWS_ICPX_DOWNLOAD_LINK: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/05e81d1b-1010-4b7d-8c2e-a4f0882a9d7c/intel-dpcpp-cpp-compiler-2025.1.0.574_offline.exe
WINDOWS_ONEAPI_PATH: C:\Program Files (x86)\Intel\oneAPI
LINUX_ONEAPI_PATH: /opt/intel/oneapi

Expand Down Expand Up @@ -182,15 +182,39 @@ jobs:
fi

if [[ "${{ matrix.backend }}" == "dpcpp" ]]; then
# build and run the examples
for example_dir in ${GITHUB_WORKSPACE}/examples/*; do
# Skip the example if it is not a directory
if [[ -d "$example_dir" ]]; then
cd "$example_dir"
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} ..
make VERBOSE=1 |& tee build.log
ctest --timeout ${TEST_TIMEOUT} --output-on-failure |& tee ctest.log
fi
done

#set targets to just sycl iterator for dpcpp tests
make_targets="build-onedpl-sycl_iterator-tests build-onedpl-ranges-tests"
ctest_flags="-R (sycl_iterator_.*)|(std_ranges_.*)\.pass"
else
make_targets="build-onedpl-tests"
fi

cd ${GITHUB_WORKSPACE}
mkdir build && cd build
lscpu

warning_flags="-Wall -Werror -Wno-error=sign-compare"
if [[ "${{ matrix.cxx_compiler }}" != "g++" ]]; then
warning_flags="${warning_flags} -Wno-error=pass-failed"
fi
if [[ "${{ matrix.cxx_compiler }}" == "icpx" ]]; then
warning_flags="${warning_flags} -Wno-error=recommended-option"
fi

cmake -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DONEDPL_BACKEND=${{ matrix.backend }} -DONEDPL_DEVICE_TYPE=${{ matrix.device_type }} -DCMAKE_CXX_FLAGS="-Wall" ..
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DONEDPL_BACKEND=${{ matrix.backend }} -DONEDPL_DEVICE_TYPE=${{ matrix.device_type }} -DCMAKE_CXX_FLAGS="${warning_flags}" ..
make VERBOSE=1 -j${BUILD_CONCURRENCY} ${make_targets} |& tee build.log
ctest --timeout ${TEST_TIMEOUT} --output-on-failure ${ctest_flags} |& tee ctest.log

Expand Down Expand Up @@ -257,31 +281,55 @@ jobs:
if exist "%WINDOWS_ONEAPI_PATH%\setvars.bat" (
call "%WINDOWS_ONEAPI_PATH%\setvars.bat"
)
if "${{ matrix.cxx_compiler }}" == "cl" (
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
)

:: Set enable delayed expansion to allow proper resolution of errors in if statements and loops
SETLOCAL ENABLEDELAYEDEXPANSION

set exit_code=0
:: Preserve the code of an unsuccessful command if any.
:: By default, CMD shell only reports the error level of the final command.

:: cache the path to the current directory
set BASE_DIR=%cd%
if "${{ matrix.backend }}" == "dpcpp" (
:: Build and run examples
for /D %%i in (%GITHUB_WORKSPACE%\examples\*) do (
cd "%%i"
:: Get current directory name
mkdir build && cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} ..
if !errorlevel! neq 0 set exit_code=!errorlevel!
ninja -v > build_ex.log 2>&1
if !errorlevel! neq 0 set exit_code=!errorlevel!
ctest --timeout %TEST_TIMEOUT% --output-on-failure > ctest_ex.log 2>&1
if !errorlevel! neq 0 set exit_code=!errorlevel!
type ctest_ex.log
type build_ex.log
if !exit_code! neq 0 exit /b !exit_code!

)

set ninja_targets="build-onedpl-sycl_iterator-tests"
set ctest_flags=-R sycl_iterator_.*\.pass
) else (
set ninja_targets=build-onedpl-tests
)
mkdir build && cd build

:: Preserve the code of an unsuccessful command if any.
:: By default, CMD shell only reports the error level of the final command.
set exit_code=0
cd %BASE_DIR%
mkdir build && cd build

cmake -G "Ninja" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DONEDPL_BACKEND=${{ matrix.backend }} -DONEDPL_DEVICE_TYPE=${{ matrix.device_type }} -DCMAKE_CXX_FLAGS="/W4" .. || set exit_code=%errorlevel%
warning_flags="/W4 /We4005 /We4100 /We4101 /We4189 /We4505 /We4805"
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DONEDPL_BACKEND=${{ matrix.backend }} -DONEDPL_DEVICE_TYPE=${{ matrix.device_type }} -DCMAKE_CXX_FLAGS="%warning_flags%" ..
if !errorlevel! neq 0 set exit_code=!errorlevel!
ninja -j 2 -v %ninja_targets% > build.log 2>&1
if !errorlevel! neq 0 set exit_code=!errorlevel!
ctest --timeout %TEST_TIMEOUT% -C ${{ matrix.build_type }} --output-on-failure %ctest_flags% > ctest.log 2>&1
if !errorlevel! neq 0 set exit_code=!errorlevel!
type ctest.log

ninja -j 2 -v %ninja_targets% > build.log 2>&1 || set exit_code=%errorlevel%
:: Display the results after executing all tests because "tee" alternative is unavailable in CMD.
type build.log

ctest --timeout %TEST_TIMEOUT% -C ${{ matrix.build_type }} --output-on-failure %ctest_flags% > ctest.log 2>&1 || set exit_code=%errorlevel%
type ctest.log

:: Generate a summary
powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption" > os_name.txt
set /p os_name=<os_name.txt
Expand All @@ -300,7 +348,7 @@ jobs:
--compiler-version "%compiler_version%" ^
--cpu-model "%cpu_model%"
type summary.md > %GITHUB_STEP_SUMMARY%
exit /b %exit_code%
exit /b !exit_code!

macos-testing:
name: HOST,bknd=${{ matrix.backend }},cmplr=${{ matrix.cxx_compiler }},${{ matrix.os }},std=c++${{ matrix.std }},cfg=${{ matrix.build_type }}
Expand Down Expand Up @@ -329,8 +377,11 @@ jobs:
# -DCMAKE_POLICY_DEFAULT_CMP0074=NEW below is forced to make sure CMake uses <PackageName>_ROOT variables.
export OpenMP_ROOT=$(brew --prefix)/opt/libomp
mkdir build && cd build

warning_flags="-Wall -Werror -Wno-error=sign-compare -Wno-error=pass-failed"

cmake -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DONEDPL_BACKEND=${{ matrix.backend }} -DCMAKE_POLICY_DEFAULT_CMP0074=NEW -DCMAKE_CXX_FLAGS="-Wall" ..
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DONEDPL_BACKEND=${{ matrix.backend }} -DCMAKE_POLICY_DEFAULT_CMP0074=NEW -DCMAKE_CXX_FLAGS="${warning_flags}" ..
make VERBOSE=1 build-onedpl-tests -j${MACOS_BUILD_CONCURRENCY} 2>&1 | tee build.log
ctest --timeout ${TEST_TIMEOUT} --output-on-failure -E "${EXCLUDE_FROM_TESTING}" 2>&1 | tee ctest.log

Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# -------- CMake --------
build/*

examples/*/build
# -------- IDE --------
.vscode/*
.vs/*
out/*
CMakeSettings.json
*.bmp
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ oneDPL is part of the [UXL Foundation] and is an implementation of the
[oneAPI specification] for the oneDPL component.

[UXL Foundation]: http://www.uxlfoundation.org
[oneAPI specification]: https://spec.oneapi.io
[oneAPI specification]: https://oneapi-spec.uxlfoundation.org

oneDPL works with the Intel® oneAPI DPC++/C++ Compiler to provide high-productivity
APIs to developers, which can minimize Data Parallel C++ (DPC++) programming efforts
Expand All @@ -23,7 +23,7 @@ Visit the latest [Release Notes](https://github.com/uxlfoundation/oneDPL/blob/ma

## License
oneDPL is licensed under [Apache License Version 2.0 with LLVM exceptions](https://github.com/uxlfoundation/oneDPL/blob/main/LICENSE.txt).
Refer to the [LICENSE](licensing/LICENSE.txt) file for the full license text and copyright notice.
Refer to the [LICENSE](LICENSE.txt) file for the full license text and copyright notice.

## Security
See the [Intel Security Center](https://www.intel.com/content/www/us/en/security-center/default.html)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,13 @@ C++ Standard API libstdc++ libc++ MSVC
===================================== ========== ========== ==========
``std::swap`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
``std::lower_bound`` Tested Tested Tested
``std::lower_bound`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::upper_bound`` Tested Tested Tested
``std::upper_bound`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::binary_search`` Tested Tested Tested
``std::binary_search`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::equal_range`` Tested Tested Tested
``std::equal_range`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::tuple`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
Expand Down Expand Up @@ -225,7 +225,7 @@ C++ Standard API libstdc++ libc++ MSVC
------------------------------------- ---------- ---------- ----------
``std::ratio`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
``std::complex`` Tested Tested Tested
``std::complex`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::abs`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
Expand Down Expand Up @@ -257,7 +257,7 @@ C++ Standard API libstdc++ libc++ MSVC
------------------------------------- ---------- ---------- ----------
``std::acos`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
``std::atan`` Tested Tested Tested
``std::atan`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::atan2`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
Expand All @@ -271,7 +271,7 @@ C++ Standard API libstdc++ libc++ MSVC
------------------------------------- ---------- ---------- ----------
``std::acosh`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
``std::atanh`` Tested Tested Tested
``std::atanh`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::exp`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
Expand All @@ -297,7 +297,7 @@ C++ Standard API libstdc++ libc++ MSVC
------------------------------------- ---------- ---------- ----------
``std::logb`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
``std::pow`` Tested Tested Tested
``std::pow`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::sqrt`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
Expand Down Expand Up @@ -343,7 +343,7 @@ C++ Standard API libstdc++ libc++ MSVC
------------------------------------- ---------- ---------- ----------
``std::for_each`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
``std::find`` Tested Tested Tested
``std::find`` Tested Tested
------------------------------------- ---------- ---------- ----------
``std::find_if`` Tested Tested Tested
------------------------------------- ---------- ---------- ----------
Expand Down Expand Up @@ -450,15 +450,17 @@ C++ Standard API libstdc++ libc++ MSVC
``std::truncf`` Tested Tested Tested
===================================== ========== ========== ==========

These tests were done for the following versions of the standard C++ library:
The testing was conducted for the following versions of the C++ standard libraries, with the help of the listed compilers:

============================================= =============================================
libstdc++ (GNU) Provided with GCC* 8.4.0, GCC 9.3.0,
============================================= ============================================= ==================================
C++ Standard Library C++ Standard Library Version SYCL Compiler Used
============================================= ============================================= ==================================
libstdc++ (GNU) Provided with GCC* 8.4.0, GCC 9.3.0, Intel® oneAPI DPC++/C++ Compiler
GCC 11.4.0, GCC 13.2.0
--------------------------------------------- ---------------------------------------------
libc++ (LLVM) Provided with Clang* 11.0, Clang 14.0,
Clang 17.0, Clang 18.1
--------------------------------------------- ---------------------------------------------
Microsoft Visual C++* (MSVC) Standard Library Provided with Microsoft Visual Studio 2019
--------------------------------------------- --------------------------------------------- ----------------------------------
Microsoft Visual C++* (MSVC) Standard Library Provided with Microsoft Visual Studio 2019 Intel® oneAPI DPC++/C++ Compiler
and Microsoft Visual Studio 2022.
============================================= =============================================
--------------------------------------------- --------------------------------------------- ----------------------------------
libc++ (LLVM) Provided with Clang* 18.1, Clang 19.1, AdaptiveCpp
Clang 20.1
============================================= ============================================= ==================================
2 changes: 1 addition & 1 deletion documentation/library_guide/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
author = 'Intel'

# The full version, including alpha/beta/rc tags
release = '2022.8.0'
release = '2022.9.0'

rst_epilog = """
.. include:: /variables.txt
Expand Down
3 changes: 3 additions & 0 deletions documentation/library_guide/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -177,5 +177,8 @@ Known Limitations
than ``2423.32`` (Rolling) and ``2350.61`` (LTS) is used.
See the `Release Types <https://dgpu-docs.intel.com/releases/releases.html>`_
to find information about the relevant Rolling and LTS releases.
* ``std::ranges::drop_view`` from libstdc++ version 10 may throw exceptions.
This can lead to a "SYCL kernel cannot use exceptions" compilation error
when it is used to pass data to a range-based algorithm with a device policy.

.. _`SYCL Specification`: https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html
1 change: 1 addition & 0 deletions documentation/library_guide/macros.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ Macro Macro values and the functionality
``ONEDPL_HAS_RANGE_ALGORITHMS`` Parallel range algorithms.

* ``202409L`` - see :ref:`available algorithms <range-algorithms-202409L>`.
* ``202505L`` - see :ref:`available algorithms <range-algorithms-202505L>`.
================================== ===============================================

Additional Macros
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,25 @@ If ``ONEDPL_HAS_RANGE_ALGORITHMS`` is defined to ``202409L`` or a greater value,
* ``copy_if``
* ``merge``

.. _range-algorithms-202505L:

If ``ONEDPL_HAS_RANGE_ALGORITHMS`` is defined to ``202505L`` or a greater value, the following algorithms are provided:

* ``fill``
* ``move``
* ``replace``
* ``replace_if``
* ``remove``
* ``remove_if``
* ``mismatch``
* ``minmax_element``
* ``minmax``
* ``min``
* ``max``
* ``find_first_of``
* ``find_end``
* ``is_sorted_until``

Usage Example for Parallel Range Algorithms
-------------------------------------------

Expand Down
Loading
Loading