Skip to content

Extend and refactor transform overloads in CUDA system - #5238

Merged
bernhardmgruber merged 6 commits into
NVIDIA:mainfrom
bernhardmgruber:transform_cuda_overloads
Jul 17, 2025
Merged

bernhardmgruber merged 6 commits into
NVIDIA:mainfrom
bernhardmgruber:transform_cuda_overloads

Conversation

@bernhardmgruber

@bernhardmgruber bernhardmgruber commented Jul 14, 2025 •

Copy link
Copy Markdown
Contributor

This PR mostly adds a few more transform_if and transform[_if]_n overloads in the Thrust CUDA system, so we can put more custimized algorithms there in the (near) future. I also reordered the overloads more logically and switched the CDP fallback path to use cuda::std::transform.

@bernhardmgruber
bernhardmgruber force-pushed the transform_cuda_overloads branch from 529b2b1 to e347898 Compare July 14, 2025 12:30
@github-actions

Copy link
Copy Markdown
Contributor
🟨 CI finished in 6h 40m: Pass: 28%/139 | Total: 1d 08h | Avg: 14m 01s | Max: 1h 39m | Hits: 95%/16741
  • 🟥 cub: Pass: 0%/50 | Total: 13h 08m | Avg: 15m 46s | Max: 1h 39m

    🟥 cpu
      🟥 amd64              Pass:   0%/48  | Total: 12h 56m | Avg: 16m 10s | Max:  1h 39m
      🟥 arm64              Pass:   0%/2   | Total: 12m 50s | Avg:  6m 25s | Max:  6m 36s
    🟥 ctk
      🟥 12.0               Pass:   0%/5   | Total:  2h 05m | Avg: 25m 00s | Max:  1h 31m
      🟥 12.9               Pass:   0%/45  | Total: 11h 03m | Avg: 14m 45s | Max:  1h 39m
    🟥 cudacxx
      🟥 ClangCUDA19        Pass:   0%/2   | Total: 19m 13s | Avg:  9m 36s | Max:  9m 43s
      🟥 nvcc12.0           Pass:   0%/5   | Total:  2h 05m | Avg: 25m 00s | Max:  1h 31m
      🟥 nvcc12.9           Pass:   0%/43  | Total: 10h 44m | Avg: 14m 59s | Max:  1h 39m
    🟥 cudacxx_family
      🟥 ClangCUDA          Pass:   0%/2   | Total: 19m 13s | Avg:  9m 36s | Max:  9m 43s
      🟥 nvcc               Pass:   0%/48  | Total: 12h 49m | Avg: 16m 02s | Max:  1h 39m
    🟥 cxx
      🟥 Clang14            Pass:   0%/4   | Total: 30m 54s | Avg:  7m 43s | Max: 12m 30s
      🟥 Clang15            Pass:   0%/2   | Total: 22m 11s | Avg: 11m 05s | Max: 11m 11s
      🟥 Clang16            Pass:   0%/2   | Total: 11m 54s | Avg:  5m 57s | Max:  6m 06s
      🟥 Clang17            Pass:   0%/2   | Total: 12m 03s | Avg:  6m 01s | Max:  6m 20s
      🟥 Clang18            Pass:   0%/2   | Total: 12m 12s | Avg:  6m 06s | Max:  6m 15s
      🟥 Clang19            Pass:   0%/7   | Total: 40m 57s | Avg:  5m 51s | Max: 10m 04s
      🟥 GCC7               Pass:   0%/2   | Total: 13m 36s | Avg:  6m 48s | Max:  7m 27s
      🟥 GCC8               Pass:   0%/1   | Total: 10m 37s | Avg: 10m 37s | Max: 10m 37s
      🟥 GCC9               Pass:   0%/2   | Total: 12m 29s | Avg:  6m 14s | Max:  6m 22s
      🟥 GCC10              Pass:   0%/2   | Total: 12m 26s | Avg:  6m 13s | Max:  6m 47s
      🟥 GCC11              Pass:   0%/2   | Total: 16m 28s | Avg:  8m 14s | Max: 10m 26s
      🟥 GCC12              Pass:   0%/2   | Total: 15m 36s | Avg:  7m 48s | Max:  9m 53s
      🟥 GCC13              Pass:   0%/12  | Total: 34m 05s | Avg:  2m 50s | Max: 10m 17s
      🟥 MSVC14.29          Pass:   0%/2   | Total:  3h 10m | Avg:  1h 35m | Max:  1h 39m
      🟥 MSVC14.43          Pass:   0%/4   | Total:  5h 27m | Avg:  1h 21m | Max:  1h 32m
      🟥 NVHPC25.5          Pass:   0%/2   | Total: 24m 57s | Avg: 12m 28s | Max: 12m 49s
    🟥 cxx_family
      🟥 Clang              Pass:   0%/19  | Total:  2h 10m | Avg:  6m 51s | Max: 12m 30s
      🟥 GCC                Pass:   0%/23  | Total:  1h 55m | Avg:  5m 00s | Max: 10m 37s
      🟥 MSVC               Pass:   0%/6   | Total:  8h 38m | Avg:  1h 26m | Max:  1h 39m
      🟥 NVHPC              Pass:   0%/2   | Total: 24m 57s | Avg: 12m 28s | Max: 12m 49s
    🟥 gpu
      🟥 h100               Pass:   0%/3   | Total:  3m 10s | Avg:  1m 03s | Max:  3m 10s
      🟥 rtx2080            Pass:   0%/39  | Total: 12h 45m | Avg: 19m 37s | Max:  1h 39m
      🟥 rtxa6000           Pass:   0%/8   | Total: 20m 21s | Avg:  2m 32s | Max: 10m 17s
    🟥 jobs
      🟥 Build              Pass:   0%/42  | Total: 13h 08m | Avg: 18m 47s | Max:  1h 39m
      🟥 DeviceLaunch       Pass:   0%/1  
      🟥 GraphCapture       Pass:   0%/1  
      🟥 HostLaunch         Pass:   0%/3  
      🟥 TestGPU            Pass:   0%/3  
    🟥 sm
      🟥 90                 Pass:   0%/3   | Total:  3m 10s | Avg:  1m 03s | Max:  3m 10s
      🟥 90;90a             Pass:   0%/2   | Total:  1h 14m | Avg: 37m 04s | Max:  1h 10m
      🟥 100;120            Pass:   0%/2   | Total:  1h 18m | Avg: 39m 27s | Max:  1h 14m
    🟥 std
      🟥 17                 Pass:   0%/21  | Total:  6h 55m | Avg: 19m 48s | Max:  1h 39m
      🟥 20                 Pass:   0%/29  | Total:  6h 13m | Avg: 12m 52s | Max:  1h 32m
    
  • 🟥 thrust: Pass: 0%/50 | Total: 14h 53m | Avg: 17m 51s | Max: 1h 14m

    🟥 cmake_options
      🟥 -DTHRUST_DISPATCH_TYPE=Force32bit Pass:   0%/2   | Total: 17m 05s | Avg:  8m 32s | Max: 17m 05s
    🟥 cpu
      🟥 amd64              Pass:   0%/48  | Total: 14h 17m | Avg: 17m 51s | Max:  1h 14m
      🟥 arm64              Pass:   0%/2   | Total: 35m 47s | Avg: 17m 53s | Max: 19m 05s
    🟥 ctk
      🟥 12.0               Pass:   0%/5   | Total:  1h 33m | Avg: 18m 39s | Max:  1h 02m
      🟥 12.9               Pass:   0%/45  | Total: 13h 19m | Avg: 17m 46s | Max:  1h 14m
    🟥 cudacxx
      🟥 ClangCUDA19        Pass:   0%/2   | Total: 12m 30s | Avg:  6m 15s | Max:  6m 18s
      🟥 nvcc12.0           Pass:   0%/5   | Total:  1h 33m | Avg: 18m 39s | Max:  1h 02m
      🟥 nvcc12.9           Pass:   0%/43  | Total: 13h 07m | Avg: 18m 18s | Max:  1h 14m
    🟥 cudacxx_family
      🟥 ClangCUDA          Pass:   0%/2   | Total: 12m 30s | Avg:  6m 15s | Max:  6m 18s
      🟥 nvcc               Pass:   0%/48  | Total: 14h 40m | Avg: 18m 20s | Max:  1h 14m
    🟥 cxx
      🟥 Clang14            Pass:   0%/4   | Total: 39m 16s | Avg:  9m 49s | Max: 12m 27s
      🟥 Clang15            Pass:   0%/2   | Total: 27m 39s | Avg: 13m 49s | Max: 14m 26s
      🟥 Clang16            Pass:   0%/2   | Total: 27m 04s | Avg: 13m 32s | Max: 14m 01s
      🟥 Clang17            Pass:   0%/2   | Total: 32m 23s | Avg: 16m 11s | Max: 16m 13s
      🟥 Clang18            Pass:   0%/2   | Total: 26m 06s | Avg: 13m 03s | Max: 14m 28s
      🟥 Clang19            Pass:   0%/7   | Total: 58m 59s | Avg:  8m 25s | Max: 16m 42s
      🟥 GCC7               Pass:   0%/2   | Total: 20m 49s | Avg: 10m 24s | Max: 12m 46s
      🟥 GCC8               Pass:   0%/1   | Total: 13m 57s | Avg: 13m 57s | Max: 13m 57s
      🟥 GCC9               Pass:   0%/2   | Total: 22m 49s | Avg: 11m 24s | Max: 14m 51s
      🟥 GCC10              Pass:   0%/2   | Total: 29m 01s | Avg: 14m 30s | Max: 14m 45s
      🟥 GCC11              Pass:   0%/2   | Total: 37m 23s | Avg: 18m 41s | Max: 20m 14s
      🟥 GCC12              Pass:   0%/2   | Total: 30m 12s | Avg: 15m 06s | Max: 15m 19s
      🟥 GCC13              Pass:   0%/11  | Total:  1h 38m | Avg:  8m 57s | Max: 19m 05s
      🟥 MSVC14.29          Pass:   0%/2   | Total:  2h 05m | Avg:  1h 02m | Max:  1h 03m
      🟥 MSVC14.43          Pass:   0%/5   | Total:  3h 59m | Avg: 47m 51s | Max:  1h 14m
      🟥 NVHPC25.5          Pass:   0%/2   | Total:  1h 03m | Avg: 31m 54s | Max: 35m 07s
    🟥 cxx_family
      🟥 Clang              Pass:   0%/19  | Total:  3h 31m | Avg: 11m 07s | Max: 16m 42s
      🟥 GCC                Pass:   0%/22  | Total:  4h 12m | Avg: 11m 29s | Max: 20m 14s
      🟥 MSVC               Pass:   0%/7   | Total:  6h 05m | Avg: 52m 10s | Max:  1h 14m
      🟥 NVHPC              Pass:   0%/2   | Total:  1h 03m | Avg: 31m 54s | Max: 35m 07s
    🟥 gpu
      🟥 h100               Pass:   0%/2   | Total:  8m 37s | Avg:  4m 18s | Max:  8m 37s
      🟥 rtx2080            Pass:   0%/38  | Total: 12h 51m | Avg: 20m 18s | Max:  1h 14m
      🟥 rtx4090            Pass:   0%/10  | Total:  1h 52m | Avg: 11m 17s | Max:  1h 04m
    🟥 jobs
      🟥 Build              Pass:   0%/43  | Total: 14h 53m | Avg: 20m 46s | Max:  1h 14m
      🟥 TestCPU            Pass:   0%/3  
      🟥 TestGPU            Pass:   0%/4  
    🟥 sm
      🟥 90                 Pass:   0%/2   | Total:  8m 37s | Avg:  4m 18s | Max:  8m 37s
      🟥 90;90a             Pass:   0%/2   | Total: 58m 56s | Avg: 29m 28s | Max: 46m 32s
      🟥 100;120            Pass:   0%/2   | Total:  1h 03m | Avg: 31m 56s | Max: 53m 23s
    🟥 std
      🟥 17                 Pass:   0%/21  | Total:  7h 32m | Avg: 21m 32s | Max:  1h 14m
      🟥 20                 Pass:   0%/27  | Total:  7h 03m | Avg: 15m 41s | Max:  1h 04m
    
  • 🟩 cudax: Pass: 100%/28 | Total: 3h 27m | Avg: 7m 24s | Max: 27m 15s | Hits: 95%/16246

    🟩 cpu
      🟩 amd64              Pass: 100%/24  | Total:  3h 13m | Avg:  8m 03s | Max: 27m 15s | Hits:  94%/13754 
      🟩 arm64              Pass: 100%/4   | Total: 14m 04s | Avg:  3m 31s | Max:  3m 48s | Hits:  99%/2492  
    🟩 ctk
      🟩 12.0               Pass: 100%/3   | Total: 21m 49s | Avg:  7m 16s | Max: 14m 42s | Hits:  95%/1568  
      🟩 12.9               Pass: 100%/25  | Total:  3h 05m | Avg:  7m 25s | Max: 27m 15s | Hits:  95%/14678 
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/3   | Total: 21m 49s | Avg:  7m 16s | Max: 14m 42s | Hits:  95%/1568  
      🟩 nvcc12.9           Pass: 100%/25  | Total:  3h 05m | Avg:  7m 25s | Max: 27m 15s | Hits:  95%/14678 
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/28  | Total:  3h 27m | Avg:  7m 24s | Max: 27m 15s | Hits:  95%/16246 
    🟩 cxx
      🟩 Clang14            Pass: 100%/2   | Total:  7m 20s | Avg:  3m 40s | Max:  3m 54s | Hits:  99%/1248  
      🟩 Clang15            Pass: 100%/1   | Total:  3m 43s | Avg:  3m 43s | Max:  3m 43s | Hits:  99%/623   
      🟩 Clang16            Pass: 100%/1   | Total:  3m 54s | Avg:  3m 54s | Max:  3m 54s | Hits:  99%/623   
      🟩 Clang17            Pass: 100%/1   | Total:  4m 02s | Avg:  4m 02s | Max:  4m 02s | Hits:  99%/623   
      🟩 Clang18            Pass: 100%/1   | Total:  3m 48s | Avg:  3m 48s | Max:  3m 48s | Hits:  99%/623   
      🟩 Clang19            Pass: 100%/4   | Total: 19m 00s | Avg:  4m 45s | Max:  8m 34s | Hits:  99%/2492  
      🟩 GCC10              Pass: 100%/2   | Total:  7m 54s | Avg:  3m 57s | Max:  4m 13s | Hits:  99%/1248  
      🟩 GCC11              Pass: 100%/1   | Total:  4m 02s | Avg:  4m 02s | Max:  4m 02s | Hits:  99%/623   
      🟩 GCC12              Pass: 100%/1   | Total:  4m 02s | Avg:  4m 02s | Max:  4m 02s | Hits:  99%/623   
      🟩 GCC13              Pass: 100%/8   | Total: 40m 18s | Avg:  5m 02s | Max:  9m 51s | Hits:  99%/4984  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 14m 42s | Avg: 14m 42s | Max: 14m 42s | Hits:  81%/322   
      🟩 MSVC14.43          Pass: 100%/3   | Total: 43m 04s | Avg: 14m 21s | Max: 14m 54s | Hits:  81%/972   
      🟩 NVHPC25.5          Pass: 100%/2   | Total: 51m 46s | Avg: 25m 53s | Max: 27m 15s | Hits:  64%/1242  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/10  | Total: 41m 47s | Avg:  4m 10s | Max:  8m 34s | Hits:  99%/6232  
      🟩 GCC                Pass: 100%/12  | Total: 56m 16s | Avg:  4m 41s | Max:  9m 51s | Hits:  99%/7478  
      🟩 MSVC               Pass: 100%/4   | Total: 57m 46s | Avg: 14m 26s | Max: 14m 54s | Hits:  81%/1294  
      🟩 NVHPC              Pass: 100%/2   | Total: 51m 46s | Avg: 25m 53s | Max: 27m 15s | Hits:  64%/1242  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 10m 39s | Avg:  5m 19s | Max:  7m 22s | Hits:  99%/1246  
      🟩 rtx2080            Pass: 100%/26  | Total:  3h 16m | Avg:  7m 34s | Max: 27m 15s | Hits:  94%/15000 
    🟩 jobs
      🟩 Build              Pass: 100%/25  | Total:  3h 01m | Avg:  7m 16s | Max: 27m 15s | Hits:  94%/14377 
      🟩 Test               Pass: 100%/3   | Total: 25m 47s | Avg:  8m 35s | Max:  9m 51s | Hits:  99%/1869  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 10m 39s | Avg:  5m 19s | Max:  7m 22s | Hits:  99%/1246  
      🟩 90;90a             Pass: 100%/2   | Total: 18m 54s | Avg:  9m 27s | Max: 14m 54s | Hits:  93%/947   
      🟩 100;120            Pass: 100%/2   | Total: 17m 53s | Avg:  8m 56s | Max: 13m 54s | Hits:  93%/947   
    🟩 std
      🟩 17                 Pass: 100%/3   | Total: 34m 14s | Avg: 11m 24s | Max: 27m 15s | Hits:  88%/1867  
      🟩 20                 Pass: 100%/25  | Total:  2h 53m | Avg:  6m 56s | Max: 24m 31s | Hits:  96%/14379 
    
  • 🟩 packaging: Pass: 100%/4 | Total: 17m 02s | Avg: 4m 15s | Max: 4m 44s

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total: 17m 02s | Avg:  4m 15s | Max:  4m 44s
    🟩 ctk
      🟩 12.0               Pass: 100%/2   | Total:  8m 28s | Avg:  4m 14s | Max:  4m 44s
      🟩 12.9               Pass: 100%/2   | Total:  8m 34s | Avg:  4m 17s | Max:  4m 28s
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/2   | Total:  8m 28s | Avg:  4m 14s | Max:  4m 44s
      🟩 nvcc12.9           Pass: 100%/2   | Total:  8m 34s | Avg:  4m 17s | Max:  4m 28s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 17m 02s | Avg:  4m 15s | Max:  4m 44s
    🟩 cxx
      🟩 Clang14            Pass: 100%/1   | Total:  4m 44s | Avg:  4m 44s | Max:  4m 44s
      🟩 Clang19            Pass: 100%/1   | Total:  4m 28s | Avg:  4m 28s | Max:  4m 28s
      🟩 GCC12              Pass: 100%/1   | Total:  3m 44s | Avg:  3m 44s | Max:  3m 44s
      🟩 GCC13              Pass: 100%/1   | Total:  4m 06s | Avg:  4m 06s | Max:  4m 06s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/2   | Total:  9m 12s | Avg:  4m 36s | Max:  4m 44s
      🟩 GCC                Pass: 100%/2   | Total:  7m 50s | Avg:  3m 55s | Max:  4m 06s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 17m 02s | Avg:  4m 15s | Max:  4m 44s
    🟩 jobs
      🟩 Test               Pass: 100%/4   | Total: 17m 02s | Avg:  4m 15s | Max:  4m 44s
    
  • 🟩 stdpar: Pass: 100%/4 | Total: 17m 20s | Avg: 4m 20s | Max: 4m 43s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total:  8m 28s | Avg:  4m 14s | Max:  4m 15s
      🟩 arm64              Pass: 100%/2   | Total:  8m 52s | Avg:  4m 26s | Max:  4m 43s
    🟩 ctk
      🟩 12.9               Pass: 100%/4   | Total: 17m 20s | Avg:  4m 20s | Max:  4m 43s
    🟩 cudacxx
      🟩 nvcc12.9           Pass: 100%/4   | Total: 17m 20s | Avg:  4m 20s | Max:  4m 43s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 17m 20s | Avg:  4m 20s | Max:  4m 43s
    🟩 cxx
      🟩 NVHPC25.5          Pass: 100%/4   | Total: 17m 20s | Avg:  4m 20s | Max:  4m 43s
    🟩 cxx_family
      🟩 NVHPC              Pass: 100%/4   | Total: 17m 20s | Avg:  4m 20s | Max:  4m 43s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 17m 20s | Avg:  4m 20s | Max:  4m 43s
    🟩 jobs
      🟩 Build              Pass: 100%/4   | Total: 17m 20s | Avg:  4m 20s | Max:  4m 43s
    🟩 std
      🟩 17                 Pass: 100%/2   | Total:  8m 56s | Avg:  4m 28s | Max:  4m 43s
      🟩 20                 Pass: 100%/2   | Total:  8m 24s | Avg:  4m 12s | Max:  4m 15s
    
  • 🟩 cccl_c_parallel: Pass: 100%/3 | Total: 24m 32s | Avg: 8m 10s | Max: 11m 15s | Hits: 98%/495

    🟩 cpu
      🟩 amd64              Pass: 100%/3   | Total: 24m 32s | Avg:  8m 10s | Max: 11m 15s | Hits:  98%/495   
    🟩 ctk
      🟩 12.9               Pass: 100%/3   | Total: 24m 32s | Avg:  8m 10s | Max: 11m 15s | Hits:  98%/495   
    🟩 cudacxx
      🟩 nvcc12.9           Pass: 100%/3   | Total: 24m 32s | Avg:  8m 10s | Max: 11m 15s | Hits:  98%/495   
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/3   | Total: 24m 32s | Avg:  8m 10s | Max: 11m 15s | Hits:  98%/495   
    🟩 cxx
      🟩 GCC13              Pass: 100%/3   | Total: 24m 32s | Avg:  8m 10s | Max: 11m 15s | Hits:  98%/495   
    🟩 cxx_family
      🟩 GCC                Pass: 100%/3   | Total: 24m 32s | Avg:  8m 10s | Max: 11m 15s | Hits:  98%/495   
    🟩 gpu
      🟩 h100               Pass: 100%/1   | Total: 11m 06s | Avg: 11m 06s | Max: 11m 06s | Hits:  98%/165   
      🟩 rtx2080            Pass: 100%/2   | Total: 13m 26s | Avg:  6m 43s | Max: 11m 15s | Hits:  98%/330   
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 11s | Avg:  2m 11s | Max:  2m 11s | Hits:  98%/165   
      🟩 Test               Pass: 100%/2   | Total: 22m 21s | Avg: 11m 10s | Max: 11m 15s | Hits:  98%/330   
    

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

# Runner
91 linux-amd64-cpu16
17 windows-amd64-cpu16
10 linux-arm64-cpu16
7 linux-amd64-gpu-rtx2080-latest-1
6 linux-amd64-gpu-rtxa6000-latest-1
5 linux-amd64-gpu-h100-latest-1
3 linux-amd64-gpu-rtx4090-latest-1

@bernhardmgruber
bernhardmgruber force-pushed the transform_cuda_overloads branch from e347898 to 9c3bcc3 Compare July 17, 2025 10:29
Comment thread thrust/thrust/transform.h Outdated
*/
template <typename InputIterator, typename ForwardIterator, typename UnaryFunction, typename Predicate>
ForwardIterator
_CCCL_HOST_DEVICE ForwardIterator

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should those and the other rather use _CCCL_API ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I frankly don't know. Looking into a few files, it looks like the Thrust public API has either _CCCL_HOST_DEVICE or no macro.

It also seems the overloads without execution policy have no macro. I guess I have to update this PR then.

@bernhardmgruber
bernhardmgruber force-pushed the transform_cuda_overloads branch from 0a76a3f to b43fbb4 Compare July 17, 2025 11:32
@github-actions

Copy link
Copy Markdown
Contributor
🟩 CI finished in 2h 09m: Pass: 100%/139 | Total: 3d 13h | Avg: 36m 54s | Max: 1h 45m | Hits: 78%/173788
  • 🟩 cub: Pass: 100%/50 | Total: 2d 00h | Avg: 58m 26s | Max: 1h 45m | Hits: 73%/61706

    🟩 cpu
      🟩 amd64              Pass: 100%/48  | Total:  1d 22h | Avg: 58m 30s | Max:  1h 45m | Hits:  73%/59190 
      🟩 arm64              Pass: 100%/2   | Total:  1h 53m | Avg: 56m 59s | Max: 59m 38s | Hits:  67%/2516  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  5h 29m | Avg:  1h 05m | Max:  1h 32m | Hits:  67%/6186  
      🟩 12.9               Pass: 100%/45  | Total:  1d 19h | Avg: 57m 37s | Max:  1h 45m | Hits:  73%/55520 
    🟩 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total:  1h 00m | Avg: 30m 24s | Max: 31m 15s | Hits:  73%/2165  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  5h 29m | Avg:  1h 05m | Max:  1h 32m | Hits:  67%/6186  
      🟩 nvcc12.9           Pass: 100%/43  | Total:  1d 18h | Avg: 58m 53s | Max:  1h 45m | Hits:  73%/53355 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total:  1h 00m | Avg: 30m 24s | Max: 31m 15s | Hits:  73%/2165  
      🟩 nvcc               Pass: 100%/48  | Total:  1d 23h | Avg: 59m 36s | Max:  1h 45m | Hits:  73%/59541 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  3h 53m | Avg: 58m 21s | Max:  1h 03m | Hits:  67%/5034  
      🟩 Clang15            Pass: 100%/2   | Total:  1h 57m | Avg: 58m 49s | Max: 59m 01s | Hits:  67%/2513  
      🟩 Clang16            Pass: 100%/2   | Total:  2h 04m | Avg:  1h 02m | Max:  1h 06m | Hits:  67%/2513  
      🟩 Clang17            Pass: 100%/2   | Total:  2h 01m | Avg:  1h 00m | Max:  1h 00m | Hits:  67%/2513  
      🟩 Clang18            Pass: 100%/2   | Total:  1h 50m | Avg: 55m 12s | Max: 56m 07s | Hits:  67%/2513  
      🟩 Clang19            Pass: 100%/7   | Total:  5h 01m | Avg: 43m 00s | Max:  1h 08m | Hits:  78%/8449  
      🟩 GCC7               Pass: 100%/2   | Total:  1h 57m | Avg: 58m 43s | Max:  1h 00m | Hits:  67%/2516  
      🟩 GCC8               Pass: 100%/1   | Total:  1h 06m | Avg:  1h 06m | Max:  1h 06m | Hits:  67%/1258  
      🟩 GCC9               Pass: 100%/2   | Total:  2h 07m | Avg:  1h 03m | Max:  1h 06m | Hits:  67%/2516  
      🟩 GCC10              Pass: 100%/2   | Total:  2h 08m | Avg:  1h 04m | Max:  1h 04m | Hits:  67%/2517  
      🟩 GCC11              Pass: 100%/2   | Total:  2h 08m | Avg:  1h 04m | Max:  1h 05m | Hits:  67%/2513  
      🟩 GCC12              Pass: 100%/2   | Total:  2h 05m | Avg:  1h 02m | Max:  1h 03m | Hits:  67%/2513  
      🟩 GCC13              Pass: 100%/12  | Total:  8h 53m | Avg: 44m 28s | Max:  1h 05m | Hits:  83%/15105 
      🟩 MSVC14.29          Pass: 100%/2   | Total:  3h 14m | Avg:  1h 37m | Max:  1h 41m | Hits:  67%/2306  
      🟩 MSVC14.43          Pass: 100%/4   | Total:  5h 39m | Avg:  1h 24m | Max:  1h 45m | Hits:  67%/4612  
      🟩 NVHPC25.5          Pass: 100%/2   | Total:  2h 31m | Avg:  1h 15m | Max:  1h 22m | Hits:  67%/2315  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/19  | Total: 16h 48m | Avg: 53m 04s | Max:  1h 08m | Hits:  71%/23535 
      🟩 GCC                Pass: 100%/23  | Total: 20h 27m | Avg: 53m 22s | Max:  1h 06m | Hits:  75%/28938 
      🟩 MSVC               Pass: 100%/6   | Total:  8h 54m | Avg:  1h 29m | Max:  1h 45m | Hits:  67%/6918  
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 31m | Avg:  1h 15m | Max:  1h 22m | Hits:  67%/2315  
    🟩 gpu
      🟩 h100               Pass: 100%/3   | Total:  1h 39m | Avg: 33m 18s | Max: 35m 37s | Hits:  88%/3777  
      🟩 rtx2080            Pass: 100%/39  | Total:  1d 17h | Avg:  1h 03m | Max:  1h 45m | Hits:  67%/47863 
      🟩 rtxa6000           Pass: 100%/8   | Total:  5h 47m | Avg: 43m 28s | Max:  1h 08m | Hits:  91%/10066 
    🟩 jobs
      🟩 Build              Pass: 100%/42  | Total:  1d 19h | Avg:  1h 02m | Max:  1h 45m | Hits:  67%/51638 
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 38m 26s | Avg: 38m 26s | Max: 38m 26s | Hits:  99%/1259  
      🟩 GraphCapture       Pass: 100%/1   | Total: 30m 13s | Avg: 30m 13s | Max: 30m 13s | Hits:  99%/1259  
      🟩 HostLaunch         Pass: 100%/3   | Total:  1h 50m | Avg: 36m 43s | Max: 42m 11s | Hits:  99%/3775  
      🟩 TestGPU            Pass: 100%/3   | Total:  1h 43m | Avg: 34m 37s | Max: 40m 33s | Hits:  99%/3775  
    🟩 sm
      🟩 90                 Pass: 100%/3   | Total:  1h 39m | Avg: 33m 18s | Max: 35m 37s | Hits:  88%/3777  
      🟩 90;90a             Pass: 100%/2   | Total:  1h 54m | Avg: 57m 21s | Max:  1h 07m | Hits:  67%/2412  
      🟩 100;120            Pass: 100%/2   | Total:  1h 58m | Avg: 59m 13s | Max:  1h 11m | Hits:  67%/2412  
    🟩 std
      🟩 17                 Pass: 100%/21  | Total: 23h 09m | Avg:  1h 06m | Max:  1h 45m | Hits:  67%/25810 
      🟩 20                 Pass: 100%/29  | Total:  1d 01h | Avg: 52m 51s | Max:  1h 36m | Hits:  76%/35896 
    
  • 🟩 thrust: Pass: 100%/50 | Total: 1d 08h | Avg: 38m 41s | Max: 1h 15m | Hits: 79%/95621

    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 47m 07s | Avg: 23m 33s | Max: 33m 58s | Hits:  89%/3828  
    🟩 cpu
      🟩 amd64              Pass: 100%/48  | Total:  1d 07h | Avg: 38m 49s | Max:  1h 15m | Hits:  79%/91794 
      🟩 arm64              Pass: 100%/2   | Total:  1h 11m | Avg: 35m 40s | Max: 37m 20s | Hits:  78%/3827  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  3h 22m | Avg: 40m 28s | Max:  1h 06m | Hits:  76%/9560  
      🟩 12.9               Pass: 100%/45  | Total:  1d 04h | Avg: 38m 29s | Max:  1h 15m | Hits:  80%/86061 
    🟩 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 56m 01s | Avg: 28m 00s | Max: 29m 38s | Hits:  78%/3826  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  3h 22m | Avg: 40m 28s | Max:  1h 06m | Hits:  76%/9560  
      🟩 nvcc12.9           Pass: 100%/43  | Total:  1d 03h | Avg: 38m 59s | Max:  1h 15m | Hits:  80%/82235 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 56m 01s | Avg: 28m 00s | Max: 29m 38s | Hits:  78%/3826  
      🟩 nvcc               Pass: 100%/48  | Total:  1d 07h | Avg: 39m 08s | Max:  1h 15m | Hits:  79%/91795 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  2h 19m | Avg: 34m 48s | Max: 41m 18s | Hits:  78%/7652  
      🟩 Clang15            Pass: 100%/2   | Total:  1h 13m | Avg: 36m 57s | Max: 38m 56s | Hits:  78%/3826  
      🟩 Clang16            Pass: 100%/2   | Total:  1h 15m | Avg: 37m 53s | Max: 38m 31s | Hits:  78%/3826  
      🟩 Clang17            Pass: 100%/2   | Total:  1h 12m | Avg: 36m 02s | Max: 36m 05s | Hits:  78%/3826  
      🟩 Clang18            Pass: 100%/2   | Total:  1h 12m | Avg: 36m 17s | Max: 36m 34s | Hits:  78%/3826  
      🟩 Clang19            Pass: 100%/7   | Total:  2h 59m | Avg: 25m 34s | Max: 36m 11s | Hits:  84%/13391 
      🟩 GCC7               Pass: 100%/2   | Total:  1h 15m | Avg: 37m 36s | Max: 40m 17s | Hits:  78%/3828  
      🟩 GCC8               Pass: 100%/1   | Total: 39m 46s | Avg: 39m 46s | Max: 39m 46s | Hits:  78%/1914  
      🟩 GCC9               Pass: 100%/2   | Total:  1h 24m | Avg: 42m 26s | Max: 48m 20s | Hits:  78%/3828  
      🟩 GCC10              Pass: 100%/2   | Total:  1h 20m | Avg: 40m 27s | Max: 41m 59s | Hits:  78%/3828  
      🟩 GCC11              Pass: 100%/2   | Total:  1h 20m | Avg: 40m 06s | Max: 42m 40s | Hits:  78%/3828  
      🟩 GCC12              Pass: 100%/2   | Total:  1h 27m | Avg: 43m 55s | Max: 43m 57s | Hits:  78%/3828  
      🟩 GCC13              Pass: 100%/11  | Total:  4h 46m | Avg: 26m 03s | Max: 40m 56s | Hits:  86%/21054 
      🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 22m | Avg:  1h 11m | Max:  1h 15m | Hits:  67%/3812  
      🟩 MSVC14.43          Pass: 100%/5   | Total:  5h 02m | Avg:  1h 00m | Max:  1h 15m | Hits:  74%/9530  
      🟩 NVHPC25.5          Pass: 100%/2   | Total:  2h 22m | Avg:  1h 11m | Max:  1h 14m | Hits:  67%/3824  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/19  | Total: 10h 12m | Avg: 32m 14s | Max: 41m 18s | Hits:  80%/36347 
      🟩 GCC                Pass: 100%/22  | Total: 12h 15m | Avg: 33m 25s | Max: 48m 20s | Hits:  82%/42108 
      🟩 MSVC               Pass: 100%/7   | Total:  7h 24m | Avg:  1h 03m | Max:  1h 15m | Hits:  72%/13342 
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 22m | Avg:  1h 11m | Max:  1h 14m | Hits:  67%/3824  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 36m 34s | Avg: 18m 17s | Max: 21m 57s | Hits:  89%/3828  
      🟩 rtx2080            Pass: 100%/38  | Total:  1d 03h | Avg: 42m 46s | Max:  1h 15m | Hits:  76%/72672 
      🟩 rtx4090            Pass: 100%/10  | Total:  4h 32m | Avg: 27m 17s | Max:  1h 15m | Hits:  90%/19121 
    🟩 jobs
      🟩 Build              Pass: 100%/43  | Total:  1d 06h | Avg: 42m 36s | Max:  1h 15m | Hits:  76%/82233 
      🟩 TestCPU            Pass: 100%/3   | Total: 51m 39s | Avg: 17m 13s | Max: 34m 19s | Hits:  99%/5733  
      🟩 TestGPU            Pass: 100%/4   | Total: 51m 09s | Avg: 12m 47s | Max: 14m 37s | Hits:  99%/7655  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 36m 34s | Avg: 18m 17s | Max: 21m 57s | Hits:  89%/3828  
      🟩 90;90a             Pass: 100%/2   | Total:  1h 35m | Avg: 47m 58s | Max:  1h 05m | Hits:  73%/3820  
      🟩 100;120            Pass: 100%/2   | Total:  1h 25m | Avg: 42m 32s | Max: 54m 30s | Hits:  73%/3820  
    🟩 std
      🟩 17                 Pass: 100%/21  | Total: 15h 45m | Avg: 45m 01s | Max:  1h 15m | Hits:  76%/40160 
      🟩 20                 Pass: 100%/27  | Total: 15h 42m | Avg: 34m 53s | Max:  1h 15m | Hits:  81%/51633 
    
  • 🟩 cudax: Pass: 100%/28 | Total: 3h 33m | Avg: 7m 37s | Max: 16m 20s | Hits: 90%/15966

    🟩 cpu
      🟩 amd64              Pass: 100%/24  | Total:  3h 12m | Avg:  8m 00s | Max: 16m 20s | Hits:  90%/13514 
      🟩 arm64              Pass: 100%/4   | Total: 21m 32s | Avg:  5m 23s | Max:  5m 54s | Hits:  90%/2452  
    🟩 ctk
      🟩 12.0               Pass: 100%/3   | Total: 25m 43s | Avg:  8m 34s | Max: 15m 10s | Hits:  88%/1538  
      🟩 12.9               Pass: 100%/25  | Total:  3h 08m | Avg:  7m 31s | Max: 16m 20s | Hits:  90%/14428 
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/3   | Total: 25m 43s | Avg:  8m 34s | Max: 15m 10s | Hits:  88%/1538  
      🟩 nvcc12.9           Pass: 100%/25  | Total:  3h 08m | Avg:  7m 31s | Max: 16m 20s | Hits:  90%/14428 
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/28  | Total:  3h 33m | Avg:  7m 37s | Max: 16m 20s | Hits:  90%/15966 
    🟩 cxx
      🟩 Clang14            Pass: 100%/2   | Total: 10m 54s | Avg:  5m 27s | Max:  5m 45s | Hits:  90%/1228  
      🟩 Clang15            Pass: 100%/1   | Total:  5m 30s | Avg:  5m 30s | Max:  5m 30s | Hits:  90%/613   
      🟩 Clang16            Pass: 100%/1   | Total:  5m 32s | Avg:  5m 32s | Max:  5m 32s | Hits:  90%/613   
      🟩 Clang17            Pass: 100%/1   | Total:  5m 26s | Avg:  5m 26s | Max:  5m 26s | Hits:  90%/613   
      🟩 Clang18            Pass: 100%/1   | Total:  5m 52s | Avg:  5m 52s | Max:  5m 52s | Hits:  90%/613   
      🟩 Clang19            Pass: 100%/4   | Total: 23m 36s | Avg:  5m 54s | Max:  7m 53s | Hits:  92%/2452  
      🟩 GCC10              Pass: 100%/2   | Total: 11m 23s | Avg:  5m 41s | Max:  5m 59s | Hits:  90%/1228  
      🟩 GCC11              Pass: 100%/1   | Total:  6m 18s | Avg:  6m 18s | Max:  6m 18s | Hits:  90%/613   
      🟩 GCC12              Pass: 100%/1   | Total:  6m 12s | Avg:  6m 12s | Max:  6m 12s | Hits:  90%/613   
      🟩 GCC13              Pass: 100%/8   | Total: 55m 14s | Avg:  6m 54s | Max: 10m 49s | Hits:  92%/4904  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 15m 10s | Avg: 15m 10s | Max: 15m 10s | Hits:  78%/312   
      🟩 MSVC14.43          Pass: 100%/3   | Total: 42m 39s | Avg: 14m 13s | Max: 16m 20s | Hits:  78%/942   
      🟩 NVHPC25.5          Pass: 100%/2   | Total: 19m 57s | Avg:  9m 58s | Max: 10m 00s | Hits:  88%/1222  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/10  | Total: 56m 50s | Avg:  5m 41s | Max:  7m 53s | Hits:  91%/6132  
      🟩 GCC                Pass: 100%/12  | Total:  1h 19m | Avg:  6m 35s | Max: 10m 49s | Hits:  91%/7358  
      🟩 MSVC               Pass: 100%/4   | Total: 57m 49s | Avg: 14m 27s | Max: 16m 20s | Hits:  78%/1254  
      🟩 NVHPC              Pass: 100%/2   | Total: 19m 57s | Avg:  9m 58s | Max: 10m 00s | Hits:  88%/1222  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 14m 03s | Avg:  7m 01s | Max:  9m 23s | Hits:  94%/1226  
      🟩 rtx2080            Pass: 100%/26  | Total:  3h 19m | Avg:  7m 40s | Max: 16m 20s | Hits:  89%/14740 
    🟩 jobs
      🟩 Build              Pass: 100%/25  | Total:  3h 05m | Avg:  7m 25s | Max: 16m 20s | Hits:  89%/14127 
      🟩 Test               Pass: 100%/3   | Total: 28m 05s | Avg:  9m 21s | Max: 10m 49s | Hits:  99%/1839  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 14m 03s | Avg:  7m 01s | Max:  9m 23s | Hits:  94%/1226  
      🟩 90;90a             Pass: 100%/2   | Total: 19m 00s | Avg:  9m 30s | Max: 12m 56s | Hits:  86%/927   
      🟩 100;120            Pass: 100%/2   | Total: 19m 19s | Avg:  9m 39s | Max: 13m 23s | Hits:  86%/927   
    🟩 std
      🟩 17                 Pass: 100%/3   | Total: 20m 45s | Avg:  6m 55s | Max: 10m 00s | Hits:  89%/1837  
      🟩 20                 Pass: 100%/25  | Total:  3h 12m | Avg:  7m 43s | Max: 16m 20s | Hits:  90%/14129 
    
  • 🟩 packaging: Pass: 100%/4 | Total: 15m 31s | Avg: 3m 52s | Max: 4m 04s

    🟩 cpu
      🟩 amd64              Pass: 100%/4   | Total: 15m 31s | Avg:  3m 52s | Max:  4m 04s
    🟩 ctk
      🟩 12.0               Pass: 100%/2   | Total:  7m 35s | Avg:  3m 47s | Max:  3m 51s
      🟩 12.9               Pass: 100%/2   | Total:  7m 56s | Avg:  3m 58s | Max:  4m 04s
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/2   | Total:  7m 35s | Avg:  3m 47s | Max:  3m 51s
      🟩 nvcc12.9           Pass: 100%/2   | Total:  7m 56s | Avg:  3m 58s | Max:  4m 04s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 15m 31s | Avg:  3m 52s | Max:  4m 04s
    🟩 cxx
      🟩 Clang14            Pass: 100%/1   | Total:  3m 44s | Avg:  3m 44s | Max:  3m 44s
      🟩 Clang19            Pass: 100%/1   | Total:  4m 04s | Avg:  4m 04s | Max:  4m 04s
      🟩 GCC12              Pass: 100%/1   | Total:  3m 51s | Avg:  3m 51s | Max:  3m 51s
      🟩 GCC13              Pass: 100%/1   | Total:  3m 52s | Avg:  3m 52s | Max:  3m 52s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/2   | Total:  7m 48s | Avg:  3m 54s | Max:  4m 04s
      🟩 GCC                Pass: 100%/2   | Total:  7m 43s | Avg:  3m 51s | Max:  3m 52s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 15m 31s | Avg:  3m 52s | Max:  4m 04s
    🟩 jobs
      🟩 Test               Pass: 100%/4   | Total: 15m 31s | Avg:  3m 52s | Max:  4m 04s
    
  • 🟩 stdpar: Pass: 100%/4 | Total: 16m 08s | Avg: 4m 02s | Max: 4m 11s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total:  8m 12s | Avg:  4m 06s | Max:  4m 11s
      🟩 arm64              Pass: 100%/2   | Total:  7m 56s | Avg:  3m 58s | Max:  4m 03s
    🟩 ctk
      🟩 12.9               Pass: 100%/4   | Total: 16m 08s | Avg:  4m 02s | Max:  4m 11s
    🟩 cudacxx
      🟩 nvcc12.9           Pass: 100%/4   | Total: 16m 08s | Avg:  4m 02s | Max:  4m 11s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 16m 08s | Avg:  4m 02s | Max:  4m 11s
    🟩 cxx
      🟩 NVHPC25.5          Pass: 100%/4   | Total: 16m 08s | Avg:  4m 02s | Max:  4m 11s
    🟩 cxx_family
      🟩 NVHPC              Pass: 100%/4   | Total: 16m 08s | Avg:  4m 02s | Max:  4m 11s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 16m 08s | Avg:  4m 02s | Max:  4m 11s
    🟩 jobs
      🟩 Build              Pass: 100%/4   | Total: 16m 08s | Avg:  4m 02s | Max:  4m 11s
    🟩 std
      🟩 17                 Pass: 100%/2   | Total:  8m 04s | Avg:  4m 02s | Max:  4m 11s
      🟩 20                 Pass: 100%/2   | Total:  8m 04s | Avg:  4m 02s | Max:  4m 03s
    
  • 🟩 cccl_c_parallel: Pass: 100%/3 | Total: 29m 04s | Avg: 9m 41s | Max: 14m 05s | Hits: 98%/495

    🟩 cpu
      🟩 amd64              Pass: 100%/3   | Total: 29m 04s | Avg:  9m 41s | Max: 14m 05s | Hits:  98%/495   
    🟩 ctk
      🟩 12.9               Pass: 100%/3   | Total: 29m 04s | Avg:  9m 41s | Max: 14m 05s | Hits:  98%/495   
    🟩 cudacxx
      🟩 nvcc12.9           Pass: 100%/3   | Total: 29m 04s | Avg:  9m 41s | Max: 14m 05s | Hits:  98%/495   
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/3   | Total: 29m 04s | Avg:  9m 41s | Max: 14m 05s | Hits:  98%/495   
    🟩 cxx
      🟩 GCC13              Pass: 100%/3   | Total: 29m 04s | Avg:  9m 41s | Max: 14m 05s | Hits:  98%/495   
    🟩 cxx_family
      🟩 GCC                Pass: 100%/3   | Total: 29m 04s | Avg:  9m 41s | Max: 14m 05s | Hits:  98%/495   
    🟩 gpu
      🟩 h100               Pass: 100%/1   | Total: 14m 05s | Avg: 14m 05s | Max: 14m 05s | Hits:  98%/165   
      🟩 rtx2080            Pass: 100%/2   | Total: 14m 59s | Avg:  7m 29s | Max: 11m 49s | Hits:  98%/330   
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  3m 10s | Avg:  3m 10s | Max:  3m 10s | Hits:  97%/165   
      🟩 Test               Pass: 100%/2   | Total: 25m 54s | Avg: 12m 57s | Max: 14m 05s | Hits:  98%/330   
    

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

