Skip to content

Really fix the maxwell perf regression this time#1920

Merged
ericniebler merged 2 commits intoNVIDIA:mainfrom
ericniebler:really-fix-the-maxwell-perf-regression-this-time
Mar 7, 2026
Merged

Really fix the maxwell perf regression this time#1920
ericniebler merged 2 commits intoNVIDIA:mainfrom
ericniebler:really-fix-the-maxwell-perf-regression-this-time

Conversation

@ericniebler
Copy link
Collaborator

@ericniebler ericniebler commented Mar 7, 2026

stream_domain::transform_sender was only accepting __tuple-based sender types like __sexpr. this PR generalizes stream_domain::transform_sender to accept anything that can be used to initialize a structured binding, to the best of the compiler's ability.

note: on gcc/clang we use the __builtin_structured_binding_size builtin. on other compilers, we recognize senders based on __tuple or std::tuple, or any type that has specialized STDEXEC::__structured_binding_size_v (in __sender_introspection.hpp) to a value other than -1.

if structured bindings can introduce a pack (C++26), then senders with an arbitrary number of children are supported. otherwise, the limit is fixed to 8 child senders.

@ericniebler ericniebler force-pushed the really-fix-the-maxwell-perf-regression-this-time branch 4 times, most recently from 0a204cf to 6347b9c Compare March 7, 2026 16:21
@ericniebler ericniebler force-pushed the really-fix-the-maxwell-perf-regression-this-time branch from 6347b9c to f5d7bcc Compare March 7, 2026 19:50
@ericniebler ericniebler merged commit e9a9e83 into NVIDIA:main Mar 7, 2026
43 of 44 checks passed
@ericniebler ericniebler deleted the really-fix-the-maxwell-perf-regression-this-time branch March 7, 2026 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant