Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Scan implementation for c.parallel #3462

Merged
merged 27 commits into from
Feb 11, 2025

Conversation

shwina
Copy link
Contributor

@shwina shwina commented Jan 21, 2025

Description

Closes #2544

This PR adds the c.parallel scan API. Reviewers please note: it's easiest to review this PR commit-by-commit. The largest and most significant commit is Add scan c.parallel API. The commits prior to that are largely preparatory work (but still require review).

Checklist

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

Sorry, something went wrong.

Copy link

copy-pr-bot bot commented Jan 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.

@shwina shwina force-pushed the add-scan-implementation-c-parallel branch 2 times, most recently from 811ba03 to ca6df87 Compare January 23, 2025 10:49
@shwina shwina force-pushed the add-scan-implementation-c-parallel branch 2 times, most recently from 26582cf to 6534ed7 Compare January 27, 2025 16:25
@shwina shwina marked this pull request as ready for review January 27, 2025 16:26
@shwina shwina requested review from a team as code owners January 27, 2025 16:26
@shwina shwina force-pushed the add-scan-implementation-c-parallel branch 2 times, most recently from d66dbeb to 0615c85 Compare January 27, 2025 17:25
Copy link
Contributor

🟨 CI finished in 3h 26m: Pass: 98%/90 | Total: 1d 18h | Avg: 28m 38s | Max: 1h 08m | Hits: 331%/10928
  • 🟨 thrust: Pass: 97%/43 | Total: 12h 01m | Avg: 16m 46s | Max: 59m 09s | Hits: 289%/7376

    🔍 cpu: amd64 🔍
      🔍 amd64              Pass:  97%/41  | Total: 11h 46m | Avg: 17m 13s | Max: 59m 09s | Hits: 289%/7376  
      🟩 arm64              Pass: 100%/2   | Total: 15m 18s | Avg:  7m 39s | Max: 10m 36s
    🔍 ctk: 12.6 🔍
      🟩 12.0               Pass: 100%/5   | Total:  1h 27m | Avg: 17m 33s | Max: 55m 54s | Hits: 303%/1844  
      🟩 12.5               Pass: 100%/2   | Total:  1h 16m | Avg: 38m 25s | Max: 38m 40s
      🔍 12.6               Pass:  97%/36  | Total:  9h 16m | Avg: 15m 27s | Max: 59m 09s | Hits: 284%/5532  
    🔍 cudacxx: nvcc12.6 🔍
      🟩 ClangCUDA18        Pass: 100%/2   | Total: 11m 01s | Avg:  5m 30s | Max:  5m 35s
      🟩 nvcc12.0           Pass: 100%/5   | Total:  1h 27m | Avg: 17m 33s | Max: 55m 54s | Hits: 303%/1844  
      🟩 nvcc12.5           Pass: 100%/2   | Total:  1h 16m | Avg: 38m 25s | Max: 38m 40s
      🔍 nvcc12.6           Pass:  97%/34  | Total:  9h 05m | Avg: 16m 03s | Max: 59m 09s | Hits: 284%/5532  
    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/2   | Total: 11m 01s | Avg:  5m 30s | Max:  5m 35s
      🔍 nvcc               Pass:  97%/41  | Total: 11h 50m | Avg: 17m 19s | Max: 59m 09s | Hits: 289%/7376  
    🔍 cxx: MSVC14.39 🔍
      🟩 Clang14            Pass: 100%/4   | Total: 29m 34s | Avg:  7m 23s | Max: 10m 28s
      🟩 Clang15            Pass: 100%/2   | Total: 22m 53s | Avg: 11m 26s | Max: 13m 17s
      🟩 Clang16            Pass: 100%/2   | Total: 20m 21s | Avg: 10m 10s | Max: 13m 30s
      🟩 Clang17            Pass: 100%/2   | Total: 26m 42s | Avg: 13m 21s | Max: 14m 20s
      🟩 Clang18            Pass: 100%/7   | Total: 56m 06s | Avg:  8m 00s | Max: 13m 33s
      🟩 GCC7               Pass: 100%/2   | Total: 22m 24s | Avg: 11m 12s | Max: 12m 04s
      🟩 GCC8               Pass: 100%/1   | Total: 11m 06s | Avg: 11m 06s | Max: 11m 06s
      🟩 GCC9               Pass: 100%/2   | Total: 21m 36s | Avg: 10m 48s | Max: 11m 27s
      🟩 GCC10              Pass: 100%/2   | Total: 43m 54s | Avg: 21m 57s | Max: 31m 28s
      🟩 GCC11              Pass: 100%/2   | Total: 20m 23s | Avg: 10m 11s | Max: 10m 20s
      🟩 GCC12              Pass: 100%/2   | Total: 24m 20s | Avg: 12m 10s | Max: 13m 30s
      🟩 GCC13              Pass: 100%/8   | Total:  1h 27m | Avg: 10m 59s | Max: 22m 51s
      🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 47m | Avg: 53m 50s | Max: 55m 54s | Hits: 302%/3688  
      🔍 MSVC14.39          Pass:  66%/3   | Total:  2h 29m | Avg: 49m 52s | Max: 59m 09s | Hits: 276%/3688  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  1h 16m | Avg: 38m 25s | Max: 38m 40s
    🔍 cxx_family: MSVC 🔍
      🟩 Clang              Pass: 100%/17  | Total:  2h 35m | Avg:  9m 09s | Max: 14m 20s
      🟩 GCC                Pass: 100%/19  | Total:  3h 51m | Avg: 12m 11s | Max: 31m 28s
      🔍 MSVC               Pass:  80%/5   | Total:  4h 17m | Avg: 51m 27s | Max: 59m 09s | Hits: 289%/7376  
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 16m | Avg: 38m 25s | Max: 38m 40s
    🔍 jobs: TestCPU 🔍
      🟩 Build              Pass: 100%/37  | Total: 10h 24m | Avg: 16m 52s | Max: 59m 09s | Hits: 289%/7376  
      🔍 TestCPU            Pass:  66%/3   | Total: 47m 29s | Avg: 15m 49s | Max: 31m 42s
      🟩 TestGPU            Pass: 100%/3   | Total: 49m 25s | Avg: 16m 28s | Max: 22m 51s
    🔍 std: 20 🔍
      🟩 17                 Pass: 100%/20  | Total:  6h 07m | Avg: 18m 23s | Max: 58m 45s | Hits: 299%/5532  
      🔍 20                 Pass:  95%/21  | Total:  5h 35m | Avg: 15m 57s | Max: 59m 09s | Hits: 258%/1844  
    🟨 gpu
      🟨 v100               Pass:  97%/43  | Total: 12h 01m | Avg: 16m 46s | Max: 59m 09s | Hits: 289%/7376  
    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 18m 27s | Avg:  9m 13s | Max: 13m 01s
    🟩 sm
      🟩 90a                Pass: 100%/1   | Total:  4m 46s | Avg:  4m 46s | Max:  4m 46s
    
  • 🟩 cub: Pass: 100%/44 | Total: 1d 05h | Avg: 40m 49s | Max: 1h 08m | Hits: 417%/3552

    🟩 cpu
      🟩 amd64              Pass: 100%/42  | Total:  1d 04h | Avg: 40m 37s | Max:  1h 08m | Hits: 417%/3552  
      🟩 arm64              Pass: 100%/2   | Total:  1h 29m | Avg: 44m 49s | Max: 46m 06s
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  3h 47m | Avg: 45m 33s | Max:  1h 05m | Hits: 418%/888   
      🟩 12.5               Pass: 100%/2   | Total:  1h 35m | Avg: 47m 50s | Max: 48m 45s
      🟩 12.6               Pass: 100%/37  | Total:  1d 00h | Avg: 39m 48s | Max:  1h 08m | Hits: 416%/2664  
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/2   | Total:  1h 49m | Avg: 54m 54s | Max: 55m 26s
      🟩 nvcc12.0           Pass: 100%/5   | Total:  3h 47m | Avg: 45m 33s | Max:  1h 05m | Hits: 418%/888   
      🟩 nvcc12.5           Pass: 100%/2   | Total:  1h 35m | Avg: 47m 50s | Max: 48m 45s
      🟩 nvcc12.6           Pass: 100%/35  | Total: 22h 42m | Avg: 38m 56s | Max:  1h 08m | Hits: 416%/2664  
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total:  1h 49m | Avg: 54m 54s | Max: 55m 26s
      🟩 nvcc               Pass: 100%/42  | Total:  1d 04h | Avg: 40m 09s | Max:  1h 08m | Hits: 417%/3552  
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  2h 41m | Avg: 40m 19s | Max: 41m 52s
      🟩 Clang15            Pass: 100%/2   | Total:  1h 23m | Avg: 41m 59s | Max: 43m 43s
      🟩 Clang16            Pass: 100%/2   | Total:  1h 26m | Avg: 43m 00s | Max: 44m 04s
      🟩 Clang17            Pass: 100%/2   | Total:  1h 22m | Avg: 41m 06s | Max: 43m 14s
      🟩 Clang18            Pass: 100%/7   | Total:  4h 52m | Avg: 41m 42s | Max: 55m 26s
      🟩 GCC7               Pass: 100%/2   | Total:  1h 18m | Avg: 39m 01s | Max: 40m 03s
      🟩 GCC8               Pass: 100%/1   | Total: 40m 51s | Avg: 40m 51s | Max: 40m 51s
      🟩 GCC9               Pass: 100%/2   | Total:  1h 21m | Avg: 40m 56s | Max: 41m 57s
      🟩 GCC10              Pass: 100%/2   | Total:  1h 22m | Avg: 41m 11s | Max: 43m 05s
      🟩 GCC11              Pass: 100%/2   | Total:  1h 23m | Avg: 41m 31s | Max: 43m 21s
      🟩 GCC12              Pass: 100%/4   | Total:  1h 49m | Avg: 27m 22s | Max: 45m 07s
      🟩 GCC13              Pass: 100%/8   | Total:  4h 21m | Avg: 32m 41s | Max: 46m 06s
      🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 06m | Avg:  1h 03m | Max:  1h 05m | Hits: 418%/1776  
      🟩 MSVC14.39          Pass: 100%/2   | Total:  2h 10m | Avg:  1h 05m | Max:  1h 08m | Hits: 415%/1776  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  1h 35m | Avg: 47m 50s | Max: 48m 45s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/17  | Total: 11h 45m | Avg: 41m 29s | Max: 55m 26s
      🟩 GCC                Pass: 100%/21  | Total: 12h 17m | Avg: 35m 06s | Max: 46m 06s
      🟩 MSVC               Pass: 100%/4   | Total:  4h 17m | Avg:  1h 04m | Max:  1h 08m | Hits: 417%/3552  
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 35m | Avg: 47m 50s | Max: 48m 45s
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 24m 00s | Avg: 12m 00s | Max: 19m 35s
      🟩 v100               Pass: 100%/42  | Total:  1d 05h | Avg: 42m 11s | Max:  1h 08m | Hits: 417%/3552  
    🟩 jobs
      🟩 Build              Pass: 100%/37  | Total:  1d 02h | Avg: 43m 41s | Max:  1h 08m | Hits: 417%/3552  
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 29m 59s | Avg: 29m 59s | Max: 29m 59s
      🟩 GraphCapture       Pass: 100%/1   | Total: 20m 29s | Avg: 20m 29s | Max: 20m 29s
      🟩 HostLaunch         Pass: 100%/3   | Total:  1h 09m | Avg: 23m 00s | Max: 28m 36s
      🟩 TestGPU            Pass: 100%/2   | Total:  1h 00m | Avg: 30m 07s | Max: 30m 37s
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 24m 00s | Avg: 12m 00s | Max: 19m 35s
      🟩 90a                Pass: 100%/1   | Total: 26m 30s | Avg: 26m 30s | Max: 26m 30s
    🟩 std
      🟩 17                 Pass: 100%/20  | Total: 15h 25m | Avg: 46m 17s | Max:  1h 08m | Hits: 417%/2664  
      🟩 20                 Pass: 100%/24  | Total: 14h 30m | Avg: 36m 15s | Max:  1h 02m | Hits: 415%/888   
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 13m 27s | Avg: 6m 43s | Max: 11m 25s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 ctk
      🟩 12.6               Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 gpu
      🟩 v100               Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 02s | Avg:  2m 02s | Max:  2m 02s
      🟩 Test               Pass: 100%/1   | Total: 11m 25s | Avg: 11m 25s | Max: 11m 25s
    
  • 🟩 python: Pass: 100%/1 | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s

    🟩 cpu
      🟩 amd64              Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 ctk
      🟩 12.6               Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 cxx
      🟩 GCC13              Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 gpu
      🟩 v100               Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 jobs
      🟩 Test               Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    

👃 Inspect Changes

Modifications in project?

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

Modifications in project or dependencies?

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

🏃‍ Runner counts (total jobs: 90)

# Runner
65 linux-amd64-cpu16
11 linux-amd64-gpu-v100-latest-1
9 windows-amd64-cpu16
4 linux-arm64-cpu16
1 linux-amd64-gpu-h100-latest-1-testing

@shwina shwina changed the title [DRAFT]: Add Scan implementation for c.parallel Add Scan implementation for c.parallel Jan 27, 2025
Copy link
Contributor

🟨 CI finished in 4h 25m: Pass: 98%/90 | Total: 1d 18h | Avg: 28m 39s | Max: 1h 08m | Hits: 331%/10928
  • 🟨 thrust: Pass: 97%/43 | Total: 12h 02m | Avg: 16m 47s | Max: 59m 09s | Hits: 289%/7376

    🔍 cpu: amd64 🔍
      🔍 amd64              Pass:  97%/41  | Total: 11h 46m | Avg: 17m 14s | Max: 59m 09s | Hits: 289%/7376  
      🟩 arm64              Pass: 100%/2   | Total: 15m 18s | Avg:  7m 39s | Max: 10m 36s
    🔍 ctk: 12.6 🔍
      🟩 12.0               Pass: 100%/5   | Total:  1h 27m | Avg: 17m 33s | Max: 55m 54s | Hits: 303%/1844  
      🟩 12.5               Pass: 100%/2   | Total:  1h 16m | Avg: 38m 25s | Max: 38m 40s
      🔍 12.6               Pass:  97%/36  | Total:  9h 17m | Avg: 15m 29s | Max: 59m 09s | Hits: 284%/5532  
    🔍 cudacxx: nvcc12.6 🔍
      🟩 ClangCUDA18        Pass: 100%/2   | Total: 11m 01s | Avg:  5m 30s | Max:  5m 35s
      🟩 nvcc12.0           Pass: 100%/5   | Total:  1h 27m | Avg: 17m 33s | Max: 55m 54s | Hits: 303%/1844  
      🟩 nvcc12.5           Pass: 100%/2   | Total:  1h 16m | Avg: 38m 25s | Max: 38m 40s
      🔍 nvcc12.6           Pass:  97%/34  | Total:  9h 06m | Avg: 16m 04s | Max: 59m 09s | Hits: 284%/5532  
    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/2   | Total: 11m 01s | Avg:  5m 30s | Max:  5m 35s
      🔍 nvcc               Pass:  97%/41  | Total: 11h 51m | Avg: 17m 20s | Max: 59m 09s | Hits: 289%/7376  
    🔍 cxx: MSVC14.39 🔍
      🟩 Clang14            Pass: 100%/4   | Total: 29m 34s | Avg:  7m 23s | Max: 10m 28s
      🟩 Clang15            Pass: 100%/2   | Total: 22m 53s | Avg: 11m 26s | Max: 13m 17s
      🟩 Clang16            Pass: 100%/2   | Total: 20m 21s | Avg: 10m 10s | Max: 13m 30s
      🟩 Clang17            Pass: 100%/2   | Total: 26m 42s | Avg: 13m 21s | Max: 14m 20s
      🟩 Clang18            Pass: 100%/7   | Total: 56m 06s | Avg:  8m 00s | Max: 13m 33s
      🟩 GCC7               Pass: 100%/2   | Total: 22m 24s | Avg: 11m 12s | Max: 12m 04s
      🟩 GCC8               Pass: 100%/1   | Total: 11m 06s | Avg: 11m 06s | Max: 11m 06s
      🟩 GCC9               Pass: 100%/2   | Total: 21m 36s | Avg: 10m 48s | Max: 11m 27s
      🟩 GCC10              Pass: 100%/2   | Total: 43m 54s | Avg: 21m 57s | Max: 31m 28s
      🟩 GCC11              Pass: 100%/2   | Total: 20m 23s | Avg: 10m 11s | Max: 10m 20s
      🟩 GCC12              Pass: 100%/2   | Total: 24m 20s | Avg: 12m 10s | Max: 13m 30s
      🟩 GCC13              Pass: 100%/8   | Total:  1h 27m | Avg: 10m 59s | Max: 22m 51s
      🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 47m | Avg: 53m 50s | Max: 55m 54s | Hits: 302%/3688  
      🔍 MSVC14.39          Pass:  66%/3   | Total:  2h 30m | Avg: 50m 07s | Max: 59m 09s | Hits: 276%/3688  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  1h 16m | Avg: 38m 25s | Max: 38m 40s
    🔍 cxx_family: MSVC 🔍
      🟩 Clang              Pass: 100%/17  | Total:  2h 35m | Avg:  9m 09s | Max: 14m 20s
      🟩 GCC                Pass: 100%/19  | Total:  3h 51m | Avg: 12m 11s | Max: 31m 28s
      🔍 MSVC               Pass:  80%/5   | Total:  4h 18m | Avg: 51m 36s | Max: 59m 09s | Hits: 289%/7376  
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 16m | Avg: 38m 25s | Max: 38m 40s
    🔍 jobs: TestCPU 🔍
      🟩 Build              Pass: 100%/37  | Total: 10h 24m | Avg: 16m 52s | Max: 59m 09s | Hits: 289%/7376  
      🔍 TestCPU            Pass:  66%/3   | Total: 48m 16s | Avg: 16m 05s | Max: 32m 29s
      🟩 TestGPU            Pass: 100%/3   | Total: 49m 25s | Avg: 16m 28s | Max: 22m 51s
    🔍 std: 20 🔍
      🟩 17                 Pass: 100%/20  | Total:  6h 07m | Avg: 18m 23s | Max: 58m 45s | Hits: 299%/5532  
      🔍 20                 Pass:  95%/21  | Total:  5h 36m | Avg: 16m 00s | Max: 59m 09s | Hits: 258%/1844  
    🟨 gpu
      🟨 v100               Pass:  97%/43  | Total: 12h 02m | Avg: 16m 47s | Max: 59m 09s | Hits: 289%/7376  
    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 18m 27s | Avg:  9m 13s | Max: 13m 01s
    🟩 sm
      🟩 90a                Pass: 100%/1   | Total:  4m 46s | Avg:  4m 46s | Max:  4m 46s
    
  • 🟩 cub: Pass: 100%/44 | Total: 1d 05h | Avg: 40m 49s | Max: 1h 08m | Hits: 417%/3552

    🟩 cpu
      🟩 amd64              Pass: 100%/42  | Total:  1d 04h | Avg: 40m 37s | Max:  1h 08m | Hits: 417%/3552  
      🟩 arm64              Pass: 100%/2   | Total:  1h 29m | Avg: 44m 49s | Max: 46m 06s
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  3h 47m | Avg: 45m 33s | Max:  1h 05m | Hits: 418%/888   
      🟩 12.5               Pass: 100%/2   | Total:  1h 35m | Avg: 47m 50s | Max: 48m 45s
      🟩 12.6               Pass: 100%/37  | Total:  1d 00h | Avg: 39m 48s | Max:  1h 08m | Hits: 416%/2664  
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/2   | Total:  1h 49m | Avg: 54m 54s | Max: 55m 26s
      🟩 nvcc12.0           Pass: 100%/5   | Total:  3h 47m | Avg: 45m 33s | Max:  1h 05m | Hits: 418%/888   
      🟩 nvcc12.5           Pass: 100%/2   | Total:  1h 35m | Avg: 47m 50s | Max: 48m 45s
      🟩 nvcc12.6           Pass: 100%/35  | Total: 22h 42m | Avg: 38m 56s | Max:  1h 08m | Hits: 416%/2664  
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total:  1h 49m | Avg: 54m 54s | Max: 55m 26s
      🟩 nvcc               Pass: 100%/42  | Total:  1d 04h | Avg: 40m 09s | Max:  1h 08m | Hits: 417%/3552  
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  2h 41m | Avg: 40m 19s | Max: 41m 52s
      🟩 Clang15            Pass: 100%/2   | Total:  1h 23m | Avg: 41m 59s | Max: 43m 43s
      🟩 Clang16            Pass: 100%/2   | Total:  1h 26m | Avg: 43m 00s | Max: 44m 04s
      🟩 Clang17            Pass: 100%/2   | Total:  1h 22m | Avg: 41m 06s | Max: 43m 14s
      🟩 Clang18            Pass: 100%/7   | Total:  4h 52m | Avg: 41m 42s | Max: 55m 26s
      🟩 GCC7               Pass: 100%/2   | Total:  1h 18m | Avg: 39m 01s | Max: 40m 03s
      🟩 GCC8               Pass: 100%/1   | Total: 40m 51s | Avg: 40m 51s | Max: 40m 51s
      🟩 GCC9               Pass: 100%/2   | Total:  1h 21m | Avg: 40m 56s | Max: 41m 57s
      🟩 GCC10              Pass: 100%/2   | Total:  1h 22m | Avg: 41m 11s | Max: 43m 05s
      🟩 GCC11              Pass: 100%/2   | Total:  1h 23m | Avg: 41m 31s | Max: 43m 21s
      🟩 GCC12              Pass: 100%/4   | Total:  1h 49m | Avg: 27m 22s | Max: 45m 07s
      🟩 GCC13              Pass: 100%/8   | Total:  4h 21m | Avg: 32m 41s | Max: 46m 06s
      🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 06m | Avg:  1h 03m | Max:  1h 05m | Hits: 418%/1776  
      🟩 MSVC14.39          Pass: 100%/2   | Total:  2h 10m | Avg:  1h 05m | Max:  1h 08m | Hits: 415%/1776  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  1h 35m | Avg: 47m 50s | Max: 48m 45s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/17  | Total: 11h 45m | Avg: 41m 29s | Max: 55m 26s
      🟩 GCC                Pass: 100%/21  | Total: 12h 17m | Avg: 35m 06s | Max: 46m 06s
      🟩 MSVC               Pass: 100%/4   | Total:  4h 17m | Avg:  1h 04m | Max:  1h 08m | Hits: 417%/3552  
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 35m | Avg: 47m 50s | Max: 48m 45s
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 24m 00s | Avg: 12m 00s | Max: 19m 35s
      🟩 v100               Pass: 100%/42  | Total:  1d 05h | Avg: 42m 11s | Max:  1h 08m | Hits: 417%/3552  
    🟩 jobs
      🟩 Build              Pass: 100%/37  | Total:  1d 02h | Avg: 43m 41s | Max:  1h 08m | Hits: 417%/3552  
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 29m 59s | Avg: 29m 59s | Max: 29m 59s
      🟩 GraphCapture       Pass: 100%/1   | Total: 20m 29s | Avg: 20m 29s | Max: 20m 29s
      🟩 HostLaunch         Pass: 100%/3   | Total:  1h 09m | Avg: 23m 00s | Max: 28m 36s
      🟩 TestGPU            Pass: 100%/2   | Total:  1h 00m | Avg: 30m 07s | Max: 30m 37s
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 24m 00s | Avg: 12m 00s | Max: 19m 35s
      🟩 90a                Pass: 100%/1   | Total: 26m 30s | Avg: 26m 30s | Max: 26m 30s
    🟩 std
      🟩 17                 Pass: 100%/20  | Total: 15h 25m | Avg: 46m 17s | Max:  1h 08m | Hits: 417%/2664  
      🟩 20                 Pass: 100%/24  | Total: 14h 30m | Avg: 36m 15s | Max:  1h 02m | Hits: 415%/888   
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 13m 27s | Avg: 6m 43s | Max: 11m 25s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 ctk
      🟩 12.6               Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 gpu
      🟩 v100               Pass: 100%/2   | Total: 13m 27s | Avg:  6m 43s | Max: 11m 25s
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 02s | Avg:  2m 02s | Max:  2m 02s
      🟩 Test               Pass: 100%/1   | Total: 11m 25s | Avg: 11m 25s | Max: 11m 25s
    
  • 🟩 python: Pass: 100%/1 | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s

    🟩 cpu
      🟩 amd64              Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 ctk
      🟩 12.6               Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 cxx
      🟩 GCC13              Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 gpu
      🟩 v100               Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    🟩 jobs
      🟩 Test               Pass: 100%/1   | Total: 46m 57s | Avg: 46m 57s | Max: 46m 57s
    

👃 Inspect Changes

Modifications in project?

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

Modifications in project or dependencies?

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

🏃‍ Runner counts (total jobs: 90)

# Runner
65 linux-amd64-cpu16
11 linux-amd64-gpu-v100-latest-1
9 windows-amd64-cpu16
4 linux-arm64-cpu16
1 linux-amd64-gpu-h100-latest-1-testing

@shwina shwina requested a review from NaderAlAwar January 29, 2025 23:47
@shwina shwina force-pushed the add-scan-implementation-c-parallel branch from 0615c85 to 0aa00e7 Compare January 30, 2025 16:32
Copy link

copy-pr-bot bot commented Jan 30, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Comment on lines 453 to 429
if (accum_t.type == cccl_type_enum::STORAGE)
{
std::string src = std::format(
"#include <cub/agent/single_pass_scan_operators.cuh>\n"
"#include <cub/util_type.cuh>\n"
"struct __align__({1}) storage_t {{\n"
" char data[{0}];\n"
"}};\n"
"__device__ size_t status_size = sizeof(typename cub::ScanTileState<{2}>::StatusWord);\n"
"__device__ size_t uninitialized_size = sizeof(cub::Uninitialized<{2}>);\n",
accum_t.size,
accum_t.alignment,
accum_cpp);
auto compile_result =
make_nvrtc_command_list()
.add_program(nvrtc_translation_unit{src.c_str(), "tile_state_info"})
.compile_program({ptx_args, num_ptx_args})
.cleanup_program()
.finalize_program(num_ptx_lto_args, ptx_lopts);
auto ptx_code = compile_result.cubin.get();
status_size = scan::find_size_t(ptx_code, "status_size");
uninitialized_size = scan::find_size_t(ptx_code, "uninitialized_size");
}
else
{
std::string src = std::format(
"#include <cub/agent/single_pass_scan_operators.cuh>\n"
"#include <cub/util_type.cuh>\n"
"__device__ size_t status_size = sizeof(typename cub::ScanTileState<{0}>::TxnWord);\n",
accum_cpp);
auto compile_result =
make_nvrtc_command_list()
.add_program(nvrtc_translation_unit{src.c_str(), "tile_state_info"})
.compile_program({ptx_args, num_ptx_args})
.cleanup_program()
.finalize_program(num_ptx_lto_args, ptx_lopts);
auto ptx_code = compile_result.cubin.get();
status_size = scan::find_size_t(ptx_code, "status_size");
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

important: the assumption that storage type leads to particular tile state specialization is what we tried to avoid with ptx queries. Later on, we'll have decoupled look back optimization that makes small and trivial user defined type still fit into a single architectural word. Once this optimization is merged, it'd be hard to track bug in cuda.parallel. I think we can come up with another level of indirection. For each scan tile state specialization, we can add two static member variables. One specialization would have:

static constexpr size_t description_bytes_per_tile = sizeof(TxnWord);
static constexpr size_t payload_bytes_per_tile     = 0;

and another one would be:

static constexpr size_t description_bytes_per_tile = sizeof(StatusWord);
static constexpr size_t payload_bytes_per_tile     = sizeof(Uninitialized<T>);

Then we can add a detail allocation size query:

_CCCL_HOST_DEVICE _CCCL_FORCEINLINE constexpr int num_tiles_to_num_tile_states(int num_tiles)
{
  return CUB_PTX_WARP_THREADS + num_tiles;
}


_CCCL_HOST_DEVICE _CCCL_FORCEINLINE size_t
allocation_size(int bytes_per_description, int bytes_per_payload, int num_tiles)
{
  // Specify storage allocation requirements
  size_t allocation_sizes[3];

  int num_tile_states = num_tiles_to_num_tile_states(num_tiles);

  // bytes needed for tile status descriptors
  allocation_sizes[0] = num_tile_states * bytes_per_description;

  // bytes needed for partials
  allocation_sizes[1] = num_tile_states * bytes_per_payload;

  // bytes needed for inclusives
  allocation_sizes[2] = num_tile_states * bytes_per_payload;

  // Set the necessary size of the blob
  size_t temp_storage_bytes = 0;
  void* allocations[3]      = {};
  AliasTemporaries(nullptr, temp_storage_bytes, allocations, allocation_sizes);

  return temp_storage_bytes;
}

That should work in both cases as:

_CCCL_HOST_DEVICE _CCCL_FORCEINLINE static constexpr cudaError_t
AllocationSize(int num_tiles, size_t& temp_storage_bytes)
{
  temp_storage_bytes = detail::allocation_size(description_bytes_per_tile, payload_bytes_per_tile, num_tiles);
  return cudaSuccess;
}

Regarding the highlighted code, we'd end up having just one branch that doesn't assume much about the code:

"__device__ size_t description_size = cub::ScanTileState<{2}>::description_bytes_per_tile;\n"
"__device__ size_t payload_size = cub::ScanTileState<{2}>::payload_bytes_per_tile;\n",

This would allow us to remove is_primitive member variable and simplify C Parallel tile state wrapper. The only thing to note in this is that ptx global variables are initialized to zero by default. Since we'll end up having payload bytes equal zero in one of the cases, PTX might loose initializer, and scan::find_size_t will stop working. To workaround that, I'd suggest to add another find_size_t(char* ptx, std::string_view name, size_t default) overload, and search for payload variable as scan_find_size_t(ptx, "payload_size", 0).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Implemented in c8c6687 and 909a869.

@shwina shwina marked this pull request as draft February 1, 2025 13:07
@shwina
Copy link
Contributor Author

shwina commented Feb 1, 2025

/ok to test

Copy link
Contributor

github-actions bot commented Feb 1, 2025

🟨 CI finished in 1h 30m: Pass: 98%/89 | Total: 2d 14h | Avg: 42m 19s | Max: 1h 11m | Hits: 170%/10936
  • 🟨 cub: Pass: 97%/44 | Total: 1d 15h | Avg: 53m 15s | Max: 1h 11m | Hits: 164%/3552

    🔍 cpu: amd64 🔍
      🔍 amd64              Pass:  97%/42  | Total:  1d 13h | Avg: 52m 58s | Max:  1h 11m | Hits: 164%/3552  
      🟩 arm64              Pass: 100%/2   | Total:  1h 58m | Avg: 59m 16s | Max: 59m 35s
    🔍 ctk: 12.6 🔍
      🟩 12.0               Pass: 100%/5   | Total:  5h 02m | Avg:  1h 00m | Max:  1h 05m | Hits: 164%/888   
      🟩 12.5               Pass: 100%/2   | Total:  2h 12m | Avg:  1h 06m | Max:  1h 07m
      🔍 12.6               Pass:  97%/37  | Total:  1d 07h | Avg: 51m 34s | Max:  1h 11m | Hits: 164%/2664  
    🔍 cudacxx: nvcc12.6 🔍
      🟩 ClangCUDA18        Pass: 100%/2   | Total:  2h 03m | Avg:  1h 01m | Max:  1h 02m
      🟩 nvcc12.0           Pass: 100%/5   | Total:  5h 02m | Avg:  1h 00m | Max:  1h 05m | Hits: 164%/888   
      🟩 nvcc12.5           Pass: 100%/2   | Total:  2h 12m | Avg:  1h 06m | Max:  1h 07m
      🔍 nvcc12.6           Pass:  97%/35  | Total:  1d 05h | Avg: 50m 59s | Max:  1h 11m | Hits: 164%/2664  
    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/2   | Total:  2h 03m | Avg:  1h 01m | Max:  1h 02m
      🔍 nvcc               Pass:  97%/42  | Total:  1d 12h | Avg: 52m 51s | Max:  1h 11m | Hits: 164%/3552  
    🔍 cxx: GCC12 🔍
      🟩 Clang14            Pass: 100%/4   | Total:  3h 58m | Avg: 59m 44s | Max:  1h 01m
      🟩 Clang15            Pass: 100%/2   | Total:  1h 59m | Avg: 59m 38s | Max:  1h 00m
      🟩 Clang16            Pass: 100%/2   | Total:  1h 53m | Avg: 56m 40s | Max: 59m 13s
      🟩 Clang17            Pass: 100%/2   | Total:  1h 59m | Avg: 59m 42s | Max:  1h 01m
      🟩 Clang18            Pass: 100%/7   | Total:  5h 47m | Avg: 49m 40s | Max:  1h 02m
      🟩 GCC7               Pass: 100%/2   | Total:  1h 56m | Avg: 58m 16s | Max:  1h 00m
      🟩 GCC8               Pass: 100%/1   | Total: 59m 42s | Avg: 59m 42s | Max: 59m 42s
      🟩 GCC9               Pass: 100%/2   | Total:  2h 02m | Avg:  1h 01m | Max:  1h 01m
      🟩 GCC10              Pass: 100%/2   | Total:  2h 00m | Avg:  1h 00m | Max:  1h 01m
      🟩 GCC11              Pass: 100%/2   | Total:  2h 00m | Avg:  1h 00m | Max:  1h 01m
      🔍 GCC12              Pass:  75%/4   | Total:  2h 55m | Avg: 43m 47s | Max:  1h 01m
      🟩 GCC13              Pass: 100%/8   | Total:  4h 45m | Avg: 35m 40s | Max:  1h 04m
      🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 12m | Avg:  1h 06m | Max:  1h 07m | Hits: 164%/1776  
      🟩 MSVC14.39          Pass: 100%/2   | Total:  2h 19m | Avg:  1h 09m | Max:  1h 11m | Hits: 163%/1776  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  2h 12m | Avg:  1h 06m | Max:  1h 07m
    🔍 cxx_family: GCC 🔍
      🟩 Clang              Pass: 100%/17  | Total: 15h 38m | Avg: 55m 13s | Max:  1h 02m
      🔍 GCC                Pass:  95%/21  | Total: 16h 39m | Avg: 47m 37s | Max:  1h 04m
      🟩 MSVC               Pass: 100%/4   | Total:  4h 32m | Avg:  1h 08m | Max:  1h 11m | Hits: 164%/3552  
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 12m | Avg:  1h 06m | Max:  1h 07m
    🔍 gpu: h100 🔍
      🔍 h100               Pass:  50%/2   | Total: 52m 29s | Avg: 26m 14s | Max: 26m 58s
      🟩 rtxa6000           Pass: 100%/8   | Total:  4h 09m | Avg: 31m 07s | Max:  1h 04m
      🟩 v100               Pass: 100%/34  | Total:  1d 10h | Avg:  1h 00m | Max:  1h 11m | Hits: 164%/3552  
    🔍 jobs: HostLaunch 🔍
      🟩 Build              Pass: 100%/37  | Total:  1d 12h | Avg: 59m 17s | Max:  1h 11m | Hits: 164%/3552  
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 19m 16s | Avg: 19m 16s | Max: 19m 16s
      🟩 GraphCapture       Pass: 100%/1   | Total: 15m 04s | Avg: 15m 04s | Max: 15m 04s
      🔍 HostLaunch         Pass:  66%/3   | Total:  1h 16m | Avg: 25m 36s | Max: 26m 58s
      🟩 TestGPU            Pass: 100%/2   | Total: 38m 19s | Avg: 19m 09s | Max: 19m 31s
    🔍 sm: 90 🔍
      🔍 90                 Pass:  50%/2   | Total: 52m 29s | Avg: 26m 14s | Max: 26m 58s
      🟩 90a                Pass: 100%/1   | Total: 25m 39s | Avg: 25m 39s | Max: 25m 39s
    🔍 std: 20 🔍
      🟩 17                 Pass: 100%/20  | Total: 20h 15m | Avg:  1h 00m | Max:  1h 08m | Hits: 164%/2664  
      🔍 20                 Pass:  95%/24  | Total: 18h 47m | Avg: 46m 59s | Max:  1h 11m | Hits: 163%/888   
    
  • 🟩 thrust: Pass: 100%/42 | Total: 23h 09m | Avg: 33m 04s | Max: 1h 10m | Hits: 173%/7384

    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 37m 46s | Avg: 18m 53s | Max: 27m 00s
    🟩 cpu
      🟩 amd64              Pass: 100%/40  | Total: 22h 07m | Avg: 33m 11s | Max:  1h 10m | Hits: 173%/7384  
      🟩 arm64              Pass: 100%/2   | Total:  1h 01m | Avg: 30m 42s | Max: 31m 28s
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  3h 07m | Avg: 37m 35s | Max: 52m 21s | Hits: 172%/1846  
      🟩 12.5               Pass: 100%/2   | Total:  1h 52m | Avg: 56m 19s | Max: 59m 18s
      🟩 12.6               Pass: 100%/35  | Total: 18h 08m | Avg: 31m 05s | Max:  1h 10m | Hits: 174%/5538  
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/2   | Total: 56m 59s | Avg: 28m 29s | Max: 28m 59s
      🟩 nvcc12.0           Pass: 100%/5   | Total:  3h 07m | Avg: 37m 35s | Max: 52m 21s | Hits: 172%/1846  
      🟩 nvcc12.5           Pass: 100%/2   | Total:  1h 52m | Avg: 56m 19s | Max: 59m 18s
      🟩 nvcc12.6           Pass: 100%/33  | Total: 17h 11m | Avg: 31m 15s | Max:  1h 10m | Hits: 174%/5538  
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 56m 59s | Avg: 28m 29s | Max: 28m 59s
      🟩 nvcc               Pass: 100%/40  | Total: 22h 12m | Avg: 33m 18s | Max:  1h 10m | Hits: 173%/7384  
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  2h 09m | Avg: 32m 20s | Max: 33m 55s
      🟩 Clang15            Pass: 100%/2   | Total:  1h 01m | Avg: 30m 42s | Max: 31m 24s
      🟩 Clang16            Pass: 100%/2   | Total:  1h 01m | Avg: 30m 53s | Max: 31m 05s
      🟩 Clang17            Pass: 100%/2   | Total:  1h 05m | Avg: 32m 59s | Max: 34m 09s
      🟩 Clang18            Pass: 100%/7   | Total:  2h 47m | Avg: 23m 56s | Max: 32m 15s
      🟩 GCC7               Pass: 100%/2   | Total:  1h 07m | Avg: 33m 57s | Max: 34m 26s
      🟩 GCC8               Pass: 100%/1   | Total: 31m 38s | Avg: 31m 38s | Max: 31m 38s
      🟩 GCC9               Pass: 100%/2   | Total:  1h 10m | Avg: 35m 06s | Max: 36m 20s
      🟩 GCC10              Pass: 100%/2   | Total:  1h 05m | Avg: 32m 48s | Max: 33m 09s
      🟩 GCC11              Pass: 100%/2   | Total:  1h 08m | Avg: 34m 11s | Max: 34m 16s
      🟩 GCC12              Pass: 100%/2   | Total:  1h 05m | Avg: 32m 31s | Max: 32m 56s
      🟩 GCC13              Pass: 100%/8   | Total:  2h 57m | Avg: 22m 14s | Max: 34m 51s
      🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 54m | Avg: 57m 13s | Max:  1h 02m | Hits: 175%/3692  
      🟩 MSVC14.39          Pass: 100%/2   | Total:  2h 09m | Avg:  1h 04m | Max:  1h 10m | Hits: 172%/3692  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  1h 52m | Avg: 56m 19s | Max: 59m 18s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/17  | Total:  8h 06m | Avg: 28m 35s | Max: 34m 09s
      🟩 GCC                Pass: 100%/19  | Total:  9h 06m | Avg: 28m 46s | Max: 36m 20s
      🟩 MSVC               Pass: 100%/4   | Total:  4h 03m | Avg:  1h 00m | Max:  1h 10m | Hits: 173%/7384  
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 52m | Avg: 56m 19s | Max: 59m 18s
    🟩 gpu
      🟩 rtx4090            Pass: 100%/8   | Total:  2h 19m | Avg: 17m 25s | Max: 34m 11s
      🟩 v100               Pass: 100%/34  | Total: 20h 49m | Avg: 36m 45s | Max:  1h 10m | Hits: 173%/7384  
    🟩 jobs
      🟩 Build              Pass: 100%/37  | Total: 22h 21m | Avg: 36m 15s | Max:  1h 10m | Hits: 173%/7384  
      🟩 TestCPU            Pass: 100%/2   | Total: 15m 34s | Avg:  7m 47s | Max:  8m 01s
      🟩 TestGPU            Pass: 100%/3   | Total: 31m 56s | Avg: 10m 38s | Max: 11m 00s
    🟩 sm
      🟩 90a                Pass: 100%/1   | Total: 20m 39s | Avg: 20m 39s | Max: 20m 39s
    🟩 std
      🟩 17                 Pass: 100%/20  | Total: 12h 31m | Avg: 37m 34s | Max:  1h 02m | Hits: 174%/5538  
      🟩 20                 Pass: 100%/20  | Total:  9h 59m | Avg: 29m 59s | Max:  1h 10m | Hits: 172%/1846  
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 9m 05s | Avg: 4m 32s | Max: 6m 55s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total:  9m 05s | Avg:  4m 32s | Max:  6m 55s
    🟩 ctk
      🟩 12.6               Pass: 100%/2   | Total:  9m 05s | Avg:  4m 32s | Max:  6m 55s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/2   | Total:  9m 05s | Avg:  4m 32s | Max:  6m 55s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total:  9m 05s | Avg:  4m 32s | Max:  6m 55s
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total:  9m 05s | Avg:  4m 32s | Max:  6m 55s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total:  9m 05s | Avg:  4m 32s | Max:  6m 55s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/2   | Total:  9m 05s | Avg:  4m 32s | Max:  6m 55s
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 10s | Avg:  2m 10s | Max:  2m 10s
      🟩 Test               Pass: 100%/1   | Total:  6m 55s | Avg:  6m 55s | Max:  6m 55s
    
  • 🟩 python: Pass: 100%/1 | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s

    🟩 cpu
      🟩 amd64              Pass: 100%/1   | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s
    🟩 ctk
      🟩 12.6               Pass: 100%/1   | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/1   | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/1   | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s
    🟩 cxx
      🟩 GCC13              Pass: 100%/1   | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/1   | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/1   | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s
    🟩 jobs
      🟩 Test               Pass: 100%/1   | Total: 25m 08s | Avg: 25m 08s | Max: 25m 08s
    

👃 Inspect Changes

Modifications in project?

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

Modifications in project or dependencies?

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

🏃‍ Runner counts (total jobs: 89)

# Runner
65 linux-amd64-cpu16
8 windows-amd64-cpu16
6 linux-amd64-gpu-rtxa6000-latest-1
4 linux-arm64-cpu16
3 linux-amd64-gpu-rtx4090-latest-1
2 linux-amd64-gpu-rtx2080-latest-1
1 linux-amd64-gpu-h100-latest-1

@shwina shwina force-pushed the add-scan-implementation-c-parallel branch 2 times, most recently from fd4bdbd to 3107a7f Compare February 2, 2025 12:56
@shwina shwina force-pushed the add-scan-implementation-c-parallel branch from 9f4468f to 9fe8dfe Compare February 10, 2025 15:44
Copy link
Contributor

🟩 CI finished in 1h 34m: Pass: 100%/90 | Total: 2d 14h | Avg: 41m 24s | Max: 1h 21m | Hits: 70%/129364
  • 🟩 cub: Pass: 100%/44 | Total: 1d 16h | Avg: 55m 15s | Max: 1h 21m | Hits: 58%/52496

    🟩 cpu
      🟩 amd64              Pass: 100%/42  | Total:  1d 14h | Avg: 54m 59s | Max:  1h 21m | Hits:  58%/50056 
      🟩 arm64              Pass: 100%/2   | Total:  2h 01m | Avg:  1h 00m | Max:  1h 01m | Hits:  55%/2440  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  4h 58m | Avg: 59m 40s | Max:  1h 05m | Hits:  48%/5934  
      🟩 12.5               Pass: 100%/2   | Total:  2h 24m | Avg:  1h 12m | Max:  1h 12m | Hits:  33%/2258  
      🟩 12.8               Pass: 100%/37  | Total:  1d 09h | Avg: 53m 44s | Max:  1h 21m | Hits:  61%/44304 
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/2   | Total:  2h 00m | Avg:  1h 00m | Max:  1h 01m | Hits:  59%/2112  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  4h 58m | Avg: 59m 40s | Max:  1h 05m | Hits:  48%/5934  
      🟩 nvcc12.5           Pass: 100%/2   | Total:  2h 24m | Avg:  1h 12m | Max:  1h 12m | Hits:  33%/2258  
      🟩 nvcc12.8           Pass: 100%/35  | Total:  1d 07h | Avg: 53m 21s | Max:  1h 21m | Hits:  61%/42192 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total:  2h 00m | Avg:  1h 00m | Max:  1h 01m | Hits:  59%/2112  
      🟩 nvcc               Pass: 100%/42  | Total:  1d 14h | Avg: 55m 01s | Max:  1h 21m | Hits:  58%/50384 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  3h 50m | Avg: 57m 40s | Max:  1h 00m | Hits:  55%/4888  
      🟩 Clang15            Pass: 100%/2   | Total:  1h 54m | Avg: 57m 21s | Max: 58m 13s | Hits:  55%/2440  
      🟩 Clang16            Pass: 100%/2   | Total:  1h 55m | Avg: 57m 33s | Max: 58m 47s | Hits:  55%/2440  
      🟩 Clang17            Pass: 100%/2   | Total:  2h 05m | Avg:  1h 02m | Max:  1h 02m | Hits:  55%/2440  
      🟩 Clang18            Pass: 100%/7   | Total:  5h 50m | Avg: 50m 02s | Max:  1h 02m | Hits:  69%/8212  
      🟩 GCC7               Pass: 100%/2   | Total:  2h 04m | Avg:  1h 02m | Max:  1h 04m | Hits:  55%/2444  
      🟩 GCC8               Pass: 100%/1   | Total: 55m 37s | Avg: 55m 37s | Max: 55m 37s | Hits:  55%/1222  
      🟩 GCC9               Pass: 100%/2   | Total:  2h 00m | Avg:  1h 00m | Max:  1h 01m | Hits:  55%/2444  
      🟩 GCC10              Pass: 100%/2   | Total:  2h 07m | Avg:  1h 03m | Max:  1h 05m | Hits:  55%/2444  
      🟩 GCC11              Pass: 100%/2   | Total:  1h 55m | Avg: 57m 52s | Max: 57m 57s | Hits:  55%/2440  
      🟩 GCC12              Pass: 100%/2   | Total:  2h 06m | Avg:  1h 03m | Max:  1h 03m | Hits:  55%/2440  
      🟩 GCC13              Pass: 100%/10  | Total:  6h 27m | Avg: 38m 44s | Max:  1h 17m | Hits:  77%/12200 
      🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 14m | Avg:  1h 07m | Max:  1h 09m | Hits:  13%/2092  
      🟩 MSVC14.42          Pass: 100%/2   | Total:  2h 38m | Avg:  1h 19m | Max:  1h 21m | Hits:  13%/2092  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  2h 24m | Avg:  1h 12m | Max:  1h 12m | Hits:  33%/2258  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/17  | Total: 15h 35m | Avg: 55m 02s | Max:  1h 02m | Hits:  61%/20420 
      🟩 GCC                Pass: 100%/21  | Total: 17h 37m | Avg: 50m 22s | Max:  1h 17m | Hits:  65%/25634 
      🟩 MSVC               Pass: 100%/4   | Total:  4h 52m | Avg:  1h 13m | Max:  1h 21m | Hits:  13%/4184  
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 24m | Avg:  1h 12m | Max:  1h 12m | Hits:  33%/2258  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 52m 50s | Avg: 26m 25s | Max: 27m 36s | Hits:  77%/2440  
      🟩 rtx2080            Pass: 100%/34  | Total:  1d 11h | Avg:  1h 02m | Max:  1h 21m | Hits:  50%/40296 
      🟩 rtxa6000           Pass: 100%/8   | Total:  4h 05m | Avg: 30m 43s | Max:  1h 02m | Hits:  88%/9760  
    🟩 jobs
      🟩 Build              Pass: 100%/37  | Total:  1d 13h | Avg:  1h 01m | Max:  1h 21m | Hits:  50%/43956 
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 20m 55s | Avg: 20m 55s | Max: 20m 55s | Hits:  99%/1220  
      🟩 GraphCapture       Pass: 100%/1   | Total: 15m 57s | Avg: 15m 57s | Max: 15m 57s | Hits:  99%/1220  
      🟩 HostLaunch         Pass: 100%/3   | Total:  1h 12m | Avg: 24m 02s | Max: 25m 14s | Hits:  99%/3660  
      🟩 TestGPU            Pass: 100%/2   | Total: 42m 44s | Avg: 21m 22s | Max: 22m 00s | Hits:  99%/2440  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 52m 50s | Avg: 26m 25s | Max: 27m 36s | Hits:  77%/2440  
      🟩 90;90a;100         Pass: 100%/1   | Total:  1h 17m | Avg:  1h 17m | Max:  1h 17m | Hits:  55%/1220  
    🟩 std
      🟩 17                 Pass: 100%/20  | Total: 20h 41m | Avg:  1h 02m | Max:  1h 16m | Hits:  49%/23639 
      🟩 20                 Pass: 100%/24  | Total: 19h 49m | Avg: 49m 34s | Max:  1h 21m | Hits:  66%/28857 
    
  • 🟩 thrust: Pass: 100%/43 | Total: 20h 45m | Avg: 28m 58s | Max: 1h 00m | Hits: 78%/76572

    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 32m 51s | Avg: 16m 25s | Max: 21m 47s | Hits:  89%/3564  
    🟩 cpu
      🟩 amd64              Pass: 100%/41  | Total: 19h 54m | Avg: 29m 08s | Max:  1h 00m | Hits:  78%/73009 
      🟩 arm64              Pass: 100%/2   | Total: 51m 12s | Avg: 25m 36s | Max: 27m 12s | Hits:  79%/3563  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  2h 41m | Avg: 32m 21s | Max: 47m 00s | Hits:  74%/8901  
      🟩 12.5               Pass: 100%/2   | Total:  1h 45m | Avg: 52m 45s | Max: 54m 10s | Hits:  64%/3562  
      🟩 12.8               Pass: 100%/36  | Total: 16h 18m | Avg: 27m 10s | Max:  1h 00m | Hits:  79%/64109 
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/2   | Total: 48m 14s | Avg: 24m 07s | Max: 24m 43s | Hits:  79%/3562  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  2h 41m | Avg: 32m 21s | Max: 47m 00s | Hits:  74%/8901  
      🟩 nvcc12.5           Pass: 100%/2   | Total:  1h 45m | Avg: 52m 45s | Max: 54m 10s | Hits:  64%/3562  
      🟩 nvcc12.8           Pass: 100%/34  | Total: 15h 30m | Avg: 27m 21s | Max:  1h 00m | Hits:  79%/60547 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 48m 14s | Avg: 24m 07s | Max: 24m 43s | Hits:  79%/3562  
      🟩 nvcc               Pass: 100%/41  | Total: 19h 57m | Avg: 29m 12s | Max:  1h 00m | Hits:  78%/73010 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  1h 52m | Avg: 28m 12s | Max: 29m 24s | Hits:  79%/7124  
      🟩 Clang15            Pass: 100%/2   | Total: 56m 21s | Avg: 28m 10s | Max: 29m 01s | Hits:  79%/3562  
      🟩 Clang16            Pass: 100%/2   | Total: 55m 43s | Avg: 27m 51s | Max: 27m 59s | Hits:  79%/3562  
      🟩 Clang17            Pass: 100%/2   | Total: 53m 52s | Avg: 26m 56s | Max: 27m 04s | Hits:  79%/3562  
      🟩 Clang18            Pass: 100%/7   | Total:  2h 27m | Avg: 21m 00s | Max: 28m 59s | Hits:  85%/12467 
      🟩 GCC7               Pass: 100%/2   | Total: 52m 32s | Avg: 26m 16s | Max: 26m 17s | Hits:  79%/3564  
      🟩 GCC8               Pass: 100%/1   | Total: 26m 05s | Avg: 26m 05s | Max: 26m 05s | Hits:  79%/1782  
      🟩 GCC9               Pass: 100%/2   | Total: 58m 54s | Avg: 29m 27s | Max: 30m 06s | Hits:  79%/3564  
      🟩 GCC10              Pass: 100%/2   | Total: 57m 32s | Avg: 28m 46s | Max: 30m 01s | Hits:  79%/3564  
      🟩 GCC11              Pass: 100%/2   | Total: 53m 10s | Avg: 26m 35s | Max: 26m 58s | Hits:  79%/3564  
      🟩 GCC12              Pass: 100%/2   | Total: 56m 29s | Avg: 28m 14s | Max: 28m 33s | Hits:  79%/3564  
      🟩 GCC13              Pass: 100%/8   | Total:  2h 47m | Avg: 20m 54s | Max: 30m 58s | Hits:  86%/14256 
      🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 40m | Avg: 50m 14s | Max: 53m 29s | Hits:  55%/3550  
      🟩 MSVC14.42          Pass: 100%/3   | Total:  2h 22m | Avg: 47m 23s | Max:  1h 00m | Hits:  60%/5325  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  1h 45m | Avg: 52m 45s | Max: 54m 10s | Hits:  64%/3562  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/17  | Total:  7h 05m | Avg: 25m 02s | Max: 29m 24s | Hits:  81%/30277 
      🟩 GCC                Pass: 100%/19  | Total:  7h 51m | Avg: 24m 50s | Max: 30m 58s | Hits:  82%/33858 
      🟩 MSVC               Pass: 100%/5   | Total:  4h 02m | Avg: 48m 31s | Max:  1h 00m | Hits:  58%/8875  
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 45m | Avg: 52m 45s | Max: 54m 10s | Hits:  64%/3562  
    🟩 gpu
      🟩 rtx2080            Pass: 100%/33  | Total: 17h 07m | Avg: 31m 08s | Max: 54m 10s | Hits:  76%/58769 
      🟩 rtx4090            Pass: 100%/10  | Total:  3h 38m | Avg: 21m 50s | Max:  1h 00m | Hits:  86%/17803 
    🟩 jobs
      🟩 Build              Pass: 100%/37  | Total: 19h 28m | Avg: 31m 35s | Max:  1h 00m | Hits:  75%/65889 
      🟩 TestCPU            Pass: 100%/3   | Total: 44m 32s | Avg: 14m 50s | Max: 29m 05s | Hits:  90%/5338  
      🟩 TestGPU            Pass: 100%/3   | Total: 32m 33s | Avg: 10m 51s | Max: 11m 16s | Hits:  99%/5345  
    🟩 sm
      🟩 90;90a;100         Pass: 100%/1   | Total: 30m 58s | Avg: 30m 58s | Max: 30m 58s | Hits:  79%/1782  
    🟩 std
      🟩 17                 Pass: 100%/20  | Total: 10h 46m | Avg: 32m 20s | Max: 53m 29s | Hits:  74%/35611 
      🟩 20                 Pass: 100%/21  | Total:  9h 26m | Avg: 26m 58s | Max:  1h 00m | Hits:  80%/37397 
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 13m 21s | Avg: 6m 40s | Max: 10m 42s | Hits: 96%/296

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total: 13m 21s | Avg:  6m 40s | Max: 10m 42s | Hits:  96%/296   
    🟩 ctk
      🟩 12.8               Pass: 100%/2   | Total: 13m 21s | Avg:  6m 40s | Max: 10m 42s | Hits:  96%/296   
    🟩 cudacxx
      🟩 nvcc12.8           Pass: 100%/2   | Total: 13m 21s | Avg:  6m 40s | Max: 10m 42s | Hits:  96%/296   
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total: 13m 21s | Avg:  6m 40s | Max: 10m 42s | Hits:  96%/296   
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total: 13m 21s | Avg:  6m 40s | Max: 10m 42s | Hits:  96%/296   
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total: 13m 21s | Avg:  6m 40s | Max: 10m 42s | Hits:  96%/296   
    🟩 gpu
      🟩 rtx2080            Pass: 100%/2   | Total: 13m 21s | Avg:  6m 40s | Max: 10m 42s | Hits:  96%/296   
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 39s | Avg:  2m 39s | Max:  2m 39s | Hits:  95%/148   
      🟩 Test               Pass: 100%/1   | Total: 10m 42s | Avg: 10m 42s | Max: 10m 42s | Hits:  98%/148   
    
  • 🟩 python: Pass: 100%/1 | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s

    🟩 cpu
      🟩 amd64              Pass: 100%/1   | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s
    🟩 ctk
      🟩 12.8               Pass: 100%/1   | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s
    🟩 cudacxx
      🟩 nvcc12.8           Pass: 100%/1   | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/1   | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s
    🟩 cxx
      🟩 GCC13              Pass: 100%/1   | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/1   | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/1   | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s
    🟩 jobs
      🟩 Test               Pass: 100%/1   | Total: 35m 40s | Avg: 35m 40s | Max: 35m 40s
    

👃 Inspect Changes

Modifications in project?

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

Modifications in project or dependencies?

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

🏃‍ Runner counts (total jobs: 90)

# Runner
65 linux-amd64-cpu16
9 windows-amd64-cpu16
6 linux-amd64-gpu-rtxa6000-latest-1
4 linux-arm64-cpu16
3 linux-amd64-gpu-rtx4090-latest-1
2 linux-amd64-gpu-rtx2080-latest-1
1 linux-amd64-gpu-h100-latest-1

@shwina shwina enabled auto-merge (squash) February 11, 2025 00:27
Copy link
Contributor

🟩 CI finished in 2h 58m: Pass: 100%/90 | Total: 2d 13h | Avg: 41m 10s | Max: 1h 20m | Hits: 71%/129364
  • 🟩 cub: Pass: 100%/44 | Total: 1d 16h | Avg: 54m 40s | Max: 1h 20m | Hits: 59%/52496

    🟩 cpu
      🟩 amd64              Pass: 100%/42  | Total:  1d 14h | Avg: 54m 25s | Max:  1h 20m | Hits:  59%/50056 
      🟩 arm64              Pass: 100%/2   | Total:  1h 59m | Avg: 59m 48s | Max:  1h 01m | Hits:  55%/2440  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  5h 02m | Avg:  1h 00m | Max:  1h 07m | Hits:  48%/5934  
      🟩 12.5               Pass: 100%/2   | Total:  2h 21m | Avg:  1h 10m | Max:  1h 13m | Hits:  54%/2258  
      🟩 12.8               Pass: 100%/37  | Total:  1d 08h | Avg: 53m 00s | Max:  1h 20m | Hits:  61%/44304 
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/2   | Total:  2h 04m | Avg:  1h 02m | Max:  1h 04m | Hits:  60%/2112  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  5h 02m | Avg:  1h 00m | Max:  1h 07m | Hits:  48%/5934  
      🟩 nvcc12.5           Pass: 100%/2   | Total:  2h 21m | Avg:  1h 10m | Max:  1h 13m | Hits:  54%/2258  
      🟩 nvcc12.8           Pass: 100%/35  | Total:  1d 06h | Avg: 52m 28s | Max:  1h 20m | Hits:  61%/42192 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total:  2h 04m | Avg:  1h 02m | Max:  1h 04m | Hits:  60%/2112  
      🟩 nvcc               Pass: 100%/42  | Total:  1d 14h | Avg: 54m 18s | Max:  1h 20m | Hits:  59%/50384 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  3h 58m | Avg: 59m 30s | Max:  1h 01m | Hits:  56%/4888  
      🟩 Clang15            Pass: 100%/2   | Total:  1h 57m | Avg: 58m 44s | Max:  1h 01m | Hits:  56%/2440  
      🟩 Clang16            Pass: 100%/2   | Total:  1h 58m | Avg: 59m 16s | Max:  1h 01m | Hits:  56%/2440  
      🟩 Clang17            Pass: 100%/2   | Total:  1h 56m | Avg: 58m 03s | Max:  1h 01m | Hits:  56%/2440  
      🟩 Clang18            Pass: 100%/7   | Total:  5h 38m | Avg: 48m 23s | Max:  1h 04m | Hits:  70%/8212  
      🟩 GCC7               Pass: 100%/2   | Total:  1h 55m | Avg: 57m 45s | Max: 59m 52s | Hits:  55%/2444  
      🟩 GCC8               Pass: 100%/1   | Total:  1h 01m | Avg:  1h 01m | Max:  1h 01m | Hits:  55%/1222  
      🟩 GCC9               Pass: 100%/2   | Total:  1h 55m | Avg: 57m 50s | Max: 57m 51s | Hits:  55%/2444  
      🟩 GCC10              Pass: 100%/2   | Total:  1h 57m | Avg: 58m 45s | Max:  1h 00m | Hits:  55%/2444  
      🟩 GCC11              Pass: 100%/2   | Total:  1h 56m | Avg: 58m 06s | Max: 58m 54s | Hits:  55%/2440  
      🟩 GCC12              Pass: 100%/2   | Total:  2h 00m | Avg:  1h 00m | Max:  1h 01m | Hits:  55%/2440  
      🟩 GCC13              Pass: 100%/10  | Total:  6h 23m | Avg: 38m 18s | Max:  1h 08m | Hits:  77%/12200 
      🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 28m | Avg:  1h 14m | Max:  1h 20m | Hits:  13%/2092  
      🟩 MSVC14.42          Pass: 100%/2   | Total:  2h 36m | Avg:  1h 18m | Max:  1h 20m | Hits:  13%/2092  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  2h 21m | Avg:  1h 10m | Max:  1h 13m | Hits:  54%/2258  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/17  | Total: 15h 28m | Avg: 54m 38s | Max:  1h 04m | Hits:  61%/20420 
      🟩 GCC                Pass: 100%/21  | Total: 17h 09m | Avg: 49m 01s | Max:  1h 08m | Hits:  66%/25634 
      🟩 MSVC               Pass: 100%/4   | Total:  5h 05m | Avg:  1h 16m | Max:  1h 20m | Hits:  13%/4184  
      🟩 NVHPC              Pass: 100%/2   | Total:  2h 21m | Avg:  1h 10m | Max:  1h 13m | Hits:  54%/2258  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 49m 26s | Avg: 24m 43s | Max: 25m 04s | Hits:  77%/2440  
      🟩 rtx2080            Pass: 100%/34  | Total:  1d 11h | Avg:  1h 02m | Max:  1h 20m | Hits:  51%/40296 
      🟩 rtxa6000           Pass: 100%/8   | Total:  4h 03m | Avg: 30m 24s | Max:  1h 00m | Hits:  88%/9760  
    🟩 jobs
      🟩 Build              Pass: 100%/37  | Total:  1d 13h | Avg:  1h 00m | Max:  1h 20m | Hits:  52%/43956 
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 20m 41s | Avg: 20m 41s | Max: 20m 41s | Hits:  99%/1220  
      🟩 GraphCapture       Pass: 100%/1   | Total: 16m 32s | Avg: 16m 32s | Max: 16m 32s | Hits:  99%/1220  
      🟩 HostLaunch         Pass: 100%/3   | Total:  1h 11m | Avg: 23m 56s | Max: 24m 36s | Hits:  99%/3660  
      🟩 TestGPU            Pass: 100%/2   | Total: 42m 36s | Avg: 21m 18s | Max: 22m 07s | Hits:  99%/2440  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 49m 26s | Avg: 24m 43s | Max: 25m 04s | Hits:  77%/2440  
      🟩 90;90a;100         Pass: 100%/1   | Total:  1h 08m | Avg:  1h 08m | Max:  1h 08m | Hits:  55%/1220  
    🟩 std
      🟩 17                 Pass: 100%/20  | Total: 20h 44m | Avg:  1h 02m | Max:  1h 20m | Hits:  50%/23639 
      🟩 20                 Pass: 100%/24  | Total: 19h 20m | Avg: 48m 21s | Max:  1h 16m | Hits:  67%/28857 
    
  • 🟩 thrust: Pass: 100%/43 | Total: 20h 54m | Avg: 29m 10s | Max: 57m 51s | Hits: 78%/76572

    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 36m 26s | Avg: 18m 13s | Max: 25m 23s | Hits:  89%/3564  
    🟩 cpu
      🟩 amd64              Pass: 100%/41  | Total: 20h 01m | Avg: 29m 17s | Max: 57m 51s | Hits:  78%/73009 
      🟩 arm64              Pass: 100%/2   | Total: 53m 17s | Avg: 26m 38s | Max: 27m 30s | Hits:  79%/3563  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total:  2h 39m | Avg: 31m 54s | Max: 49m 23s | Hits:  74%/8901  
      🟩 12.5               Pass: 100%/2   | Total:  1h 40m | Avg: 50m 08s | Max: 50m 55s | Hits:  72%/3562  
      🟩 12.8               Pass: 100%/36  | Total: 16h 34m | Avg: 27m 37s | Max: 57m 51s | Hits:  79%/64109 
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/2   | Total: 47m 21s | Avg: 23m 40s | Max: 24m 04s | Hits:  79%/3562  
      🟩 nvcc12.0           Pass: 100%/5   | Total:  2h 39m | Avg: 31m 54s | Max: 49m 23s | Hits:  74%/8901  
      🟩 nvcc12.5           Pass: 100%/2   | Total:  1h 40m | Avg: 50m 08s | Max: 50m 55s | Hits:  72%/3562  
      🟩 nvcc12.8           Pass: 100%/34  | Total: 15h 47m | Avg: 27m 51s | Max: 57m 51s | Hits:  79%/60547 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 47m 21s | Avg: 23m 40s | Max: 24m 04s | Hits:  79%/3562  
      🟩 nvcc               Pass: 100%/41  | Total: 20h 06m | Avg: 29m 26s | Max: 57m 51s | Hits:  78%/73010 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total:  1h 48m | Avg: 27m 09s | Max: 28m 57s | Hits:  79%/7124  
      🟩 Clang15            Pass: 100%/2   | Total: 55m 38s | Avg: 27m 49s | Max: 29m 11s | Hits:  79%/3562  
      🟩 Clang16            Pass: 100%/2   | Total: 59m 00s | Avg: 29m 30s | Max: 30m 39s | Hits:  79%/3562  
      🟩 Clang17            Pass: 100%/2   | Total: 55m 40s | Avg: 27m 50s | Max: 29m 00s | Hits:  79%/3562  
      🟩 Clang18            Pass: 100%/7   | Total:  2h 26m | Avg: 20m 59s | Max: 29m 35s | Hits:  85%/12467 
      🟩 GCC7               Pass: 100%/2   | Total: 57m 00s | Avg: 28m 30s | Max: 29m 00s | Hits:  79%/3564  
      🟩 GCC8               Pass: 100%/1   | Total: 26m 50s | Avg: 26m 50s | Max: 26m 50s | Hits:  79%/1782  
      🟩 GCC9               Pass: 100%/2   | Total: 57m 06s | Avg: 28m 33s | Max: 28m 51s | Hits:  79%/3564  
      🟩 GCC10              Pass: 100%/2   | Total: 57m 08s | Avg: 28m 34s | Max: 29m 34s | Hits:  79%/3564  
      🟩 GCC11              Pass: 100%/2   | Total: 58m 17s | Avg: 29m 08s | Max: 30m 49s | Hits:  79%/3564  
      🟩 GCC12              Pass: 100%/2   | Total:  1h 01m | Avg: 30m 35s | Max: 31m 31s | Hits:  79%/3564  
      🟩 GCC13              Pass: 100%/8   | Total:  2h 52m | Avg: 21m 34s | Max: 30m 20s | Hits:  86%/14256 
      🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 38m | Avg: 49m 25s | Max: 49m 28s | Hits:  55%/3550  
      🟩 MSVC14.42          Pass: 100%/3   | Total:  2h 19m | Avg: 46m 24s | Max: 57m 51s | Hits:  60%/5325  
      🟩 NVHPC24.7          Pass: 100%/2   | Total:  1h 40m | Avg: 50m 08s | Max: 50m 55s | Hits:  72%/3562  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/17  | Total:  7h 05m | Avg: 25m 02s | Max: 30m 39s | Hits:  81%/30277 
      🟩 GCC                Pass: 100%/19  | Total:  8h 10m | Avg: 25m 47s | Max: 31m 31s | Hits:  82%/33858 
      🟩 MSVC               Pass: 100%/5   | Total:  3h 58m | Avg: 47m 37s | Max: 57m 51s | Hits:  58%/8875  
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 40m | Avg: 50m 08s | Max: 50m 55s | Hits:  72%/3562  
    🟩 gpu
      🟩 rtx2080            Pass: 100%/33  | Total: 17h 17m | Avg: 31m 25s | Max: 51m 45s | Hits:  76%/58769 
      🟩 rtx4090            Pass: 100%/10  | Total:  3h 37m | Avg: 21m 42s | Max: 57m 51s | Hits:  86%/17803 
    🟩 jobs
      🟩 Build              Pass: 100%/37  | Total: 19h 36m | Avg: 31m 47s | Max: 57m 51s | Hits:  76%/65889 
      🟩 TestCPU            Pass: 100%/3   | Total: 45m 20s | Avg: 15m 06s | Max: 29m 38s | Hits:  90%/5338  
      🟩 TestGPU            Pass: 100%/3   | Total: 32m 32s | Avg: 10m 50s | Max: 11m 18s | Hits:  99%/5345  
    🟩 sm
      🟩 90;90a;100         Pass: 100%/1   | Total: 29m 22s | Avg: 29m 22s | Max: 29m 22s | Hits:  79%/1782  
    🟩 std
      🟩 17                 Pass: 100%/20  | Total: 10h 55m | Avg: 32m 47s | Max: 51m 45s | Hits:  75%/35611 
      🟩 20                 Pass: 100%/21  | Total:  9h 22m | Avg: 26m 46s | Max: 57m 51s | Hits:  81%/37397 
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 13m 40s | Avg: 6m 50s | Max: 11m 02s | Hits: 96%/296

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max: 11m 02s | Hits:  96%/296   
    🟩 ctk
      🟩 12.8               Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max: 11m 02s | Hits:  96%/296   
    🟩 cudacxx
      🟩 nvcc12.8           Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max: 11m 02s | Hits:  96%/296   
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max: 11m 02s | Hits:  96%/296   
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max: 11m 02s | Hits:  96%/296   
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max: 11m 02s | Hits:  96%/296   
    🟩 gpu
      🟩 rtx2080            Pass: 100%/2   | Total: 13m 40s | Avg:  6m 50s | Max: 11m 02s | Hits:  96%/296   
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 38s | Avg:  2m 38s | Max:  2m 38s | Hits:  93%/148   
      🟩 Test               Pass: 100%/1   | Total: 11m 02s | Avg: 11m 02s | Max: 11m 02s | Hits:  98%/148   
    
  • 🟩 python: Pass: 100%/1 | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s

    🟩 cpu
      🟩 amd64              Pass: 100%/1   | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s
    🟩 ctk
      🟩 12.8               Pass: 100%/1   | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s
    🟩 cudacxx
      🟩 nvcc12.8           Pass: 100%/1   | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/1   | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s
    🟩 cxx
      🟩 GCC13              Pass: 100%/1   | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/1   | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/1   | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s
    🟩 jobs
      🟩 Test               Pass: 100%/1   | Total: 32m 12s | Avg: 32m 12s | Max: 32m 12s
    

👃 Inspect Changes

Modifications in project?

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

Modifications in project or dependencies?

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

🏃‍ Runner counts (total jobs: 90)

# Runner
65 linux-amd64-cpu16
9 windows-amd64-cpu16
6 linux-amd64-gpu-rtxa6000-latest-1
4 linux-arm64-cpu16
3 linux-amd64-gpu-rtx4090-latest-1
2 linux-amd64-gpu-rtx2080-latest-1
1 linux-amd64-gpu-h100-latest-1

@shwina shwina merged commit bc57f2b into NVIDIA:main Feb 11, 2025
104 of 107 checks passed
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.

[FEA]: Implement cccl.c.parallel version of prefix sum
5 participants