# Runner
91 linux-amd64-cpu16
17 windows-amd64-cpu16
10 linux-arm64-cpu16
7 linux-amd64-gpu-rtx2080-latest-1
6 linux-amd64-gpu-rtxa6000-latest-1
5 linux-amd64-gpu-h100-latest-1
3 linux-amd64-gpu-rtx4090-latest-1

@bernhardmgruber
bernhardmgruber merged commit 76fc457 into NVIDIA:main Jul 17, 2025
@github-project-automation github-project-automation Bot moved this from In Review to Done in CCCL Jul 17, 2025
@bernhardmgruber
bernhardmgruber deleted the transform_cuda_overloads branch July 17, 2025 14:14
davebayer pushed a commit to davebayer/cccl that referenced this pull request Sep 23, 2025
Naraenda pushed a commit to ROCm/rocm-libraries that referenced this pull request Oct 26, 2026
…m overloads in CUDA system (NVIDIA/cccl#5238)

Upstream: NVIDIA/cccl@76fc457

- clean port — applied to projects/hipccl/hipccl3/rocthrust/thrust/system/cuda/detail/transform.h (now identical to upstream; the local `_THRUST_STD::distance` spellings were all on lines upstream rewrote).
- HIP counterpart: no change — `thrust::transform_n`/`transform_if_n` already reach the HIP backend through the generic implementations in `system/detail/generic/transform.h`; the new CUDA overloads only shortcut onto the CUDA fast path (performance-only, per sync decision).
- test/ counterpart: none (no testing/*.cu paths touched).
- Not compiled, tests not run (per human).

Co-Authored-By: Claude <noreply@anthropic.com>
amd-jmahovsky added a commit to ROCm/rocm-libraries that referenced this pull request Oct 28, 2026
…sform over counting_iterator

Related upstream commit: ad70011e990 Support fancy iterators in vectorized transform and port thrust::tabulate to it (NVIDIA/cccl#6012)
Related local port commit: 291f437

The local port took upstream's cuda tabulate.h but left system/hip on its
own parallel_for functor as "no change: performance-only". Bring
system/hip in line with upstream's structure:

- Drop __tabulate::functor; tabulate is a transform of
  _THRUST_LIBCXX::counting_iterator<iter_difference_t<Iterator>> into
  the output range, with granular libhipcxx includes as upstream.
- hip has no transform_n overload (NVIDIA/cccl#5238 was cuda-only), so
  hip_rocprim::transform is called with [begin, begin + count).
- tabulate_op is not wrapped in _THRUST_LIBCXX::proclaim_copyable_arguments:
  the proclamation only feeds cub::DeviceTransform, which hip's transform
  does not use, and the wrapper inherits from the functor, so it would
  reject function pointers and final classes for no benefit.

Not compiled, tests not run (per human)

Co-Authored-By: Claude <noreply@anthropic.com>
Naraenda pushed a commit to ROCm/rocm-libraries that referenced this pull request Oct 29, 2026
…m overloads in CUDA system (NVIDIA/cccl#5238)

Upstream: NVIDIA/cccl@76fc457

- clean port — applied to projects/hipccl/hipccl3/rocthrust/thrust/system/cuda/detail/transform.h (now identical to upstream; the local `_THRUST_STD::distance` spellings were all on lines upstream rewrote).
- HIP counterpart: no change — `thrust::transform_n`/`transform_if_n` already reach the HIP backend through the generic implementations in `system/detail/generic/transform.h`; the new CUDA overloads only shortcut onto the CUDA fast path (performance-only, per sync decision).
- test/ counterpart: none (no testing/*.cu paths touched).
- Not compiled, tests not run (per human).

Co-Authored-By: Claude <noreply@anthropic.com>
Naraenda pushed a commit to ROCm/rocm-libraries that referenced this pull request Oct 29, 2026
…m overloads in CUDA system (NVIDIA/cccl#5238)

Upstream: NVIDIA/cccl@76fc457

- clean port — applied to projects/hipccl/hipccl3/rocthrust/thrust/system/cuda/detail/transform.h (now identical to upstream; the local `_THRUST_STD::distance` spellings were all on lines upstream rewrote).
- HIP counterpart: no change — `thrust::transform_n`/`transform_if_n` already reach the HIP backend through the generic implementations in `system/detail/generic/transform.h`; the new CUDA overloads only shortcut onto the CUDA fast path (performance-only, per sync decision).
- test/ counterpart: none (no testing/*.cu paths touched).
- Not compiled, tests not run (per human).

Co-Authored-By: Claude <noreply@anthropic.com>
Naraenda pushed a commit to ROCm/rocm-libraries that referenced this pull request Oct 29, 2026
…sform over counting_iterator

Related upstream commit: ad70011e990 Support fancy iterators in vectorized transform and port thrust::tabulate to it (NVIDIA/cccl#6012)
Related local port commit: 291f437

The local port took upstream's cuda tabulate.h but left system/hip on its
own parallel_for functor as "no change: performance-only". Bring
system/hip in line with upstream's structure:

- Drop __tabulate::functor; tabulate is a transform of
  _THRUST_LIBCXX::counting_iterator<iter_difference_t<Iterator>> into
  the output range, with granular libhipcxx includes as upstream.
- hip has no transform_n overload (NVIDIA/cccl#5238 was cuda-only), so
  hip_rocprim::transform is called with [begin, begin + count).
- tabulate_op is not wrapped in _THRUST_LIBCXX::proclaim_copyable_arguments:
  the proclamation only feeds cub::DeviceTransform, which hip's transform
  does not use, and the wrapper inherits from the functor, so it would
  reject function pointers and final classes for no benefit.

Not compiled, tests not run (per human)

Co-Authored-By: Claude <noreply@anthropic.com>
Naraenda pushed a commit to ROCm/rocm-libraries that referenced this pull request Oct 30, 2026
…m overloads in CUDA system (NVIDIA/cccl#5238)

Upstream: NVIDIA/cccl@76fc457

- clean port — applied to projects/hipccl/hipccl3/rocthrust/thrust/system/cuda/detail/transform.h (now identical to upstream; the local `_THRUST_STD::distance` spellings were all on lines upstream rewrote).
- HIP counterpart: no change — `thrust::transform_n`/`transform_if_n` already reach the HIP backend through the generic implementations in `system/detail/generic/transform.h`; the new CUDA overloads only shortcut onto the CUDA fast path (performance-only, per sync decision).
- test/ counterpart: none (no testing/*.cu paths touched).
- Not compiled, tests not run (per human).

Co-Authored-By: Claude <noreply@anthropic.com>
Beanavil pushed a commit to ROCm/rocm-libraries that referenced this pull request Oct 30, 2026
…m overloads in CUDA system (NVIDIA/cccl#5238)

Upstream: NVIDIA/cccl@76fc457

- clean port — applied to projects/hipccl/hipccl3/rocthrust/thrust/system/cuda/detail/transform.h (now identical to upstream; the local `_THRUST_STD::distance` spellings were all on lines upstream rewrote).
- HIP counterpart: no change — `thrust::transform_n`/`transform_if_n` already reach the HIP backend through the generic implementations in `system/detail/generic/transform.h`; the new CUDA overloads only shortcut onto the CUDA fast path (performance-only, per sync decision).
- test/ counterpart: none (no testing/*.cu paths touched).
- Not compiled, tests not run (per human).

Co-Authored-By: Claude <noreply@anthropic.com>
amd-jmahovsky added a commit to ROCm/rocm-libraries that referenced this pull request Oct 30, 2026
…sform over counting_iterator

Related upstream commit: ad70011e990 Support fancy iterators in vectorized transform and port thrust::tabulate to it (NVIDIA/cccl#6012)
Related local port commit: 291f437

The local port took upstream's cuda tabulate.h but left system/hip on its
own parallel_for functor as "no change: performance-only". Bring
system/hip in line with upstream's structure:

- Drop __tabulate::functor; tabulate is a transform of
  _THRUST_LIBCXX::counting_iterator<iter_difference_t<Iterator>> into
  the output range, with granular libhipcxx includes as upstream.
- hip has no transform_n overload (NVIDIA/cccl#5238 was cuda-only), so
  hip_rocprim::transform is called with [begin, begin + count).
- tabulate_op is not wrapped in _THRUST_LIBCXX::proclaim_copyable_arguments:
  the proclamation only feeds cub::DeviceTransform, which hip's transform
  does not use, and the wrapper inherits from the functor, so it would
  reject function pointers and final classes for no benefit.

Not compiled, tests not run (per human)

Co-Authored-By: Claude <noreply@anthropic.com>
amd-jmahovsky added a commit to ROCm/rocm-libraries that referenced this pull request Oct 30, 2026
…p transform overloads

Related upstream commit: 76fc4572271 Extend and refactor transform overloads in CUDA system (NVIDIA/cccl#5238)
Upstream: NVIDIA/cccl@76fc457
Related local port commit: 208d3c3

The local port only changed the CUDA backend; the HIP counterpart was left
behind as performance-only. Apply the same overload set to
hip/detail/transform.h:

- add transform_n (unary and binary), transform_if_n (unary, unary with
  stencil, binary with stencil), taking
  _THRUST_STD::iter_difference_t<InputIt> counts as upstream does. HIP
  calls to thrust::transform_n/transform_if_n no longer fall back to the
  generic implementation.
- transform/transform_if call __transform::unary/binary directly with
  _THRUST_STD::distance instead of bouncing through the stencil-less
  transform_if overload, and order the overloads like upstream.
- construct the functors with braces, drop the trailing "// struct"
  comments and the section banners, and replace thrust/distance.h with
  the libhipcxx __iterator includes.

The HIP backend keeps parallel_for instead of rocprim::transform, because
thrust::transform allows the functor to modify its input.

Not compiled, tests not run

Co-Authored-By: Claude <noreply@anthropic.com>
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