Skip to content

make the stream sender adaptor work with non-visitable senders - #5091

Merged
ericniebler merged 2 commits into
NVIDIA:mainfrom
ericniebler:stream-adapt-unknown-sender
Jun 30, 2025
Merged

make the stream sender adaptor work with non-visitable senders#5091
ericniebler merged 2 commits into
NVIDIA:mainfrom
ericniebler:stream-adapt-unknown-sender

Conversation

@ericniebler

Copy link
Copy Markdown
Contributor

Description

the stream scheduler works by adapting senders to the stream domain so that their operation states are in managed memory, and so that completion is executed on the device.

there are two types of senders: those that can be introspected and those that can't. if a sender can be introspected, it makes available its tag type. for instance, the sender just() has a tag type of just_t. if a sender cannot be introspected, it does not make a tag type available.

the stream sender adaptor is currently assuming that all senders are introspect-able. this is a mistake. this pr changes the stream sender adaptor to work with senders that cannot be introspected.

note: the test for this fix is currently on an if(false) branch because it uses starts_on, and starts_on is currently broken for the stream scheduler. a future pr will fix starts_on and enable this test.

Checklist

  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@copy-pr-bot

copy-pr-bot Bot commented Jun 29, 2025

Copy link
Copy Markdown
Contributor

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Progress in CCCL Jun 29, 2025
@ericniebler

Copy link
Copy Markdown
Contributor Author

/ok to test 4878a3c

@github-actions

Copy link
Copy Markdown
Contributor
🟩 CI finished in 20m 37s: Pass: 100%/32 | Total: 3h 29m | Avg: 6m 32s | Max: 13m 40s | Hits: 90%/16106
  • 🟩 cudax: Pass: 100%/28 | Total: 3h 14m | Avg: 6m 57s | Max: 13m 40s | Hits: 90%/16106

    🟩 cpu
      🟩 amd64              Pass: 100%/24  | Total:  2h 56m | Avg:  7m 21s | Max: 13m 40s | Hits:  90%/13634 
      🟩 arm64              Pass: 100%/4   | Total: 18m 17s | Avg:  4m 34s | Max:  4m 58s | Hits:  91%/2472  
    🟩 ctk
      🟩 12.0               Pass: 100%/3   | Total: 22m 05s | Avg:  7m 21s | Max: 13m 06s | Hits:  89%/1553  
      🟩 12.9               Pass: 100%/25  | Total:  2h 52m | Avg:  6m 54s | Max: 13m 40s | Hits:  91%/14553 
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/3   | Total: 22m 05s | Avg:  7m 21s | Max: 13m 06s | Hits:  89%/1553  
      🟩 nvcc12.9           Pass: 100%/25  | Total:  2h 52m | Avg:  6m 54s | Max: 13m 40s | Hits:  91%/14553 
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/28  | Total:  3h 14m | Avg:  6m 57s | Max: 13m 40s | Hits:  90%/16106 
    🟩 cxx
      🟩 Clang14            Pass: 100%/2   | Total:  9m 17s | Avg:  4m 38s | Max:  4m 56s | Hits:  91%/1238  
      🟩 Clang15            Pass: 100%/1   | Total:  4m 46s | Avg:  4m 46s | Max:  4m 46s | Hits:  91%/618   
      🟩 Clang16            Pass: 100%/1   | Total:  4m 48s | Avg:  4m 48s | Max:  4m 48s | Hits:  91%/618   
      🟩 Clang17            Pass: 100%/1   | Total:  4m 36s | Avg:  4m 36s | Max:  4m 36s | Hits:  91%/618   
      🟩 Clang18            Pass: 100%/1   | Total:  4m 49s | Avg:  4m 49s | Max:  4m 49s | Hits:  91%/618   
      🟩 Clang19            Pass: 100%/4   | Total: 21m 54s | Avg:  5m 28s | Max:  8m 25s | Hits:  93%/2472  
      🟩 GCC10              Pass: 100%/2   | Total:  9m 51s | Avg:  4m 55s | Max:  5m 13s | Hits:  91%/1238  
      🟩 GCC11              Pass: 100%/1   | Total:  5m 15s | Avg:  5m 15s | Max:  5m 15s | Hits:  91%/618   
      🟩 GCC12              Pass: 100%/1   | Total:  6m 51s | Avg:  6m 51s | Max:  6m 51s | Hits:  89%/618   
      🟩 GCC13              Pass: 100%/8   | Total: 51m 03s | Avg:  6m 22s | Max: 11m 25s | Hits:  93%/4944  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 13m 06s | Avg: 13m 06s | Max: 13m 06s | Hits:  79%/317   
      🟩 MSVC14.43          Pass: 100%/3   | Total: 40m 21s | Avg: 13m 27s | Max: 13m 40s | Hits:  77%/957   
      🟩 NVHPC25.5          Pass: 100%/2   | Total: 18m 05s | Avg:  9m 02s | Max:  9m 23s | Hits:  88%/1232  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/10  | Total: 50m 10s | Avg:  5m 01s | Max:  8m 25s | Hits:  92%/6182  
      🟩 GCC                Pass: 100%/12  | Total:  1h 13m | Avg:  6m 05s | Max: 11m 25s | Hits:  92%/7418  
      🟩 MSVC               Pass: 100%/4   | Total: 53m 27s | Avg: 13m 21s | Max: 13m 40s | Hits:  78%/1274  
      🟩 NVHPC              Pass: 100%/2   | Total: 18m 05s | Avg:  9m 02s | Max:  9m 23s | Hits:  88%/1232  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 14m 10s | Avg:  7m 05s | Max:  9m 59s | Hits:  95%/1236  
      🟩 rtx2080            Pass: 100%/26  | Total:  3h 00m | Avg:  6m 56s | Max: 13m 40s | Hits:  90%/14870 
    🟩 jobs
      🟩 Build              Pass: 100%/25  | Total:  2h 44m | Avg:  6m 35s | Max: 13m 40s | Hits:  89%/14252 
      🟩 Test               Pass: 100%/3   | Total: 29m 49s | Avg:  9m 56s | Max: 11m 25s | Hits:  99%/1854  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 14m 10s | Avg:  7m 05s | Max:  9m 59s | Hits:  95%/1236  
      🟩 90;90a             Pass: 100%/2   | Total: 18m 11s | Avg:  9m 05s | Max: 13m 12s | Hits:  85%/937   
      🟩 100;120            Pass: 100%/2   | Total: 18m 29s | Avg:  9m 14s | Max: 13m 29s | Hits:  86%/937   
    🟩 std
      🟩 17                 Pass: 100%/3   | Total: 18m 27s | Avg:  6m 09s | Max:  9m 23s | Hits:  90%/1852  
      🟩 20                 Pass: 100%/25  | Total:  2h 56m | Avg:  7m 03s | Max: 13m 40s | Hits:  91%/14254 
    
  • 🟩 packaging: Pass: 100%/4 | Total: 14m 49s | Avg: 3m 42s | Max: 4m 19s

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total: 14m 49s | Avg:  3m 42s | Max:  4m 19s
    🟩 ctk
      🟩 12.0               Pass: 100%/2   | Total:  8m 24s | Avg:  4m 12s | Max:  4m 19s
      🟩 12.9               Pass: 100%/2   | Total:  6m 25s | Avg:  3m 12s | Max:  3m 16s
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/2   | Total:  8m 24s | Avg:  4m 12s | Max:  4m 19s
      🟩 nvcc12.9           Pass: 100%/2   | Total:  6m 25s | Avg:  3m 12s | Max:  3m 16s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 14m 49s | Avg:  3m 42s | Max:  4m 19s
    🟩 cxx
      🟩 Clang14            Pass: 100%/1   | Total:  4m 05s | Avg:  4m 05s | Max:  4m 05s
      🟩 Clang19            Pass: 100%/1   | Total:  3m 09s | Avg:  3m 09s | Max:  3m 09s
      🟩 GCC12              Pass: 100%/1   | Total:  4m 19s | Avg:  4m 19s | Max:  4m 19s
      🟩 GCC13              Pass: 100%/1   | Total:  3m 16s | Avg:  3m 16s | Max:  3m 16s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/2   | Total:  7m 14s | Avg:  3m 37s | Max:  4m 05s
      🟩 GCC                Pass: 100%/2   | Total:  7m 35s | Avg:  3m 47s | Max:  4m 19s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 14m 49s | Avg:  3m 42s | Max:  4m 19s
    🟩 jobs
      🟩 Test               Pass: 100%/4   | Total: 14m 49s | Avg:  3m 42s | Max:  4m 19s
    

👃 Inspect Changes

Modifications in project?

Project
CCCL Infrastructure
CCCL Packaging
libcu++
CUB
Thrust
+/- CUDA Experimental
stdpar
python
CCCL C Parallel Library
Catch2Helper

Modifications in project or dependencies?

Project
CCCL Infrastructure
+/- CCCL Packaging
libcu++
CUB
Thrust
+/- CUDA Experimental
stdpar
python
CCCL C Parallel Library
Catch2Helper

🏃‍ Runner counts (total jobs: 32)

# Runner
17 linux-amd64-cpu16
6 linux-amd64-gpu-rtx2080-latest-1
4 windows-amd64-cpu16
4 linux-arm64-cpu16
1 linux-amd64-gpu-h100-latest-1

@ericniebler
ericniebler marked this pull request as ready for review June 29, 2025 22:39
@ericniebler
ericniebler requested a review from a team as a code owner June 29, 2025 22:39
@ericniebler
ericniebler requested a review from pciolkosz June 29, 2025 22:39
@cccl-authenticator-app cccl-authenticator-app Bot moved this from In Progress to In Review in CCCL Jun 29, 2025
Comment thread cudax/include/cuda/experimental/__execution/stream/domain.cuh Outdated
Comment thread cudax/include/cuda/experimental/__execution/stream/domain.cuh Outdated
Comment thread cudax/include/cuda/experimental/__execution/stream/domain.cuh Outdated
@github-actions

Copy link
Copy Markdown
Contributor
🟩 CI finished in 36m 32s: Pass: 100%/32 | Total: 4h 00m | Avg: 7m 30s | Max: 25m 11s | Hits: 91%/16106
  • 🟩 cudax: Pass: 100%/28 | Total: 3h 34m | Avg: 7m 38s | Max: 25m 11s | Hits: 91%/16106

    🟩 cpu
      🟩 amd64              Pass: 100%/24  | Total:  3h 15m | Avg:  8m 08s | Max: 25m 11s | Hits:  91%/13634 
      🟩 arm64              Pass: 100%/4   | Total: 18m 34s | Avg:  4m 38s | Max:  5m 06s | Hits:  91%/2472  
    🟩 ctk
      🟩 12.0               Pass: 100%/3   | Total: 23m 43s | Avg:  7m 54s | Max: 14m 42s | Hits:  89%/1553  
      🟩 12.9               Pass: 100%/25  | Total:  3h 10m | Avg:  7m 36s | Max: 25m 11s | Hits:  91%/14553 
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/3   | Total: 23m 43s | Avg:  7m 54s | Max: 14m 42s | Hits:  89%/1553  
      🟩 nvcc12.9           Pass: 100%/25  | Total:  3h 10m | Avg:  7m 36s | Max: 25m 11s | Hits:  91%/14553 
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/28  | Total:  3h 34m | Avg:  7m 38s | Max: 25m 11s | Hits:  91%/16106 
    🟩 cxx
      🟩 Clang14            Pass: 100%/2   | Total:  9m 03s | Avg:  4m 31s | Max:  4m 40s | Hits:  91%/1238  
      🟩 Clang15            Pass: 100%/1   | Total:  5m 14s | Avg:  5m 14s | Max:  5m 14s | Hits:  91%/618   
      🟩 Clang16            Pass: 100%/1   | Total:  4m 58s | Avg:  4m 58s | Max:  4m 58s | Hits:  91%/618   
      🟩 Clang17            Pass: 100%/1   | Total:  5m 08s | Avg:  5m 08s | Max:  5m 08s | Hits:  91%/618   
      🟩 Clang18            Pass: 100%/1   | Total:  5m 13s | Avg:  5m 13s | Max:  5m 13s | Hits:  91%/618   
      🟩 Clang19            Pass: 100%/4   | Total: 39m 01s | Avg:  9m 45s | Max: 25m 11s | Hits:  93%/2472  
      🟩 GCC10              Pass: 100%/2   | Total: 10m 09s | Avg:  5m 04s | Max:  5m 31s | Hits:  91%/1238  
      🟩 GCC11              Pass: 100%/1   | Total:  5m 24s | Avg:  5m 24s | Max:  5m 24s | Hits:  91%/618   
      🟩 GCC12              Pass: 100%/1   | Total:  5m 32s | Avg:  5m 32s | Max:  5m 32s | Hits:  91%/618   
      🟩 GCC13              Pass: 100%/8   | Total: 52m 07s | Avg:  6m 30s | Max: 11m 27s | Hits:  93%/4944  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 14m 42s | Avg: 14m 42s | Max: 14m 42s | Hits:  79%/317   
      🟩 MSVC14.43          Pass: 100%/3   | Total: 39m 30s | Avg: 13m 10s | Max: 13m 35s | Hits:  78%/957   
      🟩 NVHPC25.5          Pass: 100%/2   | Total: 18m 05s | Avg:  9m 02s | Max:  9m 22s | Hits:  88%/1232  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/10  | Total:  1h 08m | Avg:  6m 51s | Max: 25m 11s | Hits:  92%/6182  
      🟩 GCC                Pass: 100%/12  | Total:  1h 13m | Avg:  6m 06s | Max: 11m 27s | Hits:  92%/7418  
      🟩 MSVC               Pass: 100%/4   | Total: 54m 12s | Avg: 13m 33s | Max: 14m 42s | Hits:  79%/1274  
      🟩 NVHPC              Pass: 100%/2   | Total: 18m 05s | Avg:  9m 02s | Max:  9m 22s | Hits:  88%/1232  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 14m 16s | Avg:  7m 08s | Max: 10m 03s | Hits:  95%/1236  
      🟩 rtx2080            Pass: 100%/26  | Total:  3h 19m | Avg:  7m 41s | Max: 25m 11s | Hits:  90%/14870 
    🟩 jobs
      🟩 Build              Pass: 100%/25  | Total:  2h 47m | Avg:  6m 41s | Max: 14m 42s | Hits:  90%/14252 
      🟩 Test               Pass: 100%/3   | Total: 46m 41s | Avg: 15m 33s | Max: 25m 11s | Hits:  99%/1854  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 14m 16s | Avg:  7m 08s | Max: 10m 03s | Hits:  95%/1236  
      🟩 90;90a             Pass: 100%/2   | Total: 19m 24s | Avg:  9m 42s | Max: 13m 35s | Hits:  86%/937   
      🟩 100;120            Pass: 100%/2   | Total: 17m 29s | Avg:  8m 44s | Max: 12m 28s | Hits:  86%/937   
    🟩 std
      🟩 17                 Pass: 100%/3   | Total: 18m 25s | Avg:  6m 08s | Max:  9m 22s | Hits:  90%/1852  
      🟩 20                 Pass: 100%/25  | Total:  3h 15m | Avg:  7m 49s | Max: 25m 11s | Hits:  91%/14254 
    
  • 🟩 packaging: Pass: 100%/4 | Total: 26m 12s | Avg: 6m 33s | Max: 9m 29s

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total: 26m 12s | Avg:  6m 33s | Max:  9m 29s
    🟩 ctk
      🟩 12.0               Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max:  9m 07s
      🟩 12.9               Pass: 100%/2   | Total: 12m 32s | Avg:  6m 16s | Max:  9m 29s
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max:  9m 07s
      🟩 nvcc12.9           Pass: 100%/2   | Total: 12m 32s | Avg:  6m 16s | Max:  9m 29s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 26m 12s | Avg:  6m 33s | Max:  9m 29s
    🟩 cxx
      🟩 Clang14            Pass: 100%/1   | Total:  4m 33s | Avg:  4m 33s | Max:  4m 33s
      🟩 Clang19            Pass: 100%/1   | Total:  3m 03s | Avg:  3m 03s | Max:  3m 03s
      🟩 GCC12              Pass: 100%/1   | Total:  9m 07s | Avg:  9m 07s | Max:  9m 07s
      🟩 GCC13              Pass: 100%/1   | Total:  9m 29s | Avg:  9m 29s | Max:  9m 29s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/2   | Total:  7m 36s | Avg:  3m 48s | Max:  4m 33s
      🟩 GCC                Pass: 100%/2   | Total: 18m 36s | Avg:  9m 18s | Max:  9m 29s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 26m 12s | Avg:  6m 33s | Max:  9m 29s
    🟩 jobs
      🟩 Test               Pass: 100%/4   | Total: 26m 12s | Avg:  6m 33s | Max:  9m 29s
    

👃 Inspect Changes

Modifications in project?

Project
CCCL Infrastructure
CCCL Packaging
libcu++
CUB
Thrust
+/- CUDA Experimental
stdpar
python
CCCL C Parallel Library
Catch2Helper

Modifications in project or dependencies?

Project
CCCL Infrastructure
+/- CCCL Packaging
libcu++
CUB
Thrust
+/- CUDA Experimental
stdpar
python
CCCL C Parallel Library
Catch2Helper

🏃‍ Runner counts (total jobs: 32)

# Runner
17 linux-amd64-cpu16
6 linux-amd64-gpu-rtx2080-latest-1
4 windows-amd64-cpu16
4 linux-arm64-cpu16
1 linux-amd64-gpu-h100-latest-1

@ericniebler
ericniebler merged commit 5f7e512 into NVIDIA:main Jun 30, 2025
@github-project-automation github-project-automation Bot moved this from In Review to Done in CCCL Jun 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants