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

Avoid checking unsigned values for negativity #2997

Merged
merged 3 commits into from
Dec 2, 2024

Conversation

bernhardmgruber
Copy link
Contributor

@bernhardmgruber bernhardmgruber commented Dec 2, 2024

Addresses post-merge review comment: #2987 (comment)

Copy link

copy-pr-bot bot commented Dec 2, 2024

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.

Comment on lines 112 to 119
_CCCL_IF_CONSTEXPR (_CCCL_TRAIT(is_signed, T))
{
_CCCL_DIAG_PUSH
_CCCL_DIAG_SUPPRESS_ICC(186) // pointless comparison of unsigned integer with zero
_CCCL_ASSERT(value >= 0, "value must be non-negative");
_CCCL_ASSERT(multiplier >= 0, "multiplier must be non-negative");
_CCCL_DIAG_POP
}
Copy link
Contributor

@davebayer davebayer Dec 2, 2024

Choose a reason for hiding this comment

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

Suggested change
_CCCL_IF_CONSTEXPR (_CCCL_TRAIT(is_signed, T))
{
_CCCL_DIAG_PUSH
_CCCL_DIAG_SUPPRESS_ICC(186) // pointless comparison of unsigned integer with zero
_CCCL_ASSERT(value >= 0, "value must be non-negative");
_CCCL_ASSERT(multiplier >= 0, "multiplier must be non-negative");
_CCCL_DIAG_POP
}
_CCCL_ASSERT(_CUDA_VSTD::cmp_greater_equal(value, 0), "value must be non-negative");
_CCCL_ASSERT(_CUDA_VSTD::cmp_greater_equal(multiplier, 0), "multiplier must be non-negative");

When #2805 is merged, I think applying integer comparison functions should fix the warning.

Copy link
Collaborator

Choose a reason for hiding this comment

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

It would fix the warning but it would come at a cost.

We do not want a function call if we already know that the condition is statically satisfied

cub/cub/detail/fast_modulo_division.cuh Outdated Show resolved Hide resolved
Comment on lines 112 to 119
_CCCL_IF_CONSTEXPR (_CCCL_TRAIT(is_signed, T))
{
_CCCL_DIAG_PUSH
_CCCL_DIAG_SUPPRESS_ICC(186) // pointless comparison of unsigned integer with zero
_CCCL_ASSERT(value >= 0, "value must be non-negative");
_CCCL_ASSERT(multiplier >= 0, "multiplier must be non-negative");
_CCCL_DIAG_POP
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

It would fix the warning but it would come at a cost.

We do not want a function call if we already know that the condition is statically satisfied

Copy link
Contributor

github-actions bot commented Dec 2, 2024

🟨 CI finished in 1h 35m: Pass: 99%/224 | Total: 4d 18h | Avg: 30m 41s | Max: 1h 15m | Hits: 91%/12288
  • 🟨 cub: Pass: 99%/110 | Total: 2d 21h | Avg: 37m 38s | Max: 1h 15m | Hits: 89%/3028

    🔍 cpu: amd64 🔍
      🔍 amd64              Pass:  99%/102 | Total:  2d 15h | Avg: 37m 04s | Max:  1h 15m | Hits:  89%/3028  
      🟩 arm64              Pass: 100%/8   | Total:  5h 59m | Avg: 44m 53s | Max:  1h 02m
    🔍 ctk: 12.6 🔍
      🟩 11.1               Pass: 100%/15  | Total:  7h 38m | Avg: 30m 32s | Max: 49m 19s | Hits:  98%/757   
      🟩 11.8               Pass: 100%/3   | Total:  2h 40m | Avg: 53m 33s | Max:  1h 15m
      🟩 12.5               Pass: 100%/4   | Total:  3h 20m | Avg: 50m 01s | Max:  1h 05m
      🔍 12.6               Pass:  98%/88  | Total:  2d 07h | Avg: 37m 44s | Max:  1h 11m | Hits:  87%/2271  
    🔍 cudacxx: nvcc12.6 🔍
      🟩 ClangCUDA18        Pass: 100%/4   | Total:  2h 57m | Avg: 44m 15s | Max: 58m 24s
      🟩 nvcc11.1           Pass: 100%/15  | Total:  7h 38m | Avg: 30m 32s | Max: 49m 19s | Hits:  98%/757   
      🟩 nvcc11.8           Pass: 100%/3   | Total:  2h 40m | Avg: 53m 33s | Max:  1h 15m
      🟩 nvcc12.5           Pass: 100%/4   | Total:  3h 20m | Avg: 50m 01s | Max:  1h 05m
      🔍 nvcc12.6           Pass:  98%/84  | Total:  2d 04h | Avg: 37m 25s | Max:  1h 11m | Hits:  87%/2271  
    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/4   | Total:  2h 57m | Avg: 44m 15s | Max: 58m 24s
      🔍 nvcc               Pass:  99%/106 | Total:  2d 18h | Avg: 37m 23s | Max:  1h 15m | Hits:  89%/3028  
    🔍 cxx: Clang18 🔍
      🟩 Clang9             Pass: 100%/6   | Total:  3h 35m | Avg: 35m 50s | Max: 50m 58s
      🟩 Clang10            Pass: 100%/3   | Total:  1h 51m | Avg: 37m 11s | Max: 51m 28s
      🟩 Clang11            Pass: 100%/4   | Total:  2h 41m | Avg: 40m 22s | Max: 51m 33s
      🟩 Clang12            Pass: 100%/4   | Total:  2h 40m | Avg: 40m 12s | Max: 51m 24s
      🟩 Clang13            Pass: 100%/4   | Total:  2h 48m | Avg: 42m 04s | Max: 53m 40s
      🟩 Clang14            Pass: 100%/4   | Total:  2h 41m | Avg: 40m 16s | Max: 52m 15s
      🟩 Clang15            Pass: 100%/4   | Total:  2h 51m | Avg: 42m 50s | Max: 56m 19s
      🟩 Clang16            Pass: 100%/4   | Total:  2h 50m | Avg: 42m 43s | Max: 57m 49s
      🟩 Clang17            Pass: 100%/4   | Total:  2h 47m | Avg: 41m 55s | Max: 55m 45s
      🔍 Clang18            Pass:  90%/11  | Total:  7h 03m | Avg: 38m 31s | Max:  1h 01m
      🟩 GCC6               Pass: 100%/2   | Total: 48m 10s | Avg: 24m 05s | Max: 43m 53s
      🟩 GCC7               Pass: 100%/6   | Total:  3h 29m | Avg: 34m 54s | Max: 50m 35s
      🟩 GCC8               Pass: 100%/6   | Total:  3h 40m | Avg: 36m 40s | Max: 57m 37s
      🟩 GCC9               Pass: 100%/6   | Total:  3h 27m | Avg: 34m 37s | Max: 54m 29s
      🟩 GCC10              Pass: 100%/4   | Total:  2h 44m | Avg: 41m 06s | Max: 53m 13s
      🟩 GCC11              Pass: 100%/7   | Total:  5h 23m | Avg: 46m 09s | Max:  1h 15m
      🟩 GCC12              Pass: 100%/4   | Total:  2h 45m | Avg: 41m 16s | Max: 52m 36s
      🟩 GCC13              Pass: 100%/16  | Total:  7h 37m | Avg: 28m 37s | Max:  1h 02m
      🟩 Intel2023.2.0      Pass: 100%/3   | Total:  2h 02m | Avg: 40m 40s | Max:  1h 01m
      🟩 MSVC14.16          Pass: 100%/1   | Total: 14m 18s | Avg: 14m 18s | Max: 14m 18s | Hits:  98%/757   
      🟩 MSVC14.29          Pass: 100%/2   | Total: 24m 18s | Avg: 12m 09s | Max: 12m 15s | Hits:  98%/1514  
      🟩 MSVC14.39          Pass: 100%/1   | Total:  1h 11m | Avg:  1h 11m | Max:  1h 11m | Hits:  63%/757   
      🟩 NVHPC24.7          Pass: 100%/4   | Total:  3h 20m | Avg: 50m 01s | Max:  1h 05m
    🔍 cxx_family: Clang 🔍
      🔍 Clang              Pass:  97%/48  | Total:  1d 07h | Avg: 39m 49s | Max:  1h 01m
      🟩 GCC                Pass: 100%/51  | Total:  1d 05h | Avg: 35m 12s | Max:  1h 15m
      🟩 Intel              Pass: 100%/3   | Total:  2h 02m | Avg: 40m 40s | Max:  1h 01m
      🟩 MSVC               Pass: 100%/4   | Total:  1h 50m | Avg: 27m 32s | Max:  1h 11m | Hits:  89%/3028  
      🟩 NVHPC              Pass: 100%/4   | Total:  3h 20m | Avg: 50m 01s | Max:  1h 05m
    🔍 jobs: TestGPU 🔍
      🟩 Build              Pass: 100%/102 | Total:  2d 18h | Avg: 39m 02s | Max:  1h 15m | Hits:  89%/3028  
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 24m 26s | Avg: 24m 26s | Max: 24m 26s
      🟩 GraphCapture       Pass: 100%/1   | Total: 22m 08s | Avg: 22m 08s | Max: 22m 08s
      🟩 HostLaunch         Pass: 100%/3   | Total: 58m 36s | Avg: 19m 32s | Max: 23m 54s
      🔍 TestGPU            Pass:  66%/3   | Total: 52m 17s | Avg: 17m 25s | Max: 26m 26s
    🔍 std: 20 🔍
      🟩 11                 Pass: 100%/30  | Total:  4h 15m | Avg:  8m 31s | Max: 24m 10s
      🟩 14                 Pass: 100%/29  | Total: 23h 58m | Avg: 49m 36s | Max:  1h 14m | Hits:  98%/1514  
      🟩 17                 Pass: 100%/27  | Total: 22h 56m | Avg: 50m 59s | Max:  1h 15m | Hits:  98%/757   
      🔍 20                 Pass:  95%/24  | Total: 17h 48m | Avg: 44m 31s | Max:  1h 11m | Hits:  63%/757   
    🟨 gpu
      🟨 v100               Pass:  99%/110 | Total:  2d 21h | Avg: 37m 38s | Max:  1h 15m | Hits:  89%/3028  
    🟩 sm
      🟩 60;70;80;90        Pass: 100%/3   | Total:  2h 40m | Avg: 53m 33s | Max:  1h 15m
      🟩 90a                Pass: 100%/4   | Total:  1h 14m | Avg: 18m 42s | Max: 24m 53s
    
  • 🟩 thrust: Pass: 100%/111 | Total: 1d 21h | Avg: 24m 23s | Max: 1h 03m | Hits: 92%/9260

    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 40m 05s | Avg: 20m 02s | Max: 28m 41s
    🟩 cpu
      🟩 amd64              Pass: 100%/103 | Total:  1d 17h | Avg: 24m 21s | Max:  1h 03m | Hits:  92%/9260  
      🟩 arm64              Pass: 100%/8   | Total:  3h 17m | Avg: 24m 44s | Max: 38m 26s
    🟩 ctk
      🟩 11.1               Pass: 100%/15  | Total:  5h 21m | Avg: 21m 25s | Max: 33m 20s | Hits:  99%/1852  
      🟩 11.8               Pass: 100%/3   | Total:  1h 31m | Avg: 30m 22s | Max: 44m 03s
      🟩 12.5               Pass: 100%/4   | Total:  2h 47m | Avg: 41m 52s | Max: 53m 11s
      🟩 12.6               Pass: 100%/89  | Total:  1d 11h | Avg: 23m 54s | Max:  1h 03m | Hits:  90%/7408  
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/4   | Total:  1h 32m | Avg: 23m 06s | Max: 33m 07s
      🟩 nvcc11.1           Pass: 100%/15  | Total:  5h 21m | Avg: 21m 25s | Max: 33m 20s | Hits:  99%/1852  
      🟩 nvcc11.8           Pass: 100%/3   | Total:  1h 31m | Avg: 30m 22s | Max: 44m 03s
      🟩 nvcc12.5           Pass: 100%/4   | Total:  2h 47m | Avg: 41m 52s | Max: 53m 11s
      🟩 nvcc12.6           Pass: 100%/85  | Total:  1d 09h | Avg: 23m 56s | Max:  1h 03m | Hits:  90%/7408  
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/4   | Total:  1h 32m | Avg: 23m 06s | Max: 33m 07s
      🟩 nvcc               Pass: 100%/107 | Total:  1d 19h | Avg: 24m 26s | Max:  1h 03m | Hits:  92%/9260  
    🟩 cxx
      🟩 Clang9             Pass: 100%/6   | Total:  2h 07m | Avg: 21m 18s | Max: 34m 39s
      🟩 Clang10            Pass: 100%/3   | Total:  1h 10m | Avg: 23m 21s | Max: 33m 39s
      🟩 Clang11            Pass: 100%/4   | Total:  1h 44m | Avg: 26m 01s | Max: 35m 29s
      🟩 Clang12            Pass: 100%/4   | Total:  1h 36m | Avg: 24m 12s | Max: 31m 22s
      🟩 Clang13            Pass: 100%/4   | Total:  1h 34m | Avg: 23m 41s | Max: 30m 45s
      🟩 Clang14            Pass: 100%/4   | Total:  1h 45m | Avg: 26m 28s | Max: 41m 03s
      🟩 Clang15            Pass: 100%/4   | Total:  1h 39m | Avg: 24m 58s | Max: 32m 02s
      🟩 Clang16            Pass: 100%/4   | Total:  1h 39m | Avg: 24m 45s | Max: 33m 10s
      🟩 Clang17            Pass: 100%/4   | Total:  1h 44m | Avg: 26m 12s | Max: 35m 35s
      🟩 Clang18            Pass: 100%/11  | Total:  3h 57m | Avg: 21m 33s | Max: 33m 07s
      🟩 GCC6               Pass: 100%/2   | Total: 31m 54s | Avg: 15m 57s | Max: 27m 50s
      🟩 GCC7               Pass: 100%/6   | Total:  2h 08m | Avg: 21m 26s | Max: 32m 22s
      🟩 GCC8               Pass: 100%/6   | Total:  2h 11m | Avg: 21m 53s | Max: 33m 28s
      🟩 GCC9               Pass: 100%/6   | Total:  2h 44m | Avg: 27m 25s | Max: 37m 56s
      🟩 GCC10              Pass: 100%/4   | Total:  1h 48m | Avg: 27m 08s | Max: 37m 50s
      🟩 GCC11              Pass: 100%/7   | Total:  3h 14m | Avg: 27m 46s | Max: 44m 03s
      🟩 GCC12              Pass: 100%/4   | Total:  1h 53m | Avg: 28m 20s | Max: 37m 55s
      🟩 GCC13              Pass: 100%/16  | Total:  5h 02m | Avg: 18m 54s | Max: 41m 18s
      🟩 Intel2023.2.0      Pass: 100%/3   | Total:  1h 29m | Avg: 29m 54s | Max: 45m 27s
      🟩 MSVC14.16          Pass: 100%/1   | Total: 17m 17s | Avg: 17m 17s | Max: 17m 17s | Hits:  99%/1852  
      🟩 MSVC14.29          Pass: 100%/2   | Total: 31m 38s | Avg: 15m 49s | Max: 16m 02s | Hits:  99%/3704  
      🟩 MSVC14.39          Pass: 100%/2   | Total:  1h 25m | Avg: 42m 54s | Max:  1h 03m | Hits:  81%/3704  
      🟩 NVHPC24.7          Pass: 100%/4   | Total:  2h 47m | Avg: 41m 52s | Max: 53m 11s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/48  | Total: 19h 00m | Avg: 23m 45s | Max: 41m 03s
      🟩 GCC                Pass: 100%/51  | Total: 19h 35m | Avg: 23m 02s | Max: 44m 03s
      🟩 Intel              Pass: 100%/3   | Total:  1h 29m | Avg: 29m 54s | Max: 45m 27s
      🟩 MSVC               Pass: 100%/5   | Total:  2h 14m | Avg: 26m 56s | Max:  1h 03m | Hits:  92%/9260  
      🟩 NVHPC              Pass: 100%/4   | Total:  2h 47m | Avg: 41m 52s | Max: 53m 11s
    🟩 gpu
      🟩 v100               Pass: 100%/111 | Total:  1d 21h | Avg: 24m 23s | Max:  1h 03m | Hits:  92%/9260  
    🟩 jobs
      🟩 Build              Pass: 100%/103 | Total:  1d 19h | Avg: 25m 19s | Max:  1h 03m | Hits:  90%/7408  
      🟩 TestCPU            Pass: 100%/4   | Total: 45m 06s | Avg: 11m 16s | Max: 22m 14s | Hits:  99%/1852  
      🟩 TestGPU            Pass: 100%/4   | Total: 52m 57s | Avg: 13m 14s | Max: 14m 20s
    🟩 sm
      🟩 60;70;80;90        Pass: 100%/3   | Total:  1h 31m | Avg: 30m 22s | Max: 44m 03s
      🟩 90a                Pass: 100%/4   | Total:  1h 05m | Avg: 16m 29s | Max: 22m 10s
    🟩 std
      🟩 11                 Pass: 100%/30  | Total:  3h 05m | Avg:  6m 10s | Max: 26m 33s
      🟩 14                 Pass: 100%/29  | Total: 14h 33m | Avg: 30m 08s | Max: 49m 03s | Hits:  99%/3704  
      🟩 17                 Pass: 100%/27  | Total: 14h 59m | Avg: 33m 19s | Max: 53m 11s | Hits:  99%/1852  
      🟩 20                 Pass: 100%/23  | Total: 11h 48m | Avg: 30m 48s | Max:  1h 03m | Hits:  81%/3704  
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 11m 02s | Avg: 5m 31s | Max: 8m 48s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 ctk
      🟩 12.6               Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 gpu
      🟩 v100               Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 14s | Avg:  2m 14s | Max:  2m 14s
      🟩 Test               Pass: 100%/1   | Total:  8m 48s | Avg:  8m 48s | Max:  8m 48s
    
  • 🟩 python: Pass: 100%/1 | Total: 16m 09s | Avg: 16m 09s | Max: 16m 09s

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

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

# Runner
185 linux-amd64-cpu16
16 linux-arm64-cpu16
14 linux-amd64-gpu-v100-latest-1
9 windows-amd64-cpu16

@bernhardmgruber bernhardmgruber enabled auto-merge (squash) December 2, 2024 16:41
Copy link
Contributor

github-actions bot commented Dec 2, 2024

🟩 CI finished in 2h 12m: Pass: 100%/224 | Total: 4d 18h | Avg: 30m 46s | Max: 1h 15m | Hits: 91%/12288
  • 🟩 thrust: Pass: 100%/111 | Total: 1d 21h | Avg: 24m 23s | Max: 1h 03m | Hits: 92%/9260

    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 40m 05s | Avg: 20m 02s | Max: 28m 41s
    🟩 cpu
      🟩 amd64              Pass: 100%/103 | Total:  1d 17h | Avg: 24m 21s | Max:  1h 03m | Hits:  92%/9260  
      🟩 arm64              Pass: 100%/8   | Total:  3h 17m | Avg: 24m 44s | Max: 38m 26s
    🟩 ctk
      🟩 11.1               Pass: 100%/15  | Total:  5h 21m | Avg: 21m 25s | Max: 33m 20s | Hits:  99%/1852  
      🟩 11.8               Pass: 100%/3   | Total:  1h 31m | Avg: 30m 22s | Max: 44m 03s
      🟩 12.5               Pass: 100%/4   | Total:  2h 47m | Avg: 41m 52s | Max: 53m 11s
      🟩 12.6               Pass: 100%/89  | Total:  1d 11h | Avg: 23m 54s | Max:  1h 03m | Hits:  90%/7408  
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/4   | Total:  1h 32m | Avg: 23m 06s | Max: 33m 07s
      🟩 nvcc11.1           Pass: 100%/15  | Total:  5h 21m | Avg: 21m 25s | Max: 33m 20s | Hits:  99%/1852  
      🟩 nvcc11.8           Pass: 100%/3   | Total:  1h 31m | Avg: 30m 22s | Max: 44m 03s
      🟩 nvcc12.5           Pass: 100%/4   | Total:  2h 47m | Avg: 41m 52s | Max: 53m 11s
      🟩 nvcc12.6           Pass: 100%/85  | Total:  1d 09h | Avg: 23m 56s | Max:  1h 03m | Hits:  90%/7408  
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/4   | Total:  1h 32m | Avg: 23m 06s | Max: 33m 07s
      🟩 nvcc               Pass: 100%/107 | Total:  1d 19h | Avg: 24m 26s | Max:  1h 03m | Hits:  92%/9260  
    🟩 cxx
      🟩 Clang9             Pass: 100%/6   | Total:  2h 07m | Avg: 21m 18s | Max: 34m 39s
      🟩 Clang10            Pass: 100%/3   | Total:  1h 10m | Avg: 23m 21s | Max: 33m 39s
      🟩 Clang11            Pass: 100%/4   | Total:  1h 44m | Avg: 26m 01s | Max: 35m 29s
      🟩 Clang12            Pass: 100%/4   | Total:  1h 36m | Avg: 24m 12s | Max: 31m 22s
      🟩 Clang13            Pass: 100%/4   | Total:  1h 34m | Avg: 23m 41s | Max: 30m 45s
      🟩 Clang14            Pass: 100%/4   | Total:  1h 45m | Avg: 26m 28s | Max: 41m 03s
      🟩 Clang15            Pass: 100%/4   | Total:  1h 39m | Avg: 24m 58s | Max: 32m 02s
      🟩 Clang16            Pass: 100%/4   | Total:  1h 39m | Avg: 24m 45s | Max: 33m 10s
      🟩 Clang17            Pass: 100%/4   | Total:  1h 44m | Avg: 26m 12s | Max: 35m 35s
      🟩 Clang18            Pass: 100%/11  | Total:  3h 57m | Avg: 21m 33s | Max: 33m 07s
      🟩 GCC6               Pass: 100%/2   | Total: 31m 54s | Avg: 15m 57s | Max: 27m 50s
      🟩 GCC7               Pass: 100%/6   | Total:  2h 08m | Avg: 21m 26s | Max: 32m 22s
      🟩 GCC8               Pass: 100%/6   | Total:  2h 11m | Avg: 21m 53s | Max: 33m 28s
      🟩 GCC9               Pass: 100%/6   | Total:  2h 44m | Avg: 27m 25s | Max: 37m 56s
      🟩 GCC10              Pass: 100%/4   | Total:  1h 48m | Avg: 27m 08s | Max: 37m 50s
      🟩 GCC11              Pass: 100%/7   | Total:  3h 14m | Avg: 27m 46s | Max: 44m 03s
      🟩 GCC12              Pass: 100%/4   | Total:  1h 53m | Avg: 28m 20s | Max: 37m 55s
      🟩 GCC13              Pass: 100%/16  | Total:  5h 02m | Avg: 18m 54s | Max: 41m 18s
      🟩 Intel2023.2.0      Pass: 100%/3   | Total:  1h 29m | Avg: 29m 54s | Max: 45m 27s
      🟩 MSVC14.16          Pass: 100%/1   | Total: 17m 17s | Avg: 17m 17s | Max: 17m 17s | Hits:  99%/1852  
      🟩 MSVC14.29          Pass: 100%/2   | Total: 31m 38s | Avg: 15m 49s | Max: 16m 02s | Hits:  99%/3704  
      🟩 MSVC14.39          Pass: 100%/2   | Total:  1h 25m | Avg: 42m 54s | Max:  1h 03m | Hits:  81%/3704  
      🟩 NVHPC24.7          Pass: 100%/4   | Total:  2h 47m | Avg: 41m 52s | Max: 53m 11s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/48  | Total: 19h 00m | Avg: 23m 45s | Max: 41m 03s
      🟩 GCC                Pass: 100%/51  | Total: 19h 35m | Avg: 23m 02s | Max: 44m 03s
      🟩 Intel              Pass: 100%/3   | Total:  1h 29m | Avg: 29m 54s | Max: 45m 27s
      🟩 MSVC               Pass: 100%/5   | Total:  2h 14m | Avg: 26m 56s | Max:  1h 03m | Hits:  92%/9260  
      🟩 NVHPC              Pass: 100%/4   | Total:  2h 47m | Avg: 41m 52s | Max: 53m 11s
    🟩 gpu
      🟩 v100               Pass: 100%/111 | Total:  1d 21h | Avg: 24m 23s | Max:  1h 03m | Hits:  92%/9260  
    🟩 jobs
      🟩 Build              Pass: 100%/103 | Total:  1d 19h | Avg: 25m 19s | Max:  1h 03m | Hits:  90%/7408  
      🟩 TestCPU            Pass: 100%/4   | Total: 45m 06s | Avg: 11m 16s | Max: 22m 14s | Hits:  99%/1852  
      🟩 TestGPU            Pass: 100%/4   | Total: 52m 57s | Avg: 13m 14s | Max: 14m 20s
    🟩 sm
      🟩 60;70;80;90        Pass: 100%/3   | Total:  1h 31m | Avg: 30m 22s | Max: 44m 03s
      🟩 90a                Pass: 100%/4   | Total:  1h 05m | Avg: 16m 29s | Max: 22m 10s
    🟩 std
      🟩 11                 Pass: 100%/30  | Total:  3h 05m | Avg:  6m 10s | Max: 26m 33s
      🟩 14                 Pass: 100%/29  | Total: 14h 33m | Avg: 30m 08s | Max: 49m 03s | Hits:  99%/3704  
      🟩 17                 Pass: 100%/27  | Total: 14h 59m | Avg: 33m 19s | Max: 53m 11s | Hits:  99%/1852  
      🟩 20                 Pass: 100%/23  | Total: 11h 48m | Avg: 30m 48s | Max:  1h 03m | Hits:  81%/3704  
    
  • 🟩 cub: Pass: 100%/110 | Total: 2d 21h | Avg: 37m 49s | Max: 1h 15m | Hits: 89%/3028

    🟩 cpu
      🟩 amd64              Pass: 100%/102 | Total:  2d 15h | Avg: 37m 16s | Max:  1h 15m | Hits:  89%/3028  
      🟩 arm64              Pass: 100%/8   | Total:  5h 59m | Avg: 44m 53s | Max:  1h 02m
    🟩 ctk
      🟩 11.1               Pass: 100%/15  | Total:  7h 38m | Avg: 30m 32s | Max: 49m 19s | Hits:  98%/757   
      🟩 11.8               Pass: 100%/3   | Total:  2h 40m | Avg: 53m 33s | Max:  1h 15m
      🟩 12.5               Pass: 100%/4   | Total:  3h 20m | Avg: 50m 01s | Max:  1h 05m
      🟩 12.6               Pass: 100%/88  | Total:  2d 07h | Avg: 37m 58s | Max:  1h 11m | Hits:  87%/2271  
    🟩 cudacxx
      🟩 ClangCUDA18        Pass: 100%/4   | Total:  2h 57m | Avg: 44m 15s | Max: 58m 24s
      🟩 nvcc11.1           Pass: 100%/15  | Total:  7h 38m | Avg: 30m 32s | Max: 49m 19s | Hits:  98%/757   
      🟩 nvcc11.8           Pass: 100%/3   | Total:  2h 40m | Avg: 53m 33s | Max:  1h 15m
      🟩 nvcc12.5           Pass: 100%/4   | Total:  3h 20m | Avg: 50m 01s | Max:  1h 05m
      🟩 nvcc12.6           Pass: 100%/84  | Total:  2d 04h | Avg: 37m 40s | Max:  1h 11m | Hits:  87%/2271  
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/4   | Total:  2h 57m | Avg: 44m 15s | Max: 58m 24s
      🟩 nvcc               Pass: 100%/106 | Total:  2d 18h | Avg: 37m 34s | Max:  1h 15m | Hits:  89%/3028  
    🟩 cxx
      🟩 Clang9             Pass: 100%/6   | Total:  3h 35m | Avg: 35m 50s | Max: 50m 58s
      🟩 Clang10            Pass: 100%/3   | Total:  1h 51m | Avg: 37m 11s | Max: 51m 28s
      🟩 Clang11            Pass: 100%/4   | Total:  2h 41m | Avg: 40m 22s | Max: 51m 33s
      🟩 Clang12            Pass: 100%/4   | Total:  2h 40m | Avg: 40m 12s | Max: 51m 24s
      🟩 Clang13            Pass: 100%/4   | Total:  2h 48m | Avg: 42m 04s | Max: 53m 40s
      🟩 Clang14            Pass: 100%/4   | Total:  2h 41m | Avg: 40m 16s | Max: 52m 15s
      🟩 Clang15            Pass: 100%/4   | Total:  2h 51m | Avg: 42m 50s | Max: 56m 19s
      🟩 Clang16            Pass: 100%/4   | Total:  2h 50m | Avg: 42m 43s | Max: 57m 49s
      🟩 Clang17            Pass: 100%/4   | Total:  2h 47m | Avg: 41m 55s | Max: 55m 45s
      🟩 Clang18            Pass: 100%/11  | Total:  7h 24m | Avg: 40m 21s | Max:  1h 01m
      🟩 GCC6               Pass: 100%/2   | Total: 48m 10s | Avg: 24m 05s | Max: 43m 53s
      🟩 GCC7               Pass: 100%/6   | Total:  3h 29m | Avg: 34m 54s | Max: 50m 35s
      🟩 GCC8               Pass: 100%/6   | Total:  3h 40m | Avg: 36m 40s | Max: 57m 37s
      🟩 GCC9               Pass: 100%/6   | Total:  3h 27m | Avg: 34m 37s | Max: 54m 29s
      🟩 GCC10              Pass: 100%/4   | Total:  2h 44m | Avg: 41m 06s | Max: 53m 13s
      🟩 GCC11              Pass: 100%/7   | Total:  5h 23m | Avg: 46m 09s | Max:  1h 15m
      🟩 GCC12              Pass: 100%/4   | Total:  2h 45m | Avg: 41m 16s | Max: 52m 36s
      🟩 GCC13              Pass: 100%/16  | Total:  7h 37m | Avg: 28m 37s | Max:  1h 02m
      🟩 Intel2023.2.0      Pass: 100%/3   | Total:  2h 02m | Avg: 40m 40s | Max:  1h 01m
      🟩 MSVC14.16          Pass: 100%/1   | Total: 14m 18s | Avg: 14m 18s | Max: 14m 18s | Hits:  98%/757   
      🟩 MSVC14.29          Pass: 100%/2   | Total: 24m 18s | Avg: 12m 09s | Max: 12m 15s | Hits:  98%/1514  
      🟩 MSVC14.39          Pass: 100%/1   | Total:  1h 11m | Avg:  1h 11m | Max:  1h 11m | Hits:  63%/757   
      🟩 NVHPC24.7          Pass: 100%/4   | Total:  3h 20m | Avg: 50m 01s | Max:  1h 05m
    🟩 cxx_family
      🟩 Clang              Pass: 100%/48  | Total:  1d 08h | Avg: 40m 15s | Max:  1h 01m
      🟩 GCC                Pass: 100%/51  | Total:  1d 05h | Avg: 35m 12s | Max:  1h 15m
      🟩 Intel              Pass: 100%/3   | Total:  2h 02m | Avg: 40m 40s | Max:  1h 01m
      🟩 MSVC               Pass: 100%/4   | Total:  1h 50m | Avg: 27m 32s | Max:  1h 11m | Hits:  89%/3028  
      🟩 NVHPC              Pass: 100%/4   | Total:  3h 20m | Avg: 50m 01s | Max:  1h 05m
    🟩 gpu
      🟩 v100               Pass: 100%/110 | Total:  2d 21h | Avg: 37m 49s | Max:  1h 15m | Hits:  89%/3028  
    🟩 jobs
      🟩 Build              Pass: 100%/102 | Total:  2d 18h | Avg: 39m 02s | Max:  1h 15m | Hits:  89%/3028  
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 24m 26s | Avg: 24m 26s | Max: 24m 26s
      🟩 GraphCapture       Pass: 100%/1   | Total: 22m 08s | Avg: 22m 08s | Max: 22m 08s
      🟩 HostLaunch         Pass: 100%/3   | Total: 58m 36s | Avg: 19m 32s | Max: 23m 54s
      🟩 TestGPU            Pass: 100%/3   | Total:  1h 12m | Avg: 24m 11s | Max: 26m 26s
    🟩 sm
      🟩 60;70;80;90        Pass: 100%/3   | Total:  2h 40m | Avg: 53m 33s | Max:  1h 15m
      🟩 90a                Pass: 100%/4   | Total:  1h 14m | Avg: 18m 42s | Max: 24m 53s
    🟩 std
      🟩 11                 Pass: 100%/30  | Total:  4h 15m | Avg:  8m 31s | Max: 24m 10s
      🟩 14                 Pass: 100%/29  | Total: 23h 58m | Avg: 49m 36s | Max:  1h 14m | Hits:  98%/1514  
      🟩 17                 Pass: 100%/27  | Total: 22h 56m | Avg: 50m 59s | Max:  1h 15m | Hits:  98%/757   
      🟩 20                 Pass: 100%/24  | Total: 18h 09m | Avg: 45m 22s | Max:  1h 11m | Hits:  63%/757   
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 11m 02s | Avg: 5m 31s | Max: 8m 48s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 ctk
      🟩 12.6               Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 gpu
      🟩 v100               Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  8m 48s
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 14s | Avg:  2m 14s | Max:  2m 14s
      🟩 Test               Pass: 100%/1   | Total:  8m 48s | Avg:  8m 48s | Max:  8m 48s
    
  • 🟩 python: Pass: 100%/1 | Total: 16m 09s | Avg: 16m 09s | Max: 16m 09s

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

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

# Runner
185 linux-amd64-cpu16
16 linux-arm64-cpu16
14 linux-amd64-gpu-v100-latest-1
9 windows-amd64-cpu16

@bernhardmgruber bernhardmgruber merged commit 08c7aa4 into NVIDIA:main Dec 2, 2024
240 checks passed
@bernhardmgruber bernhardmgruber deleted the neg_check branch December 2, 2024 17:08
@fbusato
Copy link
Contributor

fbusato commented Dec 2, 2024

@bernhardmgruber @miscco what about if we introduce a function for that purpose? Instead of repeat the verbose pattern

is_non_negative(value);  // or
is_zero_or_positive(value);

@miscco
Copy link
Collaborator

miscco commented Dec 2, 2024

@bernhardmgruber @miscco what about if we introduce a function for that purpose? Instead of repeat the verbose pattern
That will add an additional function instantiation and also another function that needs to be inlined and potentially stepped into in debug builds.

I was however considering a macro because those signed unsigned checks come up a ton

@bernhardmgruber
Copy link
Contributor Author

Good suggestion! Feel free to go ahead and add one!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants