-
-
Notifications
You must be signed in to change notification settings - Fork 436
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
Fix kokkos hpx nvcc compilation #6492
Fix kokkos hpx nvcc compilation #6492
Conversation
This prevents the function returning a function nvcc compilation error
This prevents nvcc trying to copy the receiver instead
Performance test reportHPX PerformanceComparison
Info
Comparison
Info
Comparison
Info
Explanation of Symbols
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
Coverage summary from CodacySee diff coverage on Codacy
Coverage variation details
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: Diff coverage details
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: See your quality gate settings Change summary preferencesCodacy will stop sending the deprecated coverage status from June 5th, 2024. Learn more |
Thanks @G-071! Just out of curiosity, could you check what your CMake configuration says about |
@msimberg I had deleted the build directory already, but upon rebuilding HPX and Kokkos the same way, the CMakeCache tells me No and Yes regarding those two:
and
|
With CUDA 12.3 nvcc does not outright crash anymore when compiling sender-receiver code and with #6452 the HPX sender-receiver examples compile and work again with nvcc after fixing some compilation errors.
The last remaining problem related to this was to compile the Kokkos HPX execution space (using sender-receivers internally) with nvcc: Here we still got a few compilation problems such as:
member_pack.hpp(143): error: function returning function is not allowed
split.hpp:289:38: error: use of deleted function ‘hpx::execution::experimental::detail::any_receiver<Ts>::any_receiver(const hpx::execution::experimental::detail::any_receiver<Ts>&) [with Ts = {}]’
This PR addresses these issues!
By itself, this PR is not quite enough to make the HPX execution space compile with nvcc, we still need one more change within Kokkos itself. However, this PR resolves all issues on the HPX side, the rest (some small template deduction stuff) will consequently be added as a Kokkos PR.
Pinging @msimberg as he came up with the solution, I was merely the one reporting the problem and testing the fixes!