Skip to content

Conversation

@miscco
Copy link
Contributor

@miscco miscco commented Aug 21, 2025

This provides a design for a dispatch layer for parallel algorithms in libcu++

We leverage the enumeration that is stored within the execution policies to determine the user-choosen backend and if possible dispatch to that.

If no backend has a suitable implementation of the parallel algorithm we fall back to the serial implementation

@miscco miscco requested review from a team as code owners August 21, 2025 10:50
@miscco miscco requested a review from pciolkosz August 21, 2025 10:50
@github-project-automation github-project-automation bot moved this to Todo in CCCL Aug 21, 2025
@miscco miscco marked this pull request as draft August 21, 2025 10:50
@cccl-authenticator-app cccl-authenticator-app bot moved this from Todo to In Review in CCCL Aug 21, 2025
@copy-pr-bot
Copy link
Contributor

copy-pr-bot bot commented Aug 21, 2025

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 In Review to In Progress in CCCL Aug 21, 2025
@miscco miscco force-pushed the dispatch_algorithms branch 2 times, most recently from 9237589 to 2dad112 Compare August 21, 2025 12:39
@miscco
Copy link
Contributor Author

miscco commented Aug 21, 2025

/ok to test

@github-actions
Copy link
Contributor

🟨 CI finished in 2h 19m: Pass: 74%/210 | Total: 2d 21h | Avg: 19m 45s | Max: 2h 02m | Hits: 65%/210361
  • 🟨 thrust: Pass: 56%/50 | Total: 14h 06m | Avg: 16m 56s | Max: 1h 32m | Hits: 93%/49687

    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/2   | Total: 10m 58s | Avg:  5m 29s | Max:  5m 40s | Hits: 100%/3826  
      🔍 nvcc               Pass:  54%/48  | Total: 13h 55m | Avg: 17m 24s | Max:  1h 32m | Hits:  92%/45861 
    🚨 cxx_family: GCC 🚨
      🟩 Clang              Pass: 100%/19  | Total:  1h 47m | Avg:  5m 40s | Max:  6m 17s | Hits:  99%/32521 
      🔥 GCC                Pass:   0%/22  | Total:  2h 41m | Avg:  7m 20s | Max: 37m 06s
      🟩 MSVC               Pass: 100%/7   | Total:  6h 46m | Avg: 58m 01s | Max:  1h 06m | Hits:  84%/13342 
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 51m | Avg:  1h 25m | Max:  1h 32m | Hits:  67%/3824  
    🟨 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 10m 58s | Avg:  5m 29s | Max:  5m 40s | Hits: 100%/3826  
      🟨 nvcc12.0           Pass:  60%/5   | Total:  1h 23m | Avg: 16m 47s | Max:  1h 01m | Hits:  94%/5732  
      🟨 nvcc12.9           Pass:  53%/43  | Total: 12h 31m | Avg: 17m 29s | Max:  1h 32m | Hits:  92%/40129 
    🟨 cxx
      🟩 Clang14            Pass: 100%/4   | Total: 22m 38s | Avg:  5m 39s | Max:  6m 06s | Hits: 100%/7652  
      🟩 Clang15            Pass: 100%/2   | Total: 12m 06s | Avg:  6m 03s | Max:  6m 17s | Hits: 100%/3826  
      🟩 Clang16            Pass: 100%/2   | Total: 11m 57s | Avg:  5m 58s | Max:  6m 07s | Hits:  99%/3826  
      🟩 Clang17            Pass: 100%/2   | Total: 11m 45s | Avg:  5m 52s | Max:  5m 54s | Hits: 100%/3826  
      🟩 Clang18            Pass: 100%/2   | Total: 11m 43s | Avg:  5m 51s | Max:  5m 55s | Hits: 100%/3826  
      🟩 Clang19            Pass: 100%/7   | Total: 37m 43s | Avg:  5m 23s | Max:  6m 13s | Hits: 100%/9565  
      🟥 GCC7               Pass:   0%/2   | Total: 11m 23s | Avg:  5m 41s | Max:  5m 53s
      🟥 GCC8               Pass:   0%/1   | Total:  6m 10s | Avg:  6m 10s | Max:  6m 10s
      🟥 GCC9               Pass:   0%/2   | Total: 12m 18s | Avg:  6m 09s | Max:  6m 27s
      🟥 GCC10              Pass:   0%/2   | Total: 43m 34s | Avg: 21m 47s | Max: 37m 06s
      🟥 GCC11              Pass:   0%/2   | Total: 12m 15s | Avg:  6m 07s | Max:  6m 14s
      🟥 GCC12              Pass:   0%/2   | Total: 13m 06s | Avg:  6m 33s | Max:  6m 52s
      🟥 GCC13              Pass:   0%/11  | Total:  1h 02m | Avg:  5m 42s | Max: 26m 14s
      🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 07m | Avg:  1h 03m | Max:  1h 05m | Hits:  82%/3812  
      🟩 MSVC14.43          Pass: 100%/5   | Total:  4h 38m | Avg: 55m 40s | Max:  1h 06m | Hits:  85%/9530  
      🟩 NVHPC25.5          Pass: 100%/2   | Total:  2h 51m | Avg:  1h 25m | Max:  1h 32m | Hits:  67%/3824  
    🟥 cmake_options
      🟥 -DTHRUST_DISPATCH_TYPE=Force32bit Pass:   0%/2   | Total:  6m 32s | Avg:  3m 16s | Max:  6m 32s
    🟨 cpu
      🟨 amd64              Pass:  56%/48  | Total: 13h 55m | Avg: 17m 24s | Max:  1h 32m | Hits:  93%/47774 
      🟨 arm64              Pass:  50%/2   | Total: 10m 47s | Avg:  5m 23s | Max:  5m 46s | Hits: 100%/1913  
    🟨 ctk
      🟨 12.0               Pass:  60%/5   | Total:  1h 23m | Avg: 16m 47s | Max:  1h 01m | Hits:  94%/5732  
      🟨 12.9               Pass:  55%/45  | Total: 12h 42m | Avg: 16m 57s | Max:  1h 32m | Hits:  93%/43955 
    🟨 gpu
      🟥 h100               Pass:   0%/2   | Total:  4m 49s | Avg:  2m 24s | Max:  4m 49s
      🟨 rtx2080            Pass:  60%/38  | Total: 11h 52m | Avg: 18m 44s | Max:  1h 32m | Hits:  93%/43962 
      🟨 rtx4090            Pass:  50%/10  | Total:  2h 09m | Avg: 12m 58s | Max:  1h 04m | Hits:  93%/5725  
    🟨 jobs
      🟨 Build              Pass:  58%/43  | Total: 13h 20m | Avg: 18m 36s | Max:  1h 32m | Hits:  93%/47781 
      🟨 TestCPU            Pass:  66%/3   | Total: 40m 47s | Avg: 13m 35s | Max: 36m 39s | Hits:  99%/1906  
      🟨 TestGPU            Pass:  25%/4   | Total:  5m 32s | Avg:  1m 23s | Max:  5m 32s
    🟨 sm
      🟥 90                 Pass:   0%/2   | Total:  4m 49s | Avg:  2m 24s | Max:  4m 49s
      🟨 90;90a             Pass:  50%/2   | Total: 59m 41s | Avg: 29m 50s | Max: 53m 56s | Hits:  82%/1906  
      🟨 100;120            Pass:  50%/2   | Total:  1h 22m | Avg: 41m 21s | Max: 56m 29s | Hits:  82%/1906  
    🟨 std
      🟨 17                 Pass:  57%/21  | Total:  6h 16m | Avg: 17m 56s | Max:  1h 18m | Hits:  92%/22934 
      🟨 20                 Pass:  59%/27  | Total:  7h 43m | Avg: 17m 09s | Max:  1h 32m | Hits:  93%/26753 
    
  • 🟨 libcudacxx: Pass: 60%/48 | Total: 1d 01h | Avg: 31m 57s | Max: 1h 41m | Hits: 36%/98616

    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/2   | Total: 57m 12s | Avg: 28m 36s | Max: 31m 14s | Hits:  29%/7625  
      🔍 nvcc               Pass:  58%/46  | Total:  1d 00h | Avg: 32m 05s | Max:  1h 41m | Hits:  37%/90991 
    🔍 cxx_family: GCC 🔍
      🟩 Clang              Pass: 100%/18  | Total: 10h 58m | Avg: 36m 36s | Max:  1h 41m | Hits:  35%/68596 
      🔍 GCC                Pass:  13%/22  | Total:  8h 55m | Avg: 24m 19s | Max: 38m 56s | Hits:  90%/42    
      🟩 MSVC               Pass: 100%/6   | Total:  4h 00m | Avg: 40m 08s | Max: 45m 00s | Hits:  42%/22371 
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 38m | Avg: 49m 26s | Max: 51m 05s | Hits:  30%/7607  
    🟨 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 57m 12s | Avg: 28m 36s | Max: 31m 14s | Hits:  29%/7625  
      🟨 nvcc12.0           Pass:  60%/5   | Total:  2h 16m | Avg: 27m 23s | Max: 39m 16s | Hits:  54%/11238 
      🟨 nvcc12.9           Pass:  58%/41  | Total: 22h 19m | Avg: 32m 40s | Max:  1h 41m | Hits:  34%/79753 
    🟨 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  1h 47m | Avg: 26m 45s | Max: 36m 05s | Hits:  48%/15206 
      🟩 Clang15            Pass: 100%/2   | Total:  1h 13m | Avg: 36m 38s | Max: 38m 13s | Hits:  32%/7621  
      🟩 Clang16            Pass: 100%/2   | Total:  1h 11m | Avg: 35m 52s | Max: 38m 07s | Hits:  32%/7621  
      🟩 Clang17            Pass: 100%/2   | Total:  1h 11m | Avg: 35m 50s | Max: 37m 03s | Hits:  32%/7621  
      🟩 Clang18            Pass: 100%/2   | Total:  1h 10m | Avg: 35m 23s | Max: 35m 53s | Hits:  32%/7621  
      🟩 Clang19            Pass: 100%/6   | Total:  4h 24m | Avg: 44m 03s | Max:  1h 41m | Hits:  31%/22906 
      🟥 GCC7               Pass:   0%/2   | Total: 58m 39s | Avg: 29m 19s | Max: 29m 52s
      🟥 GCC8               Pass:   0%/1   | Total: 28m 21s | Avg: 28m 21s | Max: 28m 21s
      🟥 GCC9               Pass:   0%/2   | Total: 44m 11s | Avg: 22m 05s | Max: 33m 54s
      🟥 GCC10              Pass:   0%/2   | Total:  1h 12m | Avg: 36m 03s | Max: 37m 42s
      🟥 GCC11              Pass:   0%/2   | Total:  1h 12m | Avg: 36m 11s | Max: 36m 37s
      🟥 GCC12              Pass:   0%/2   | Total:  1h 15m | Avg: 37m 39s | Max: 37m 53s
      🟨 GCC13              Pass:  27%/11  | Total:  3h 04m | Avg: 16m 43s | Max: 38m 56s | Hits:  90%/42    
      🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 19m | Avg: 39m 40s | Max: 40m 04s | Hits:  31%/7299  
      🟩 MSVC14.43          Pass: 100%/4   | Total:  2h 41m | Avg: 40m 22s | Max: 45m 00s | Hits:  48%/15072 
      🟩 NVHPC25.5          Pass: 100%/2   | Total:  1h 38m | Avg: 49m 26s | Max: 51m 05s | Hits:  30%/7607  
    🟨 jobs
      🟨 Build              Pass:  59%/42  | Total: 23h 03m | Avg: 32m 56s | Max: 51m 05s | Hits:  37%/94744 
      🟩 NVRTC              Pass: 100%/2   | Total: 46m 02s | Avg: 23m 01s | Max: 24m 07s | Hits:  90%/42    
      🟨 Test               Pass:  33%/3   | Total:  1h 41m | Avg: 33m 59s | Max:  1h 41m | Hits:  32%/3830  
      🟩 VerifyCodegen      Pass: 100%/1   | Total:  1m 45s | Avg:  1m 45s | Max:  1m 45s
    🟨 sm
      🟩 75                 Pass: 100%/2   | Total: 46m 02s | Avg: 23m 01s | Max: 24m 07s | Hits:  90%/42    
      🟥 90                 Pass:   0%/2   | Total:  6m 44s | Avg:  3m 22s | Max:  6m 44s
      🟨 90;90a             Pass:  50%/2   | Total: 44m 20s | Avg: 22m 10s | Max: 34m 41s | Hits:  98%/3861  
      🟨 100;120            Pass:  50%/2   | Total:  1h 11m | Avg: 35m 37s | Max: 37m 38s | Hits:  30%/3861  
    🟨 cpu
      🟨 amd64              Pass:  60%/46  | Total:  1d 00h | Avg: 31m 46s | Max:  1h 41m | Hits:  37%/94786 
      🟨 arm64              Pass:  50%/2   | Total:  1h 11m | Avg: 35m 56s | Max: 37m 06s | Hits:  31%/3830  
    🟨 ctk
      🟨 12.0               Pass:  60%/5   | Total:  2h 16m | Avg: 27m 23s | Max: 39m 16s | Hits:  54%/11238 
      🟨 12.9               Pass:  60%/43  | Total: 23h 16m | Avg: 32m 28s | Max:  1h 41m | Hits:  34%/87378 
    🟨 gpu
      🟥 h100               Pass:   0%/2   | Total:  6m 44s | Avg:  3m 22s | Max:  6m 44s
      🟨 rtx2080            Pass:  63%/46  | Total:  1d 01h | Avg: 33m 11s | Max:  1h 41m | Hits:  36%/98616 
    🟨 std
      🟨 17                 Pass:  59%/22  | Total: 11h 47m | Avg: 32m 10s | Max: 47m 48s | Hits:  31%/45073 
      🟨 20                 Pass:  60%/25  | Total: 13h 43m | Avg: 32m 57s | Max:  1h 41m | Hits:  41%/53543 
    
  • 🟨 cudax: Pass: 57%/28 | Total: 2h 42m | Avg: 5m 47s | Max: 15m 47s | Hits: 94%/8304

    🚨 cxx_family: GCC 🚨
      🟩 Clang              Pass: 100%/10  | Total: 36m 48s | Avg:  3m 40s | Max:  8m 40s | Hits: 100%/5952  
      🔥 GCC                Pass:   0%/12  | Total: 42m 20s | Avg:  3m 31s | Max:  4m 46s
      🟩 MSVC               Pass: 100%/4   | Total:  1h 01m | Avg: 15m 24s | Max: 15m 47s | Hits:  75%/1166  
      🟩 NVHPC              Pass: 100%/2   | Total: 21m 26s | Avg: 10m 43s | Max: 11m 10s | Hits:  87%/1186  
    🟨 cxx
      🟩 Clang14            Pass: 100%/2   | Total:  6m 11s | Avg:  3m 05s | Max:  3m 18s | Hits: 100%/1192  
      🟩 Clang15            Pass: 100%/1   | Total:  3m 14s | Avg:  3m 14s | Max:  3m 14s | Hits: 100%/595   
      🟩 Clang16            Pass: 100%/1   | Total:  3m 15s | Avg:  3m 15s | Max:  3m 15s | Hits: 100%/595   
      🟩 Clang17            Pass: 100%/1   | Total:  3m 30s | Avg:  3m 30s | Max:  3m 30s | Hits: 100%/595   
      🟩 Clang18            Pass: 100%/1   | Total:  3m 24s | Avg:  3m 24s | Max:  3m 24s | Hits: 100%/595   
      🟩 Clang19            Pass: 100%/4   | Total: 17m 14s | Avg:  4m 18s | Max:  8m 40s | Hits: 100%/2380  
      🟥 GCC10              Pass:   0%/2   | Total:  8m 11s | Avg:  4m 05s | Max:  4m 18s
      🟥 GCC11              Pass:   0%/1   | Total:  4m 31s | Avg:  4m 31s | Max:  4m 31s
      🟥 GCC12              Pass:   0%/1   | Total:  4m 46s | Avg:  4m 46s | Max:  4m 46s
      🟥 GCC13              Pass:   0%/8   | Total: 24m 52s | Avg:  3m 06s | Max:  4m 38s
      🟩 MSVC14.39          Pass: 100%/1   | Total: 15m 13s | Avg: 15m 13s | Max: 15m 13s | Hits:  80%/290   
      🟩 MSVC14.43          Pass: 100%/3   | Total: 46m 23s | Avg: 15m 27s | Max: 15m 47s | Hits:  74%/876   
      🟩 NVHPC25.5          Pass: 100%/2   | Total: 21m 26s | Avg: 10m 43s | Max: 11m 10s | Hits:  87%/1186  
    🟨 cudacxx_family
      🟨 nvcc               Pass:  57%/28  | Total:  2h 42m | Avg:  5m 47s | Max: 15m 47s | Hits:  94%/8304  
    🟨 cpu
      🟨 amd64              Pass:  58%/24  | Total:  2h 28m | Avg:  6m 11s | Max: 15m 47s | Hits:  93%/7114  
      🟨 arm64              Pass:  50%/4   | Total: 13m 34s | Avg:  3m 23s | Max:  4m 10s | Hits: 100%/1190  
    🟨 ctk
      🟨 12.0               Pass:  66%/3   | Total: 21m 59s | Avg:  7m 19s | Max: 15m 13s | Hits:  93%/885   
      🟨 12.9               Pass:  56%/25  | Total:  2h 20m | Avg:  5m 36s | Max: 15m 47s | Hits:  94%/7419  
    🟨 cudacxx
      🟨 nvcc12.0           Pass:  66%/3   | Total: 21m 59s | Avg:  7m 19s | Max: 15m 13s | Hits:  93%/885   
      🟨 nvcc12.9           Pass:  56%/25  | Total:  2h 20m | Avg:  5m 36s | Max: 15m 47s | Hits:  94%/7419  
    🟨 gpu
      🟥 h100               Pass:   0%/2   | Total:  3m 37s | Avg:  1m 48s | Max:  3m 37s
      🟨 rtx2080            Pass:  61%/26  | Total:  2h 38m | Avg:  6m 05s | Max: 15m 47s | Hits:  94%/8304  
    🟨 jobs
      🟨 Build              Pass:  60%/25  | Total:  2h 33m | Avg:  6m 08s | Max: 15m 47s | Hits:  94%/7709  
      🟨 Test               Pass:  33%/3   | Total:  8m 40s | Avg:  2m 53s | Max:  8m 40s | Hits: 100%/595   
    🟨 sm
      🟥 90                 Pass:   0%/2   | Total:  3m 37s | Avg:  1m 48s | Max:  3m 37s
      🟨 90;90a             Pass:  50%/2   | Total: 19m 33s | Avg:  9m 46s | Max: 15m 21s | Hits:  79%/292   
      🟨 100;120            Pass:  50%/2   | Total: 19m 24s | Avg:  9m 42s | Max: 15m 15s | Hits:  64%/292   
    🟨 std
      🟨 17                 Pass:  66%/3   | Total: 17m 54s | Avg:  5m 58s | Max: 11m 10s | Hits:  93%/1188  
      🟨 20                 Pass:  56%/25  | Total:  2h 24m | Avg:  5m 46s | Max: 15m 47s | Hits:  94%/7116  
    
  • 🟩 cub: Pass: 100%/50 | Total: 21h 14m | Avg: 25m 29s | Max: 2h 02m | Hits: 88%/53074

    🟩 cpu
      🟩 amd64              Pass: 100%/48  | Total: 20h 59m | Avg: 26m 14s | Max:  2h 02m | Hits:  88%/50488 
      🟩 arm64              Pass: 100%/2   | Total: 14m 51s | Avg:  7m 25s | Max:  8m 46s | Hits:  99%/2586  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  2h 32m | Avg: 30m 29s | Max:  2h 02m | Hits:  89%/6358  
      🟩 12.9               Pass: 100%/45  | Total: 18h 42m | Avg: 24m 56s | Max:  1h 52m | Hits:  88%/46716 
    🟩 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 10m 22s | Avg:  5m 11s | Max:  5m 15s | Hits:  99%/2225  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  2h 32m | Avg: 30m 29s | Max:  2h 02m | Hits:  89%/6358  
      🟩 nvcc12.9           Pass: 100%/43  | Total: 18h 31m | Avg: 25m 51s | Max:  1h 52m | Hits:  88%/44491 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 10m 22s | Avg:  5m 11s | Max:  5m 15s | Hits:  99%/2225  
      🟩 nvcc               Pass: 100%/48  | Total: 21h 04m | Avg: 26m 20s | Max:  2h 02m | Hits:  88%/50849 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total: 27m 17s | Avg:  6m 49s | Max:  7m 08s | Hits:  99%/5174  
      🟩 Clang15            Pass: 100%/2   | Total: 14m 23s | Avg:  7m 11s | Max:  7m 20s | Hits:  99%/2583  
      🟩 Clang16            Pass: 100%/2   | Total: 14m 01s | Avg:  7m 00s | Max:  7m 04s | Hits:  99%/2583  
      🟩 Clang17            Pass: 100%/2   | Total: 13m 54s | Avg:  6m 57s | Max:  7m 06s | Hits:  99%/2583  
      🟩 Clang18            Pass: 100%/2   | Total: 13m 17s | Avg:  6m 38s | Max:  6m 42s | Hits:  99%/2583  
      🟩 Clang19            Pass: 100%/7   | Total:  1h 16m | Avg: 10m 55s | Max: 25m 00s | Hits:  99%/6100  
      🟩 GCC7               Pass: 100%/2   | Total: 17m 33s | Avg:  8m 46s | Max:  9m 05s | Hits:  99%/2586  
      🟩 GCC8               Pass: 100%/1   | Total:  8m 19s | Avg:  8m 19s | Max:  8m 19s | Hits:  99%/1293  
      🟩 GCC9               Pass: 100%/2   | Total: 17m 07s | Avg:  8m 33s | Max:  8m 50s | Hits:  99%/2586  
      🟩 GCC10              Pass: 100%/2   | Total:  1h 12m | Avg: 36m 13s | Max:  1h 03m | Hits:  83%/2587  
      🟩 GCC11              Pass: 100%/2   | Total: 17m 55s | Avg:  8m 57s | Max:  9m 05s | Hits:  99%/2583  
      🟩 GCC12              Pass: 100%/2   | Total: 18m 58s | Avg:  9m 29s | Max:  9m 50s | Hits:  99%/2583  
      🟩 GCC13              Pass: 100%/12  | Total:  3h 09m | Avg: 15m 46s | Max: 28m 43s | Hits:  99%/7761  
      🟩 MSVC14.29          Pass: 100%/2   | Total:  3h 55m | Avg:  1h 57m | Max:  2h 02m | Hits:  43%/2370  
      🟩 MSVC14.43          Pass: 100%/4   | Total:  6h 20m | Avg:  1h 35m | Max:  1h 52m | Hits:  42%/4740  
      🟩 NVHPC25.5          Pass: 100%/2   | Total:  2h 38m | Avg:  1h 19m | Max:  1h 25m | Hits:  40%/2379  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/19  | Total:  2h 39m | Avg:  8m 23s | Max: 25m 00s | Hits:  99%/21606 
      🟩 GCC                Pass: 100%/23  | Total:  5h 41m | Avg: 14m 51s | Max:  1h 03m | Hits:  97%/21979 
      🟩 MSVC               Pass: 100%/6   | Total: 10h 15m | Avg:  1h 42m | Max:  2h 02m | Hits:  42%/7110  
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 38m | Avg:  1h 19m | Max:  1h 25m | Hits:  40%/2379  
    🟩 gpu
      🟩 h100               Pass: 100%/3   | Total:  1h 00m | Avg: 20m 15s | Max: 28m 43s | Hits:  99%/1294  
      🟩 rtx2080            Pass: 100%/39  | Total: 17h 47m | Avg: 27m 22s | Max:  2h 02m | Hits:  87%/49194 
      🟩 rtxa6000           Pass: 100%/8   | Total:  2h 26m | Avg: 18m 15s | Max: 25m 00s | Hits:  99%/2586  
    🟩 jobs
      🟩 Build              Pass: 100%/42  | Total: 18h 12m | Avg: 26m 00s | Max:  2h 02m | Hits:  88%/53074 
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 22m 36s | Avg: 22m 36s | Max: 22m 36s
      🟩 GraphCapture       Pass: 100%/1   | Total: 15m 07s | Avg: 15m 07s | Max: 15m 07s
      🟩 HostLaunch         Pass: 100%/3   | Total:  1h 18m | Avg: 26m 00s | Max: 28m 43s
      🟩 TestGPU            Pass: 100%/3   | Total:  1h 07m | Avg: 22m 21s | Max: 25m 18s
    🟩 sm
      🟩 90                 Pass: 100%/3   | Total:  1h 00m | Avg: 20m 15s | Max: 28m 43s | Hits:  99%/1294  
      🟩 90;90a             Pass: 100%/2   | Total:  1h 26m | Avg: 43m 22s | Max:  1h 18m | Hits:  72%/2479  
      🟩 100;120            Pass: 100%/2   | Total:  1h 27m | Avg: 43m 35s | Max:  1h 18m | Hits:  72%/2479  
    🟩 std
      🟩 17                 Pass: 100%/21  | Total:  9h 25m | Avg: 26m 55s | Max:  2h 02m | Hits:  89%/26528 
      🟩 20                 Pass: 100%/29  | Total: 11h 49m | Avg: 24m 27s | Max:  1h 52m | Hits:  87%/26546 
    
  • 🟩 python: Pass: 100%/22 | Total: 4h 06m | Avg: 11m 12s | Max: 21m 26s

    🟩 cpu
      🟩 amd64              Pass: 100%/22  | Total:  4h 06m | Avg: 11m 12s | Max: 21m 26s
    🟩 ctk
      🟩 12.5               Pass: 100%/6   | Total: 47m 00s | Avg:  7m 50s | Max: 14m 25s
      🟩 12.8               Pass: 100%/2   | Total: 39m 21s | Avg: 19m 40s | Max: 20m 01s
      🟩 12.9               Pass: 100%/14  | Total:  2h 40m | Avg: 11m 26s | Max: 21m 26s
    🟩 cudacxx
      🟩 nvcc12.5           Pass: 100%/6   | Total: 47m 00s | Avg:  7m 50s | Max: 14m 25s
      🟩 nvcc12.8           Pass: 100%/2   | Total: 39m 21s | Avg: 19m 40s | Max: 20m 01s
      🟩 nvcc12.9           Pass: 100%/14  | Total:  2h 40m | Avg: 11m 26s | Max: 21m 26s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/22  | Total:  4h 06m | Avg: 11m 12s | Max: 21m 26s
    🟩 cxx
      🟩 GCC13              Pass: 100%/22  | Total:  4h 06m | Avg: 11m 12s | Max: 21m 26s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/22  | Total:  4h 06m | Avg: 11m 12s | Max: 21m 26s
    🟩 gpu
      🟩 h100               Pass: 100%/4   | Total: 49m 19s | Avg: 12m 19s | Max: 21m 26s
      🟩 l4                 Pass: 100%/18  | Total:  3h 17m | Avg: 10m 57s | Max: 20m 34s
    🟩 jobs
      🟩 Build cuda.cccl    Pass: 100%/2   | Total: 19m 43s | Avg:  9m 51s | Max:  9m 59s
      🟩 Test cuda.cccl.cooperative Pass: 100%/5   | Total:  1h 15m | Avg: 15m 01s | Max: 16m 21s
      🟩 Test cuda.cccl.examples Pass: 100%/5   | Total: 27m 22s | Avg:  5m 28s | Max:  6m 22s
      🟩 Test cuda.cccl.headers Pass: 100%/5   | Total: 23m 17s | Avg:  4m 39s | Max:  5m 27s
      🟩 Test cuda.cccl.parallel Pass: 100%/5   | Total:  1h 41m | Avg: 20m 12s | Max: 21m 26s
    🟩 py_version
      🟩 3.10               Pass: 100%/9   | Total:  1h 37m | Avg: 10m 49s | Max: 19m 39s
      🟩 3.13               Pass: 100%/13  | Total:  2h 28m | Avg: 11m 27s | Max: 21m 26s
    
  • 🟩 cccl_c_parallel: Pass: 100%/4 | Total: 52m 57s | Avg: 13m 14s | Max: 20m 16s | Hits: 98%/680

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total: 52m 57s | Avg: 13m 14s | Max: 20m 16s | Hits:  98%/680   
    🟩 ctk
      🟩 12.9               Pass: 100%/4   | Total: 52m 57s | Avg: 13m 14s | Max: 20m 16s | Hits:  98%/680   
    🟩 cudacxx
      🟩 nvcc12.9           Pass: 100%/4   | Total: 52m 57s | Avg: 13m 14s | Max: 20m 16s | Hits:  98%/680   
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 52m 57s | Avg: 13m 14s | Max: 20m 16s | Hits:  98%/680   
    🟩 cxx
      🟩 GCC13              Pass: 100%/4   | Total: 52m 57s | Avg: 13m 14s | Max: 20m 16s | Hits:  98%/680   
    🟩 cxx_family
      🟩 GCC                Pass: 100%/4   | Total: 52m 57s | Avg: 13m 14s | Max: 20m 16s | Hits:  98%/680   
    🟩 gpu
      🟩 h100               Pass: 100%/1   | Total: 20m 16s | Avg: 20m 16s | Max: 20m 16s | Hits:  98%/170   
      🟩 l4                 Pass: 100%/1   | Total: 16m 24s | Avg: 16m 24s | Max: 16m 24s | Hits:  98%/170   
      🟩 rtx2080            Pass: 100%/2   | Total: 16m 17s | Avg:  8m 08s | Max: 14m 11s | Hits:  98%/340   
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 06s | Avg:  2m 06s | Max:  2m 06s | Hits:  98%/170   
      🟩 Test               Pass: 100%/3   | Total: 50m 51s | Avg: 16m 57s | Max: 20m 16s | Hits:  98%/510   
    
  • 🟩 packaging: Pass: 100%/4 | Total: 14m 30s | Avg: 3m 37s | Max: 3m 44s

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total: 14m 30s | Avg:  3m 37s | Max:  3m 44s
    🟩 ctk
      🟩 12.0               Pass: 100%/2   | Total:  7m 28s | Avg:  3m 44s | Max:  3m 44s
      🟩 12.9               Pass: 100%/2   | Total:  7m 02s | Avg:  3m 31s | Max:  3m 39s
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/2   | Total:  7m 28s | Avg:  3m 44s | Max:  3m 44s
      🟩 nvcc12.9           Pass: 100%/2   | Total:  7m 02s | Avg:  3m 31s | Max:  3m 39s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 14m 30s | Avg:  3m 37s | Max:  3m 44s
    🟩 cxx
      🟩 Clang14            Pass: 100%/1   | Total:  3m 44s | Avg:  3m 44s | Max:  3m 44s
      🟩 Clang19            Pass: 100%/1   | Total:  3m 39s | Avg:  3m 39s | Max:  3m 39s
      🟩 GCC12              Pass: 100%/1   | Total:  3m 44s | Avg:  3m 44s | Max:  3m 44s
      🟩 GCC13              Pass: 100%/1   | Total:  3m 23s | Avg:  3m 23s | Max:  3m 23s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/2   | Total:  7m 23s | Avg:  3m 41s | Max:  3m 44s
      🟩 GCC                Pass: 100%/2   | Total:  7m 07s | Avg:  3m 33s | Max:  3m 44s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 14m 30s | Avg:  3m 37s | Max:  3m 44s
    🟩 jobs
      🟩 Test               Pass: 100%/4   | Total: 14m 30s | Avg:  3m 37s | Max:  3m 44s
    
  • 🟩 stdpar: Pass: 100%/4 | Total: 16m 58s | Avg: 4m 14s | Max: 4m 44s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total:  8m 44s | Avg:  4m 22s | Max:  4m 44s
      🟩 arm64              Pass: 100%/2   | Total:  8m 14s | Avg:  4m 07s | Max:  4m 09s
    🟩 ctk
      🟩 12.9               Pass: 100%/4   | Total: 16m 58s | Avg:  4m 14s | Max:  4m 44s
    🟩 cudacxx
      🟩 nvcc12.9           Pass: 100%/4   | Total: 16m 58s | Avg:  4m 14s | Max:  4m 44s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 16m 58s | Avg:  4m 14s | Max:  4m 44s
    🟩 cxx
      🟩 NVHPC25.5          Pass: 100%/4   | Total: 16m 58s | Avg:  4m 14s | Max:  4m 44s
    🟩 cxx_family
      🟩 NVHPC              Pass: 100%/4   | Total: 16m 58s | Avg:  4m 14s | Max:  4m 44s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 16m 58s | Avg:  4m 14s | Max:  4m 44s
    🟩 jobs
      🟩 Build              Pass: 100%/4   | Total: 16m 58s | Avg:  4m 14s | Max:  4m 44s
    🟩 std
      🟩 17                 Pass: 100%/2   | Total:  8m 09s | Avg:  4m 04s | Max:  4m 09s
      🟩 20                 Pass: 100%/2   | Total:  8m 49s | Avg:  4m 24s | Max:  4m 44s
    

👃 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: 210)

# Runner
128 linux-amd64-cpu16
23 windows-amd64-cpu16
17 linux-amd64-gpu-l4-latest-1
12 linux-arm64-cpu16
11 linux-amd64-gpu-rtx2080-latest-1
10 linux-amd64-gpu-h100-latest-1
6 linux-amd64-gpu-rtxa6000-latest-1
3 linux-amd64-gpu-rtx4090-latest-1

@miscco miscco force-pushed the dispatch_algorithms branch from 2dad112 to 04640ea Compare August 21, 2025 15:26
@miscco
Copy link
Contributor Author

miscco commented Aug 22, 2025

/ok to test 04640ea

@github-actions
Copy link
Contributor

🟩 CI finished in 2h 22m: Pass: 100%/210 | Total: 4d 21h | Avg: 33m 34s | Max: 2h 02m | Hits: 60%/324676
  • 🟩 cub: Pass: 100%/50 | Total: 2d 02h | Avg: 1h 01m | Max: 2h 02m | Hits: 42%/53074

    🟩 cpu
      🟩 amd64              Pass: 100%/48  | Total:  2d 00h | Avg:  1h 01m | Max:  2h 02m | Hits:  42%/50488 
      🟩 arm64              Pass: 100%/2   | Total:  2h 04m | Avg:  1h 02m | Max:  1h 06m | Hits:  42%/2586  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  6h 06m | Avg:  1h 13m | Max:  2h 02m | Hits:  41%/6358  
      🟩 12.9               Pass: 100%/45  | Total:  1d 20h | Avg: 59m 45s | Max:  1h 52m | Hits:  42%/46716 
    🟩 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total:  1h 08m | Avg: 34m 13s | Max: 34m 53s | Hits:  44%/2225  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  6h 06m | Avg:  1h 13m | Max:  2h 02m | Hits:  41%/6358  
      🟩 nvcc12.9           Pass: 100%/43  | Total:  1d 19h | Avg:  1h 00m | Max:  1h 52m | Hits:  41%/44491 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total:  1h 08m | Avg: 34m 13s | Max: 34m 53s | Hits:  44%/2225  
      🟩 nvcc               Pass: 100%/48  | Total:  2d 01h | Avg:  1h 02m | Max:  2h 02m | Hits:  41%/50849 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  3h 56m | Avg: 59m 13s | Max:  1h 03m | Hits:  42%/5174  
      🟩 Clang15            Pass: 100%/2   | Total:  2h 02m | Avg:  1h 01m | Max:  1h 01m | Hits:  42%/2583  
      🟩 Clang16            Pass: 100%/2   | Total:  2h 12m | Avg:  1h 06m | Max:  1h 06m | Hits:  42%/2583  
      🟩 Clang17            Pass: 100%/2   | Total:  2h 02m | Avg:  1h 01m | Max:  1h 01m | Hits:  42%/2583  
      🟩 Clang18            Pass: 100%/2   | Total:  2h 07m | Avg:  1h 03m | Max:  1h 06m | Hits:  42%/2583  
      🟩 Clang19            Pass: 100%/7   | Total:  4h 52m | Avg: 41m 44s | Max:  1h 01m | Hits:  43%/6100  
      🟩 GCC7               Pass: 100%/2   | Total:  2h 12m | Avg:  1h 06m | Max:  1h 08m | Hits:  42%/2586  
      🟩 GCC8               Pass: 100%/1   | Total:  1h 06m | Avg:  1h 06m | Max:  1h 06m | Hits:  42%/1293  
      🟩 GCC9               Pass: 100%/2   | Total:  2h 17m | Avg:  1h 08m | Max:  1h 09m | Hits:  42%/2586  
      🟩 GCC10              Pass: 100%/2   | Total:  2h 14m | Avg:  1h 07m | Max:  1h 09m | Hits:  42%/2587  
      🟩 GCC11              Pass: 100%/2   | Total:  2h 22m | Avg:  1h 11m | Max:  1h 11m | Hits:  42%/2583  
      🟩 GCC12              Pass: 100%/2   | Total:  2h 28m | Avg:  1h 14m | Max:  1h 19m | Hits:  42%/2583  
      🟩 GCC13              Pass: 100%/12  | Total:  8h 04m | Avg: 40m 23s | Max:  1h 11m | Hits:  42%/7761  
      🟩 MSVC14.29          Pass: 100%/2   | Total:  3h 51m | Avg:  1h 55m | Max:  2h 02m | Hits:  40%/2370  
      🟩 MSVC14.43          Pass: 100%/4   | Total:  6h 21m | Avg:  1h 35m | Max:  1h 52m | Hits:  40%/4740  
      🟩 NVHPC25.5          Pass: 100%/2   | Total:  2h 41m | Avg:  1h 20m | Max:  1h 21m | Hits:  40%/2379  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/19  | Total: 17h 13m | Avg: 54m 24s | Max:  1h 06m | Hits:  42%/21606 
      🟩 GCC                Pass: 100%/23  | Total: 20h 46m | Avg: 54m 12s | Max:  1h 19m | Hits:  42%/21979 
      🟩 MSVC               Pass: 100%/6   | Total: 10h 13m | Avg:  1h 42m | Max:  2h 02m | Hits:  40%/7110  
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 41m | Avg:  1h 20m | Max:  1h 21m | Hits:  40%/2379  
    🟩 gpu
      🟩 h100               Pass: 100%/3   | Total:  1h 28m | Avg: 29m 33s | Max: 33m 18s | Hits:  42%/1294  
      🟩 rtx2080            Pass: 100%/39  | Total:  1d 21h | Avg:  1h 09m | Max:  2h 02m | Hits:  41%/49194 
      🟩 rtxa6000           Pass: 100%/8   | Total:  4h 18m | Avg: 32m 17s | Max:  1h 11m | Hits:  42%/2586  
    🟩 jobs
      🟩 Build              Pass: 100%/42  | Total:  1d 23h | Avg:  1h 08m | Max:  2h 02m | Hits:  42%/53074 
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 22m 23s | Avg: 22m 23s | Max: 22m 23s
      🟩 GraphCapture       Pass: 100%/1   | Total: 15m 11s | Avg: 15m 11s | Max: 15m 11s
      🟩 HostLaunch         Pass: 100%/3   | Total:  1h 18m | Avg: 26m 18s | Max: 30m 08s
      🟩 TestGPU            Pass: 100%/3   | Total:  1h 06m | Avg: 22m 16s | Max: 25m 13s
    🟩 sm
      🟩 90                 Pass: 100%/3   | Total:  1h 28m | Avg: 29m 33s | Max: 33m 18s | Hits:  42%/1294  
      🟩 90;90a             Pass: 100%/2   | Total:  2h 10m | Avg:  1h 05m | Max:  1h 14m | Hits:  41%/2479  
      🟩 100;120            Pass: 100%/2   | Total:  2h 15m | Avg:  1h 07m | Max:  1h 25m | Hits:  41%/2479  
    🟩 std
      🟩 17                 Pass: 100%/21  | Total:  1d 01h | Avg:  1h 12m | Max:  2h 02m | Hits:  42%/26528 
      🟩 20                 Pass: 100%/29  | Total:  1d 01h | Avg: 52m 59s | Max:  1h 48m | Hits:  42%/26546 
    
  • 🟩 thrust: Pass: 100%/50 | Total: 1d 09h | Avg: 39m 56s | Max: 1h 16m | Hits: 70%/84139

    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 43m 08s | Avg: 21m 34s | Max: 37m 48s | Hits:  58%/1914  
    🟩 cpu
      🟩 amd64              Pass: 100%/48  | Total:  1d 08h | Avg: 40m 01s | Max:  1h 16m | Hits:  70%/80312 
      🟩 arm64              Pass: 100%/2   | Total:  1h 15m | Avg: 37m 47s | Max: 42m 17s | Hits:  64%/3827  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  3h 43m | Avg: 44m 38s | Max:  1h 15m | Hits:  68%/9560  
      🟩 12.9               Pass: 100%/45  | Total:  1d 05h | Avg: 39m 25s | Max:  1h 16m | Hits:  70%/74579 
    🟩 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 53m 29s | Avg: 26m 44s | Max: 27m 09s | Hits:  78%/3826  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  3h 43m | Avg: 44m 38s | Max:  1h 15m | Hits:  68%/9560  
      🟩 nvcc12.9           Pass: 100%/43  | Total:  1d 04h | Avg: 40m 00s | Max:  1h 16m | Hits:  70%/70753 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 53m 29s | Avg: 26m 44s | Max: 27m 09s | Hits:  78%/3826  
      🟩 nvcc               Pass: 100%/48  | Total:  1d 08h | Avg: 40m 29s | Max:  1h 16m | Hits:  70%/80313 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  2h 12m | Avg: 33m 13s | Max: 36m 41s | Hits:  78%/7652  
      🟩 Clang15            Pass: 100%/2   | Total:  1h 13m | Avg: 36m 51s | Max: 37m 35s | Hits:  78%/3826  
      🟩 Clang16            Pass: 100%/2   | Total:  1h 09m | Avg: 34m 54s | Max: 36m 11s | Hits:  78%/3826  
      🟩 Clang17            Pass: 100%/2   | Total:  1h 13m | Avg: 36m 57s | Max: 37m 41s | Hits:  78%/3826  
      🟩 Clang18            Pass: 100%/2   | Total:  1h 17m | Avg: 38m 36s | Max: 39m 33s | Hits:  78%/3826  
      🟩 Clang19            Pass: 100%/7   | Total:  2h 57m | Avg: 25m 23s | Max: 42m 12s | Hits:  78%/9565  
      🟩 GCC7               Pass: 100%/2   | Total:  1h 24m | Avg: 42m 05s | Max: 42m 08s | Hits:  66%/3828  
      🟩 GCC8               Pass: 100%/1   | Total: 43m 35s | Avg: 43m 35s | Max: 43m 35s | Hits:  58%/1914  
      🟩 GCC9               Pass: 100%/2   | Total:  1h 28m | Avg: 44m 01s | Max: 44m 02s | Hits:  64%/3828  
      🟩 GCC10              Pass: 100%/2   | Total:  1h 34m | Avg: 47m 10s | Max: 49m 51s | Hits:  58%/3828  
      🟩 GCC11              Pass: 100%/2   | Total:  1h 31m | Avg: 45m 46s | Max: 46m 21s | Hits:  58%/3828  
      🟩 GCC12              Pass: 100%/2   | Total:  1h 30m | Avg: 45m 16s | Max: 45m 22s | Hits:  58%/3828  
      🟩 GCC13              Pass: 100%/11  | Total:  4h 48m | Avg: 26m 11s | Max: 49m 58s | Hits:  64%/13398 
      🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 28m | Avg:  1h 14m | Max:  1h 15m | Hits:  67%/3812  
      🟩 MSVC14.43          Pass: 100%/5   | Total:  5h 18m | Avg:  1h 03m | Max:  1h 16m | Hits:  73%/9530  
      🟩 NVHPC25.5          Pass: 100%/2   | Total:  2h 25m | Avg:  1h 12m | Max:  1h 12m | Hits:  67%/3824  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/19  | Total: 10h 05m | Avg: 31m 51s | Max: 42m 12s | Hits:  78%/32521 
      🟩 GCC                Pass: 100%/22  | Total: 13h 00m | Avg: 35m 28s | Max: 49m 58s | Hits:  62%/34452 
      🟩 MSVC               Pass: 100%/7   | Total:  7h 46m | Avg:  1h 06m | Max:  1h 16m | Hits:  72%/13342 
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 25m | Avg:  1h 12m | Max:  1h 12m | Hits:  67%/3824  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 31m 46s | Avg: 15m 53s | Max: 23m 50s | Hits:  70%/1914  
      🟩 rtx2080            Pass: 100%/38  | Total:  1d 04h | Avg: 44m 58s | Max:  1h 16m | Hits:  69%/72672 
      🟩 rtx4090            Pass: 100%/10  | Total:  4h 16m | Avg: 25m 36s | Max:  1h 14m | Hits:  76%/9553  
    🟩 jobs
      🟩 Build              Pass: 100%/43  | Total:  1d 08h | Avg: 44m 49s | Max:  1h 16m | Hits:  69%/82233 
      🟩 TestCPU            Pass: 100%/3   | Total: 45m 11s | Avg: 15m 03s | Max: 36m 51s | Hits:  99%/1906  
      🟩 TestGPU            Pass: 100%/4   | Total: 24m 24s | Avg:  6m 06s | Max:  7m 56s
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 31m 46s | Avg: 15m 53s | Max: 23m 50s | Hits:  70%/1914  
      🟩 90;90a             Pass: 100%/2   | Total:  1h 40m | Avg: 50m 06s | Max:  1h 06m | Hits:  66%/3820  
      🟩 100;120            Pass: 100%/2   | Total:  1h 37m | Avg: 48m 53s | Max:  1h 03m | Hits:  67%/3820  
    🟩 std
      🟩 17                 Pass: 100%/21  | Total: 16h 31m | Avg: 47m 12s | Max:  1h 16m | Hits:  69%/40160 
      🟩 20                 Pass: 100%/27  | Total: 16h 02m | Avg: 35m 39s | Max:  1h 14m | Hits:  72%/42065 
    
  • 🟩 libcudacxx: Pass: 100%/48 | Total: 1d 00h | Avg: 30m 27s | Max: 1h 53m | Hits: 58%/171337

    🟩 cpu
      🟩 amd64              Pass: 100%/46  | Total: 23h 35m | Avg: 30m 46s | Max:  1h 53m | Hits:  58%/163676
      🟩 arm64              Pass: 100%/2   | Total: 46m 23s | Avg: 23m 11s | Max: 36m 13s | Hits:  62%/7661  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  1h 57m | Avg: 23m 29s | Max: 38m 06s | Hits:  57%/18790 
      🟩 12.9               Pass: 100%/43  | Total: 22h 24m | Avg: 31m 16s | Max:  1h 53m | Hits:  59%/152547
    🟩 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 57m 19s | Avg: 28m 39s | Max: 28m 51s | Hits:  29%/7625  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  1h 57m | Avg: 23m 29s | Max: 38m 06s | Hits:  57%/18790 
      🟩 nvcc12.9           Pass: 100%/41  | Total: 21h 27m | Avg: 31m 23s | Max:  1h 53m | Hits:  60%/144922
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 57m 19s | Avg: 28m 39s | Max: 28m 51s | Hits:  29%/7625  
      🟩 nvcc               Pass: 100%/46  | Total: 23h 24m | Avg: 30m 32s | Max:  1h 53m | Hits:  60%/163712
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  1h 55m | Avg: 28m 49s | Max: 37m 29s | Hits:  47%/15206 
      🟩 Clang15            Pass: 100%/2   | Total: 46m 54s | Avg: 23m 27s | Max: 36m 28s | Hits:  63%/7621  
      🟩 Clang16            Pass: 100%/2   | Total: 48m 01s | Avg: 24m 00s | Max: 37m 08s | Hits:  62%/7621  
      🟩 Clang17            Pass: 100%/2   | Total: 21m 15s | Avg: 10m 37s | Max: 10m 50s | Hits:  94%/7621  
      🟩 Clang18            Pass: 100%/2   | Total:  1h 12m | Avg: 36m 16s | Max: 38m 30s | Hits:  31%/7621  
      🟩 Clang19            Pass: 100%/6   | Total:  3h 59m | Avg: 39m 51s | Max:  1h 51m | Hits:  56%/22906 
      🟩 GCC7               Pass: 100%/2   | Total: 35m 15s | Avg: 17m 37s | Max: 28m 37s | Hits:  63%/7557  
      🟩 GCC8               Pass: 100%/1   | Total:  7m 41s | Avg:  7m 41s | Max:  7m 41s | Hits:  94%/3789  
      🟩 GCC9               Pass: 100%/2   | Total:  1h 09m | Avg: 34m 31s | Max: 36m 46s | Hits:  31%/7569  
      🟩 GCC10              Pass: 100%/2   | Total:  1h 18m | Avg: 39m 29s | Max: 42m 15s | Hits:  31%/7623  
      🟩 GCC11              Pass: 100%/2   | Total:  1h 15m | Avg: 37m 35s | Max: 38m 09s | Hits:  31%/7619  
      🟩 GCC12              Pass: 100%/2   | Total: 23m 00s | Avg: 11m 30s | Max: 12m 11s | Hits:  94%/7623  
      🟩 GCC13              Pass: 100%/11  | Total:  4h 59m | Avg: 27m 13s | Max:  1h 53m | Hits:  71%/30983 
      🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 21m | Avg: 40m 31s | Max: 42m 56s | Hits:  31%/7299  
      🟩 MSVC14.43          Pass: 100%/4   | Total:  2h 30m | Avg: 37m 34s | Max: 42m 34s | Hits:  78%/15072 
      🟩 NVHPC25.5          Pass: 100%/2   | Total:  1h 38m | Avg: 49m 28s | Max: 50m 23s | Hits:  30%/7607  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/18  | Total:  9h 03m | Avg: 30m 10s | Max:  1h 51m | Hits:  57%/68596 
      🟩 GCC                Pass: 100%/22  | Total:  9h 48m | Avg: 26m 45s | Max:  1h 53m | Hits:  61%/72763 
      🟩 MSVC               Pass: 100%/6   | Total:  3h 51m | Avg: 38m 33s | Max: 42m 56s | Hits:  63%/22371 
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 38m | Avg: 49m 28s | Max: 50m 23s | Hits:  30%/7607  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 30m 49s | Avg: 15m 24s | Max: 23m 37s | Hits:  96%/7828  
      🟩 rtx2080            Pass: 100%/46  | Total: 23h 51m | Avg: 31m 06s | Max:  1h 53m | Hits:  57%/163509
    🟩 jobs
      🟩 Build              Pass: 100%/42  | Total: 19h 18m | Avg: 27m 35s | Max: 50m 23s | Hits:  57%/159720
      🟩 NVRTC              Pass: 100%/2   | Total: 53m 20s | Avg: 26m 40s | Max: 31m 22s | Hits:  90%/42    
      🟩 Test               Pass: 100%/3   | Total:  4h 08m | Avg:  1h 22m | Max:  1h 53m | Hits:  75%/11575 
      🟩 VerifyCodegen      Pass: 100%/1   | Total:  1m 44s | Avg:  1m 44s | Max:  1m 44s
    🟩 sm
      🟩 75                 Pass: 100%/2   | Total: 53m 20s | Avg: 26m 40s | Max: 31m 22s | Hits:  90%/42    
      🟩 90                 Pass: 100%/2   | Total: 30m 49s | Avg: 15m 24s | Max: 23m 37s | Hits:  96%/7828  
      🟩 90;90a             Pass: 100%/2   | Total: 44m 38s | Avg: 22m 19s | Max: 35m 39s | Hits:  94%/7775  
      🟩 100;120            Pass: 100%/2   | Total: 41m 46s | Avg: 20m 53s | Max: 33m 48s | Hits:  94%/7775  
    🟩 std
      🟩 17                 Pass: 100%/22  | Total: 10h 46m | Avg: 29m 21s | Max: 48m 33s | Hits:  49%/79154 
      🟩 20                 Pass: 100%/25  | Total: 13h 34m | Avg: 32m 34s | Max:  1h 53m | Hits:  66%/92183 
    
  • 🟩 cudax: Pass: 100%/28 | Total: 3h 47m | Avg: 8m 06s | Max: 16m 31s | Hits: 89%/15446

    🟩 cpu
      🟩 amd64              Pass: 100%/24  | Total:  3h 24m | Avg:  8m 32s | Max: 16m 31s | Hits:  89%/13066 
      🟩 arm64              Pass: 100%/4   | Total: 22m 15s | Avg:  5m 33s | Max:  6m 20s | Hits:  89%/2380  
    🟩 ctk
      🟩 12.0               Pass: 100%/3   | Total: 26m 41s | Avg:  8m 53s | Max: 16m 31s | Hits:  87%/1480  
      🟩 12.9               Pass: 100%/25  | Total:  3h 20m | Avg:  8m 01s | Max: 16m 29s | Hits:  89%/13966 
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/3   | Total: 26m 41s | Avg:  8m 53s | Max: 16m 31s | Hits:  87%/1480  
      🟩 nvcc12.9           Pass: 100%/25  | Total:  3h 20m | Avg:  8m 01s | Max: 16m 29s | Hits:  89%/13966 
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/28  | Total:  3h 47m | Avg:  8m 06s | Max: 16m 31s | Hits:  89%/15446 
    🟩 cxx
      🟩 Clang14            Pass: 100%/2   | Total: 10m 28s | Avg:  5m 14s | Max:  5m 53s | Hits:  89%/1192  
      🟩 Clang15            Pass: 100%/1   | Total:  5m 41s | Avg:  5m 41s | Max:  5m 41s | Hits:  89%/595   
      🟩 Clang16            Pass: 100%/1   | Total:  5m 38s | Avg:  5m 38s | Max:  5m 38s | Hits:  89%/595   
      🟩 Clang17            Pass: 100%/1   | Total:  5m 31s | Avg:  5m 31s | Max:  5m 31s | Hits:  89%/595   
      🟩 Clang18            Pass: 100%/1   | Total:  5m 50s | Avg:  5m 50s | Max:  5m 50s | Hits:  89%/595   
      🟩 Clang19            Pass: 100%/4   | Total: 26m 00s | Avg:  6m 30s | Max:  9m 33s | Hits:  92%/2380  
      🟩 GCC10              Pass: 100%/2   | Total: 11m 59s | Avg:  5m 59s | Max:  6m 24s | Hits:  89%/1192  
      🟩 GCC11              Pass: 100%/1   | Total:  6m 21s | Avg:  6m 21s | Max:  6m 21s | Hits:  89%/595   
      🟩 GCC12              Pass: 100%/1   | Total:  6m 43s | Avg:  6m 43s | Max:  6m 43s | Hits:  89%/595   
      🟩 GCC13              Pass: 100%/8   | Total: 56m 54s | Avg:  7m 06s | Max: 12m 01s | Hits:  91%/4760  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 16m 31s | Avg: 16m 31s | Max: 16m 31s | Hits:  76%/290   
      🟩 MSVC14.43          Pass: 100%/3   | Total: 48m 42s | Avg: 16m 14s | Max: 16m 29s | Hits:  76%/876   
      🟩 NVHPC25.5          Pass: 100%/2   | Total: 20m 50s | Avg: 10m 25s | Max: 10m 34s | Hits:  87%/1186  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/10  | Total: 59m 08s | Avg:  5m 54s | Max:  9m 33s | Hits:  90%/5952  
      🟩 GCC                Pass: 100%/12  | Total:  1h 21m | Avg:  6m 49s | Max: 12m 01s | Hits:  91%/7142  
      🟩 MSVC               Pass: 100%/4   | Total:  1h 05m | Avg: 16m 18s | Max: 16m 31s | Hits:  76%/1166  
      🟩 NVHPC              Pass: 100%/2   | Total: 20m 50s | Avg: 10m 25s | Max: 10m 34s | Hits:  87%/1186  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 14m 01s | Avg:  7m 00s | Max:  8m 44s | Hits:  94%/1190  
      🟩 rtx2080            Pass: 100%/26  | Total:  3h 33m | Avg:  8m 11s | Max: 16m 31s | Hits:  89%/14256 
    🟩 jobs
      🟩 Build              Pass: 100%/25  | Total:  3h 16m | Avg:  7m 52s | Max: 16m 31s | Hits:  88%/13661 
      🟩 Test               Pass: 100%/3   | Total: 30m 18s | Avg: 10m 06s | Max: 12m 01s | Hits:  99%/1785  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 14m 01s | Avg:  7m 00s | Max:  8m 44s | Hits:  94%/1190  
      🟩 90;90a             Pass: 100%/2   | Total: 22m 37s | Avg: 11m 18s | Max: 16m 29s | Hits:  85%/887   
      🟩 100;120            Pass: 100%/2   | Total: 21m 54s | Avg: 10m 57s | Max: 15m 56s | Hits:  85%/887   
    🟩 std
      🟩 17                 Pass: 100%/3   | Total: 21m 46s | Avg:  7m 15s | Max: 10m 16s | Hits:  88%/1783  
      🟩 20                 Pass: 100%/25  | Total:  3h 25m | Avg:  8m 12s | Max: 16m 31s | Hits:  89%/13663 
    
  • 🟩 python: Pass: 100%/22 | Total: 3h 37m | Avg: 9m 53s | Max: 18m 43s

    🟩 cpu
      🟩 amd64              Pass: 100%/22  | Total:  3h 37m | Avg:  9m 53s | Max: 18m 43s
    🟩 ctk
      🟩 12.5               Pass: 100%/6   | Total: 43m 29s | Avg:  7m 14s | Max: 13m 18s
      🟩 12.8               Pass: 100%/2   | Total: 36m 06s | Avg: 18m 03s | Max: 18m 04s
      🟩 12.9               Pass: 100%/14  | Total:  2h 18m | Avg:  9m 51s | Max: 18m 43s
    🟩 cudacxx
      🟩 nvcc12.5           Pass: 100%/6   | Total: 43m 29s | Avg:  7m 14s | Max: 13m 18s
      🟩 nvcc12.8           Pass: 100%/2   | Total: 36m 06s | Avg: 18m 03s | Max: 18m 04s
      🟩 nvcc12.9           Pass: 100%/14  | Total:  2h 18m | Avg:  9m 51s | Max: 18m 43s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/22  | Total:  3h 37m | Avg:  9m 53s | Max: 18m 43s
    🟩 cxx
      🟩 GCC13              Pass: 100%/22  | Total:  3h 37m | Avg:  9m 53s | Max: 18m 43s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/22  | Total:  3h 37m | Avg:  9m 53s | Max: 18m 43s
    🟩 gpu
      🟩 h100               Pass: 100%/4   | Total: 37m 41s | Avg:  9m 25s | Max: 16m 43s
      🟩 l4                 Pass: 100%/18  | Total:  2h 59m | Avg:  9m 59s | Max: 18m 43s
    🟩 jobs
      🟩 Build cuda.cccl    Pass: 100%/2   | Total: 19m 21s | Avg:  9m 40s | Max:  9m 54s
      🟩 Test cuda.cccl.cooperative Pass: 100%/5   | Total:  1h 05m | Avg: 13m 09s | Max: 13m 37s
      🟩 Test cuda.cccl.examples Pass: 100%/5   | Total: 21m 47s | Avg:  4m 21s | Max:  4m 44s
      🟩 Test cuda.cccl.headers Pass: 100%/5   | Total: 20m 49s | Avg:  4m 09s | Max:  4m 44s
      🟩 Test cuda.cccl.parallel Pass: 100%/5   | Total:  1h 29m | Avg: 17m 58s | Max: 18m 43s
    🟩 py_version
      🟩 3.10               Pass: 100%/9   | Total:  1h 31m | Avg: 10m 10s | Max: 18m 43s
      🟩 3.13               Pass: 100%/13  | Total:  2h 06m | Avg:  9m 42s | Max: 18m 19s
    
  • 🟩 cccl_c_parallel: Pass: 100%/4 | Total: 1h 00m | Avg: 15m 07s | Max: 22m 05s | Hits: 97%/680

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total:  1h 00m | Avg: 15m 07s | Max: 22m 05s | Hits:  97%/680   
    🟩 ctk
      🟩 12.9               Pass: 100%/4   | Total:  1h 00m | Avg: 15m 07s | Max: 22m 05s | Hits:  97%/680   
    🟩 cudacxx
      🟩 nvcc12.9           Pass: 100%/4   | Total:  1h 00m | Avg: 15m 07s | Max: 22m 05s | Hits:  97%/680   
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total:  1h 00m | Avg: 15m 07s | Max: 22m 05s | Hits:  97%/680   
    🟩 cxx
      🟩 GCC13              Pass: 100%/4   | Total:  1h 00m | Avg: 15m 07s | Max: 22m 05s | Hits:  97%/680   
    🟩 cxx_family
      🟩 GCC                Pass: 100%/4   | Total:  1h 00m | Avg: 15m 07s | Max: 22m 05s | Hits:  97%/680   
    🟩 gpu
      🟩 h100               Pass: 100%/1   | Total: 20m 10s | Avg: 20m 10s | Max: 20m 10s | Hits:  98%/170   
      🟩 l4                 Pass: 100%/1   | Total: 15m 55s | Avg: 15m 55s | Max: 15m 55s | Hits:  98%/170   
      🟩 rtx2080            Pass: 100%/2   | Total: 24m 26s | Avg: 12m 13s | Max: 22m 05s | Hits:  96%/340   
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 21s | Avg:  2m 21s | Max:  2m 21s | Hits:  94%/170   
      🟩 Test               Pass: 100%/3   | Total: 58m 10s | Avg: 19m 23s | Max: 22m 05s | Hits:  98%/510   
    
  • 🟩 packaging: Pass: 100%/4 | Total: 15m 31s | Avg: 3m 52s | Max: 4m 38s

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total: 15m 31s | Avg:  3m 52s | Max:  4m 38s
    🟩 ctk
      🟩 12.0               Pass: 100%/2   | Total:  7m 51s | Avg:  3m 55s | Max:  4m 38s
      🟩 12.9               Pass: 100%/2   | Total:  7m 40s | Avg:  3m 50s | Max:  4m 16s
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/2   | Total:  7m 51s | Avg:  3m 55s | Max:  4m 38s
      🟩 nvcc12.9           Pass: 100%/2   | Total:  7m 40s | Avg:  3m 50s | Max:  4m 16s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 15m 31s | Avg:  3m 52s | Max:  4m 38s
    🟩 cxx
      🟩 Clang14            Pass: 100%/1   | Total:  3m 13s | Avg:  3m 13s | Max:  3m 13s
      🟩 Clang19            Pass: 100%/1   | Total:  3m 24s | Avg:  3m 24s | Max:  3m 24s
      🟩 GCC12              Pass: 100%/1   | Total:  4m 38s | Avg:  4m 38s | Max:  4m 38s
      🟩 GCC13              Pass: 100%/1   | Total:  4m 16s | Avg:  4m 16s | Max:  4m 16s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/2   | Total:  6m 37s | Avg:  3m 18s | Max:  3m 24s
      🟩 GCC                Pass: 100%/2   | Total:  8m 54s | Avg:  4m 27s | Max:  4m 38s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 15m 31s | Avg:  3m 52s | Max:  4m 38s
    🟩 jobs
      🟩 Test               Pass: 100%/4   | Total: 15m 31s | Avg:  3m 52s | Max:  4m 38s
    
  • 🟩 stdpar: Pass: 100%/4 | Total: 16m 13s | Avg: 4m 03s | Max: 4m 22s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total:  8m 23s | Avg:  4m 11s | Max:  4m 22s
      🟩 arm64              Pass: 100%/2   | Total:  7m 50s | Avg:  3m 55s | Max:  3m 59s
    🟩 ctk
      🟩 12.9               Pass: 100%/4   | Total: 16m 13s | Avg:  4m 03s | Max:  4m 22s
    🟩 cudacxx
      🟩 nvcc12.9           Pass: 100%/4   | Total: 16m 13s | Avg:  4m 03s | Max:  4m 22s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 16m 13s | Avg:  4m 03s | Max:  4m 22s
    🟩 cxx
      🟩 NVHPC25.5          Pass: 100%/4   | Total: 16m 13s | Avg:  4m 03s | Max:  4m 22s
    🟩 cxx_family
      🟩 NVHPC              Pass: 100%/4   | Total: 16m 13s | Avg:  4m 03s | Max:  4m 22s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 16m 13s | Avg:  4m 03s | Max:  4m 22s
    🟩 jobs
      🟩 Build              Pass: 100%/4   | Total: 16m 13s | Avg:  4m 03s | Max:  4m 22s
    🟩 std
      🟩 17                 Pass: 100%/2   | Total:  8m 21s | Avg:  4m 10s | Max:  4m 22s
      🟩 20                 Pass: 100%/2   | Total:  7m 52s | Avg:  3m 56s | Max:  4m 01s
    

👃 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: 210)

# Runner
128 linux-amd64-cpu16
23 windows-amd64-cpu16
17 linux-amd64-gpu-l4-latest-1
12 linux-arm64-cpu16
11 linux-amd64-gpu-rtx2080-latest-1
10 linux-amd64-gpu-h100-latest-1
6 linux-amd64-gpu-rtxa6000-latest-1
3 linux-amd64-gpu-rtx4090-latest-1

@miscco miscco force-pushed the dispatch_algorithms branch from 04640ea to 501d5d7 Compare October 23, 2025 12:49
@miscco miscco changed the title Provide a stub dispatch for for_each [Draft] Provide a stub dispatch for for_each Oct 23, 2025
@miscco miscco changed the title [Draft] Provide a stub dispatch for for_each [Draft] PoC for a CUB based parallel for_each implementation in libcu++ Oct 23, 2025
@miscco miscco force-pushed the dispatch_algorithms branch 4 times, most recently from cdf48f8 to 2b9f630 Compare October 27, 2025 14:12
@github-actions

This comment has been minimized.

@miscco miscco force-pushed the dispatch_algorithms branch from 6dece7c to bba027b Compare November 11, 2025 10:02
@github-actions

This comment has been minimized.

@miscco miscco force-pushed the dispatch_algorithms branch from bba027b to 98f8d25 Compare November 12, 2025 10:19
@github-actions

This comment has been minimized.

@miscco miscco force-pushed the dispatch_algorithms branch from 98f8d25 to c1863aa Compare November 12, 2025 14:55
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@miscco miscco force-pushed the dispatch_algorithms branch from c1863aa to fb8d162 Compare November 13, 2025 13:00
@github-actions

This comment has been minimized.

Comment on lines +82 to +84
static_assert(__always_false_v<_Policy>,
"__pstl_dispatch: CUDA backend of cuda::std::for_each_n requires at least random access iterators");
return ::cuda::std::for_each_n(::cuda::std::move(__first), __orig_n, ::cuda::std::move(__func));
Copy link
Contributor

Choose a reason for hiding this comment

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

Q: Do we want to remove the serial fallback here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That would not compile, because it would complain about a missing return.

The static assert will fire in case of a bad instantiation but we want the other part to go through

Copy link
Collaborator

@gevtushenko gevtushenko left a comment

Choose a reason for hiding this comment

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

Have a few suggestions below, but otherwise looks good! What would help is having some documentation on the policy and dispatch system. If you could write a developer guide as a follow up PR, that'd be great.

};

//! @brief Extracts the execution backend from the stored _Policy
template <uint32_t _Policy>
Copy link
Collaborator

Choose a reason for hiding this comment

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

suggestion: it feels like we are missing some other concept here. We have policy: how code should run (sequenced, parallel, unsequenced, etc.) and backend: where code should run (cuda, omp, tbb, etc.). In this template parameter, we have "something" that's policy + backend, which is also called policy. This makes it hard to understand what exactly we are working with. The only information that disambiguates the two is uint32 vs uint8, but it's hard to spot. If you could come up with some different term for policy + backend, that'd be great.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I thought about this a ton and I did not find a truly better name.

What i would say is that there is a difference between the execution policy and what I would consider the whole policy. The former is what the standard gives us as classification of how code should run. The latter is how we implement that for the different backends.

So yeah it is a tad close, but I did not find a better name.


# include <cuda/std/__cccl/prologue.h>

_CCCL_BEGIN_NAMESPACE_CUDA_STD_EXECUTION
Copy link
Collaborator

Choose a reason for hiding this comment

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

question (@srinivasyadav18): this is an algorithm implementation, should this implementation detail be part of cuda::std:: instead of cuda::std::execution?

Copy link
Contributor Author

@miscco miscco Nov 17, 2025

Choose a reason for hiding this comment

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

I believe this is the right place given that the execution policies are part of cuda::std::execution

This is also more the backend specific implementation than the algorithm itself

@miscco miscco force-pushed the dispatch_algorithms branch from fb8d162 to ffb96c1 Compare November 17, 2025 13:15
@github-actions

This comment has been minimized.

@miscco miscco force-pushed the dispatch_algorithms branch from ffb96c1 to dd66c04 Compare November 18, 2025 09:08
@github-actions

This comment has been minimized.

Copy link
Contributor

@bernhardmgruber bernhardmgruber left a comment

Choose a reason for hiding this comment

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

I am fine with leaving some questions on the execution policy design open and wait until we gather more experience. Those are internal types. The public APIs LGTM and the implementation seems reasonable.

@miscco miscco force-pushed the dispatch_algorithms branch from dd66c04 to b4226f8 Compare November 24, 2025 10:06
We currently tag our execution policies with just an enumeration for that represents the  standard execution policies.

However, this is not sufficient for our use cases, because we also want to pass along the execution backend and the memory_direction of the algorithm.

This changes our policies so that they take an unsigned integer instead of an enumeration and then adds facilities to set and get the respective properties
@miscco miscco force-pushed the dispatch_algorithms branch from b4226f8 to 7802f25 Compare November 24, 2025 10:20
@github-actions

This comment has been minimized.

@github-actions
Copy link
Contributor

🥳 CI Workflow Results

🟩 Finished in 9h 35m: Pass: 100%/166 | Total: 8d 21h | Max: 5h 09m | Hits: 22%/281928

See results here.

@miscco miscco merged commit 31ba49c into NVIDIA:main Nov 25, 2025
349 of 356 checks passed
@github-project-automation github-project-automation bot moved this from In Review to Done in CCCL Nov 25, 2025
@miscco miscco deleted the dispatch_algorithms branch November 25, 2025 08:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[FEA]: Implement CUDA backend for parallel cuda::std::for_each

5 participants