Skip to content

[Algs] add reductions to python bindings#1240

Merged
tdavidcl merged 11 commits intoShamrock-code:mainfrom
tdavidcl:patch-2025-09-01-21-42
Sep 2, 2025
Merged

[Algs] add reductions to python bindings#1240
tdavidcl merged 11 commits intoShamrock-code:mainfrom
tdavidcl:patch-2025-09-01-21-42

Conversation

@tdavidcl
Copy link
Member

@tdavidcl tdavidcl commented Sep 1, 2025

No description provided.

@tdavidcl tdavidcl marked this pull request as ready for review September 2, 2025 09:41
@tdavidcl
Copy link
Member Author

tdavidcl commented Sep 2, 2025

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces reductions to the python bindings, including sum, min, and max operations. It also adds a benchmark for reduction sum and allows setting and getting the implementation of reduction algorithms. The changes include modifications to the C++ code to implement the reduction operations and expose them to Python, as well as adding a new Python script for benchmarking the performance of different reduction algorithms. Additionally, the test suite is expanded to include tests for the new reduction operations.

@github-actions
Copy link
Contributor

github-actions bot commented Sep 2, 2025

Workflow report

workflow report corresponding to commit 8451fae
Commiter email is timothee.davidcleris@proton.me
GitHub page artifact URL GitHub page artifact link (can expire)

Pre-commit check report

Pre-commit check: ✅

trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check for merge conflicts................................................Passed
check that executables have shebangs.....................................Passed
check that scripts with shebangs are executable..........................Passed
check for added large files..............................................Passed
check for case conflicts.................................................Passed
check for broken symlinks................................................Passed
check yaml...............................................................Passed
detect private key.......................................................Passed
No-tabs checker..........................................................Passed
Tabs remover.............................................................Passed
Validate GitHub Workflows................................................Passed
clang-format.............................................................Passed
black....................................................................Passed
ruff check...............................................................Passed
Check doxygen headers....................................................Passed
Check license headers....................................................Passed
Check #pragma once.......................................................Passed
Check SYCL #include......................................................Passed
No ssh in git submodules remote..........................................Passed

Test pipeline can run.

Clang-tidy diff report

No relevant changes found.
Well done!

You should now go back to your normal life and enjoy a hopefully sunny day while waiting for the review.

Doxygen diff with main

Removed warnings : 14
New warnings : 26
Warnings count : 7669 → 7681 (0.2%)

Detailed changes :
+ src/shamalgs/src/primitives/is_all_true.cpp:101: warning: Member is_all_true(sham::DeviceBuffer< u8 > &buf, u32 cnt) (function) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/is_all_true.cpp:101: warning: Member is_all_true(sham::DeviceBuffer< u8 > &buf, u32 cnt) (function) of namespace shamalgs::primitives is not documented.
- src/shamalgs/src/primitives/is_all_true.cpp:113: warning: no matching file member found for 
+ src/shamalgs/src/primitives/is_all_true.cpp:122: warning: no matching file member found for 
- src/shamalgs/src/primitives/is_all_true.cpp:68: warning: Member IS_ALL_TRUE_IMPL (enumeration) of namespace shamalgs::primitives is not documented.
- src/shamalgs/src/primitives/is_all_true.cpp:68: warning: Member IS_ALL_TRUE_IMPL (enumeration) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/is_all_true.cpp:69: warning: Member IS_ALL_TRUE_IMPL (enumeration) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/is_all_true.cpp:69: warning: Member IS_ALL_TRUE_IMPL (enumeration) of namespace shamalgs::primitives is not documented.
- src/shamalgs/src/primitives/is_all_true.cpp:69: warning: Member is_all_true_impl (variable) of namespace shamalgs::primitives is not documented.
- src/shamalgs/src/primitives/is_all_true.cpp:69: warning: Member is_all_true_impl (variable) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/is_all_true.cpp:70: warning: Member is_all_true_impl (variable) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/is_all_true.cpp:70: warning: Member is_all_true_impl (variable) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/is_all_true.cpp:72: warning: Member is_all_true_impl_map (variable) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/is_all_true.cpp:72: warning: Member is_all_true_impl_map (variable) of namespace shamalgs::primitives is not documented.
- src/shamalgs/src/primitives/is_all_true.cpp:92: warning: Member is_all_true(sham::DeviceBuffer< u8 > &buf, u32 cnt) (function) of namespace shamalgs::primitives is not documented.
- src/shamalgs/src/primitives/is_all_true.cpp:92: warning: Member is_all_true(sham::DeviceBuffer< u8 > &buf, u32 cnt) (function) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/reduction.cpp:31: warning: Member REDUCTION_IMPL (enumeration) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/reduction.cpp:31: warning: Member REDUCTION_IMPL (enumeration) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/reduction.cpp:38: warning: Member get_default_reduction_impl() (function) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/reduction.cpp:38: warning: Member get_default_reduction_impl() (function) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/reduction.cpp:46: warning: Member reduction_impl (variable) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/reduction.cpp:46: warning: Member reduction_impl (variable) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/reduction.cpp:50: warning: Member reduction_impl_map (variable) of namespace shamalgs::primitives is not documented.
+ src/shamalgs/src/primitives/reduction.cpp:50: warning: Member reduction_impl_map (variable) of namespace shamalgs::primitives is not documented.
- src/shambase/include/shambase/StlContainerConversion.hpp:25: warning: Member vector_from_set(const std::set< T > &in) (function) of namespace shambase is not documented.
- src/shambase/include/shambase/StlContainerConversion.hpp:25: warning: Member vector_from_set(const std::set< T > &in) (function) of namespace shambase is not documented.
+ src/shambase/include/shambase/StlContainerConversion.hpp:26: warning: Member vector_from_set(const std::set< T > &in) (function) of namespace shambase is not documented.
+ src/shambase/include/shambase/StlContainerConversion.hpp:26: warning: Member vector_from_set(const std::set< T > &in) (function) of namespace shambase is not documented.
- src/shambase/include/shambase/StlContainerConversion.hpp:34: warning: Member set_from_vector(const std::vector< T > &in) (function) of namespace shambase is not documented.
- src/shambase/include/shambase/StlContainerConversion.hpp:34: warning: Member set_from_vector(const std::vector< T > &in) (function) of namespace shambase is not documented.
+ src/shambase/include/shambase/StlContainerConversion.hpp:35: warning: Member set_from_vector(const std::vector< T > &in) (function) of namespace shambase is not documented.
+ src/shambase/include/shambase/StlContainerConversion.hpp:35: warning: Member set_from_vector(const std::vector< T > &in) (function) of namespace shambase is not documented.
+ src/shambase/include/shambase/StlContainerConversion.hpp:44: warning: Member keys_from_map(const std::unordered_map< K, T > &in) (function) of namespace shambase is not documented.
+ src/shambase/include/shambase/StlContainerConversion.hpp:44: warning: Member keys_from_map(const std::unordered_map< K, T > &in) (function) of namespace shambase is not documented.
- src/shampylib/src/pyShamalgs.cpp:28: warning: Member Register_pymod(shamalgslibinit) (function) of file pyShamalgs.cpp is not documented.
+ src/shampylib/src/pyShamalgs.cpp:29: warning: Member Register_pymod(shamalgslibinit) (function) of file pyShamalgs.cpp is not documented.

@tdavidcl tdavidcl merged commit a47667f into Shamrock-code:main Sep 2, 2025
48 checks passed
@tdavidcl tdavidcl deleted the patch-2025-09-01-21-42 branch September 2, 2025 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant