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

backport std integer comparison functions to C++11 #2805

Open
wants to merge 28 commits into
base: main
Choose a base branch
from

Conversation

davebayer
Copy link
Contributor

@davebayer davebayer commented Nov 13, 2024

Description

This PR implements backport of C++20 integer comparison functions P0586R2 to C++11.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

Copy link

copy-pr-bot bot commented Nov 13, 2024

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.

libcudacxx/include/cuda/std/__utility/cmp.h Outdated Show resolved Hide resolved
libcudacxx/include/cuda/std/__utility/cmp.h Outdated Show resolved Hide resolved
libcudacxx/include/cuda/std/__utility/cmp.h Outdated Show resolved Hide resolved
libcudacxx/include/cuda/std/__utility/cmp.h Outdated Show resolved Hide resolved
Copy link
Collaborator

@miscco miscco left a comment

Choose a reason for hiding this comment

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

I am wondering whether it is actually worth backporting this to C++11

or moreso if we backport it to C++11 whether we should make it constexpr

Using multiple function definitions instead of if constexpr is much more expensive due to the larger overload set.

We could get away with marking it as _CCCL_CONSTEXPR_14 so that we do not need the single line implementation for C++11 and use _CCCL_IF_CONSTEXPR to let the compiler deal with all the false branches

@davebayer
Copy link
Contributor Author

I am wondering whether it is actually worth backporting this to C++11

or moreso if we backport it to C++11 whether we should make it constexpr

Using multiple function definitions instead of if constexpr is much more expensive due to the larger overload set.

We could get away with marking it as _CCCL_CONSTEXPR_14 so that we do not need the single line implementation for C++11 and use _CCCL_IF_CONSTEXPR to let the compiler deal with all the false branches

It is also an option. I am just worried that it will trigger some warning about comparing signed and unsigned integers, because all of the branches will get instantiated if if constexpr is unavailable.

@davebayer
Copy link
Contributor Author

Would it help if I remove the __cmp_eq_impl and cmp_less_impl structures and overload directly the cmp_eq and cmp_less functions with SFINAE instead?

@miscco
Copy link
Collaborator

miscco commented Nov 14, 2024

Would it help if I remove the __cmp_eq_impl and cmp_less_impl structures and overload directly the cmp_eq and cmp_less functions with SFINAE instead?

Not really, the issue is that the overload set becomes 4 times larger than before which is the expensive part

@davebayer
Copy link
Contributor Author

Oh I see.. But actually, does it even matter compared to e. g. instantiations of std::vector? There is a limited number of instantiations of this function as there are maximum 12 integer types.

@miscco
Copy link
Collaborator

miscco commented Nov 14, 2024

Oh I see.. But actually, does it even matter compared to e. g. instantiations of std::vector? There is a limited number of instantiations of this function as there are maximum 12 integer types.

Generally speaking type instantiations and overload resolution are the two big hitters with respect to compile time.

Being a foundational library means we need to ensure that we reduce the cost as much as possible because it does add up.

This might be more in the realm of microoptimizations, but if we change it we can be mindful of the consequences. Especially if it comes to backporting things to an earlier standard. We want to avoid making the original thing worse

@davebayer
Copy link
Contributor Author

davebayer commented Nov 14, 2024

Generally speaking type instantiations and overload resolution are the two big hitters with respect to compile time.

Being a foundational library means we need to ensure that we reduce the cost as much as possible because it does add up.

This might be more in the realm of microoptimizations, but if we change it we can be mindful of the consequences. Especially if it comes to backporting things to an earlier standard. We want to avoid making the original thing worse

Sure, so what about leaving this implementation for C++11 and C++14 and for C++17 and newer having separate implementation used if __cpp_if_constexpr is available.

struct __cmp_eq_pre_if_constexpr_impl
{
  template <class _Tp, class _Up, enable_if_t<is_signed<_Tp>::value && is_signed<_Up>::value, int> = 0>
  _LIBCUDACXX_HIDE_FROM_ABI static constexpr bool __do_cmp(_Tp __t, _Up __u) noexcept
  {
    return __t == __u;
  }

  template <
    class _Tp,
    class _Up,
    enable_if_t<(is_signed<_Tp>::value && !is_signed<_Up>::value) || (!is_signed<_Tp>::value && is_signed<_Up>::value),
                int> = 0>
  _LIBCUDACXX_HIDE_FROM_ABI static constexpr bool __do_cmp(_Tp __t, _Up __u) noexcept
  {
    return __t < 0 ? false : make_unsigned_t<_Tp>(__t) == __u;
  }

  template <class _Tp, class _Up, enable_if_t<!is_signed<_Tp>::value && !is_signed<_Up>::value, int> = 0>
  _LIBCUDACXX_HIDE_FROM_ABI static constexpr bool __do_cmp(_Tp __t, _Up __u) noexcept
  {
    return __u < 0 ? false : __t == make_unsigned_t<_Up>(__u);
  }
};

template <class _Tp,
          class _Up,
          enable_if_t<__is_safe_integral_cmp<_Tp>::value && __is_safe_integral_cmp<_Up>::value, int> = 0>
_LIBCUDACXX_HIDE_FROM_ABI constexpr bool cmp_equal(_Tp __t, _Up __u) noexcept
{
#if _CCCL_STD_VER >= 2017 && __cpp_if_constexpr
  if constexpr (is_signed_v<_Tp> == is_signed_v<_Up>)
  {
    return __t == __u;
  }
  else if constexpr (is_signed_v<_Tp>)
  {
    return __t < 0 ? false : make_unsigned_t<_Tp>(__t) == __u;
  }
  else
  {
    return __u < 0 ? false : __t == make_unsigned_t<_Up>(__u);
  }
#else
  return __cmp_eq_pre_if_constexpr_impl::__do_cmp(__t, __u);
#endif // _CCCL_STD_VER >= 2017 && __cpp_if_constexpr
}

But we will duplicate some code. What do you think about that?

@bernhardmgruber
Copy link
Contributor

I am wondering whether it is actually worth backporting this to C++11

Without having read through the entire discussion in detail, I think this is the most important question for me. Thrust and CUB are dropping C++11 in favor of C++17 soon. libcu++ requires C++14 IIUC, but contains lots of C++11 backports for Thrust and CUB. I would love to see all C++11 code paths and workarounds gone after the upgrade in Thrust and CUB, which renders the effort of this PR meaningless. A backport to C++17 (or maybe C++14) would make more sense.

@davebayer davebayer changed the title backport std integer comparison functions to C++11 backport std integer comparison functions to C++14 Nov 14, 2024
@davebayer davebayer marked this pull request as draft November 15, 2024 07:25
@miscco
Copy link
Collaborator

miscco commented Nov 15, 2024

/ok to test

Copy link
Collaborator

@miscco miscco left a comment

Choose a reason for hiding this comment

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

We need to disable for C++11 now

@miscco
Copy link
Collaborator

miscco commented Nov 15, 2024

/ok to test

@miscco
Copy link
Collaborator

miscco commented Nov 15, 2024

/ok to test

@davebayer
Copy link
Contributor Author

Perfect, thank you for finalizing this PR. Right now I am on vacation, I would get back to it on Monday 😅 thank you!

@davebayer
Copy link
Contributor Author

One more thing - would it make sense to replace SFINAE with upcoming _CCCL_TEMPLATE and _CCCL_REQUIRES?

@miscco
Copy link
Collaborator

miscco commented Nov 15, 2024

One more thing - would it make sense to replace SFINAE with upcoming _CCCL_TEMPLATE and _CCCL_REQUIRES?
Yes it would, but I wanted to avoid merge conflicts

@miscco
Copy link
Collaborator

miscco commented Nov 15, 2024

@davebayer I was able to find a version that works in all standard modes and is maximally efficient in C++17 onwards.

as a cherry we can also enable C++11 support. The issue is that it needs #2832

@davebayer
Copy link
Contributor Author

davebayer commented Nov 15, 2024

@davebayer I was able to find a version that works in all standard modes and is maximally efficient in C++17 onwards.

as a cherry we can also enable C++11 support. The issue is that it needs #2832

Great job!

@miscco
Copy link
Collaborator

miscco commented Nov 15, 2024

/ok to test

@miscco
Copy link
Collaborator

miscco commented Nov 17, 2024

/ok to test

Copy link
Contributor

🟨 CI finished in 4h 37m: Pass: 97%/400 | Total: 9d 20h | Avg: 35m 25s | Max: 3h 25m | Hits: 33%/21432
  • 🟨 libcudacxx: Pass: 92%/118 | Total: 1d 14h | Avg: 19m 43s | Max: 1h 12m | Hits: 50%/5042

    🔍 cpu: amd64 🔍
      🔍 amd64              Pass:  91%/110 | Total:  1d 12h | Avg: 19m 41s | Max:  1h 12m | Hits:  50%/5042  
      🟩 arm64              Pass: 100%/8   | Total:  2h 40m | Avg: 20m 06s | Max: 25m 48s
    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/12  | Total:  2h 23m | Avg: 11m 59s | Max: 20m 02s
      🔍 nvcc               Pass:  91%/106 | Total:  1d 12h | Avg: 20m 35s | Max:  1h 12m | Hits:  50%/5042  
    🟨 ctk
      🟨 11.1               Pass:  66%/15  | Total:  4h 41m | Avg: 18m 45s | Max: 36m 04s
      🟩 11.8               Pass: 100%/3   | Total:  1h 15m | Avg: 25m 04s | Max: 27m 17s
      🟩 12.5               Pass: 100%/4   | Total:  2h 22m | Avg: 35m 30s | Max: 44m 10s
      🟨 12.6               Pass:  95%/96  | Total:  1d 06h | Avg: 19m 02s | Max:  1h 12m | Hits:  50%/5042  
    🟨 cudacxx
      🟩 ClangCUDA18        Pass: 100%/12  | Total:  2h 23m | Avg: 11m 59s | Max: 20m 02s
      🟨 nvcc11.1           Pass:  66%/15  | Total:  4h 41m | Avg: 18m 45s | Max: 36m 04s
      🟩 nvcc11.8           Pass: 100%/3   | Total:  1h 15m | Avg: 25m 04s | Max: 27m 17s
      🟩 nvcc12.5           Pass: 100%/4   | Total:  2h 22m | Avg: 35m 30s | Max: 44m 10s
      🟨 nvcc12.6           Pass:  95%/84  | Total:  1d 04h | Avg: 20m 03s | Max:  1h 12m | Hits:  50%/5042  
    🟨 cxx
      🟨 Clang9             Pass:  83%/6   | Total:  2h 02m | Avg: 20m 20s | Max: 29m 44s
      🟩 Clang10            Pass: 100%/3   | Total:  1h 10m | Avg: 23m 37s | Max: 31m 52s
      🟩 Clang11            Pass: 100%/4   | Total:  1h 12m | Avg: 18m 12s | Max: 25m 34s
      🟩 Clang12            Pass: 100%/4   | Total:  1h 13m | Avg: 18m 29s | Max: 27m 43s
      🟩 Clang13            Pass: 100%/4   | Total: 53m 45s | Avg: 13m 26s | Max: 14m 23s
      🟩 Clang14            Pass: 100%/4   | Total:  1h 16m | Avg: 19m 00s | Max: 25m 41s
      🟩 Clang15            Pass: 100%/4   | Total:  1h 26m | Avg: 21m 38s | Max: 29m 33s
      🟩 Clang16            Pass: 100%/4   | Total:  1h 11m | Avg: 17m 54s | Max: 26m 53s
      🟩 Clang17            Pass: 100%/4   | Total:  1h 22m | Avg: 20m 43s | Max: 36m 41s
      🟩 Clang18            Pass: 100%/18  | Total:  4h 18m | Avg: 14m 21s | Max: 25m 20s
      🟩 GCC6               Pass: 100%/2   | Total: 32m 51s | Avg: 16m 25s | Max: 22m 12s
      🟨 GCC7               Pass:  83%/6   | Total:  1h 38m | Avg: 16m 28s | Max: 22m 38s
      🟨 GCC8               Pass:  83%/6   | Total:  1h 43m | Avg: 17m 17s | Max: 21m 01s
      🟨 GCC9               Pass:  83%/6   | Total:  2h 02m | Avg: 20m 21s | Max: 26m 25s
      🟩 GCC10              Pass: 100%/4   | Total:  1h 21m | Avg: 20m 15s | Max: 31m 04s
      🟩 GCC11              Pass: 100%/7   | Total:  2h 52m | Avg: 24m 37s | Max: 28m 22s
      🟩 GCC12              Pass: 100%/4   | Total:  1h 11m | Avg: 17m 49s | Max: 28m 54s
      🟨 GCC13              Pass:  82%/17  | Total:  5h 30m | Avg: 19m 25s | Max:  1h 12m
      🟩 Intel2023.2.0      Pass: 100%/3   | Total: 54m 47s | Avg: 18m 15s | Max: 21m 59s
      🟥 MSVC14.16          Pass:   0%/1   | Total: 36m 04s | Avg: 36m 04s | Max: 36m 04s
      🟨 MSVC14.29          Pass:  50%/2   | Total:  1h 06m | Avg: 33m 22s | Max: 41m 47s | Hits:  73%/2448  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 46m 18s | Avg: 46m 18s | Max: 46m 18s | Hits:  28%/2594  
      🟩 NVHPC24.7          Pass: 100%/4   | Total:  2h 22m | Avg: 35m 30s | Max: 44m 10s
    🟨 cxx_family
      🟨 Clang              Pass:  98%/55  | Total: 16h 08m | Avg: 17m 36s | Max: 36m 41s
      🟨 GCC                Pass:  88%/52  | Total: 16h 52m | Avg: 19m 28s | Max:  1h 12m
      🟩 Intel              Pass: 100%/3   | Total: 54m 47s | Avg: 18m 15s | Max: 21m 59s
      🟨 MSVC               Pass:  50%/4   | Total:  2h 29m | Avg: 37m 16s | Max: 46m 18s | Hits:  50%/5042  
      🟩 NVHPC              Pass: 100%/4   | Total:  2h 22m | Avg: 35m 30s | Max: 44m 10s
    🟨 jobs
      🟨 Build              Pass:  94%/110 | Total:  1d 11h | Avg: 19m 28s | Max: 46m 18s | Hits:  50%/5042  
      🟨 NVRTC              Pass:  25%/4   | Total:  1h 01m | Avg: 15m 17s | Max: 16m 42s
      🟩 Test               Pass: 100%/3   | Total:  2h 02m | Avg: 40m 46s | Max:  1h 12m
      🟩 VerifyCodegen      Pass: 100%/1   | Total:  1m 52s | Avg:  1m 52s | Max:  1m 52s
    🟨 std
      🟩 11                 Pass: 100%/32  | Total:  9h 04m | Avg: 17m 01s | Max: 31m 24s
      🟨 14                 Pass:  90%/32  | Total:  9h 43m | Avg: 18m 14s | Max: 41m 47s
      🟨 17                 Pass:  83%/30  | Total: 10h 03m | Avg: 20m 06s | Max: 37m 12s | Hits:  73%/2448  
      🟨 20                 Pass:  95%/23  | Total:  9h 53m | Avg: 25m 48s | Max:  1h 12m | Hits:  28%/2594  
    🟨 gpu
      🟨 v100               Pass:  92%/118 | Total:  1d 14h | Avg: 19m 43s | Max:  1h 12m | Hits:  50%/5042  
    🟩 sm
      🟩 60;70;80;90        Pass: 100%/3   | Total:  1h 15m | Avg: 25m 04s | Max: 27m 17s
      🟩 90                 Pass: 100%/4   | Total: 40m 51s | Avg: 10m 12s | Max: 11m 49s
      🟩 90a                Pass: 100%/8   | Total:  1h 16m | Avg:  9m 31s | Max: 11m 44s
    
  • 🟨 cub: Pass: 99%/110 | Total: 4d 06h | Avg: 55m 45s | Max: 1h 42m | Hits: 3%/2964

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

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

    🟩 cpu
      🟩 amd64              Pass: 100%/50  | Total: 11h 40m | Avg: 14m 00s | Max: 18m 44s | Hits:  41%/246   
      🟩 arm64              Pass: 100%/4   | Total: 53m 11s | Avg: 13m 17s | Max: 14m 14s
    🟩 ctk
      🟩 12.0               Pass: 100%/19  | Total:  4h 17m | Avg: 13m 32s | Max: 18m 44s | Hits:  41%/123   
      🟩 12.5               Pass: 100%/2   | Total: 17m 08s | Avg:  8m 34s | Max:  9m 18s
      🟩 12.6               Pass: 100%/33  | Total:  7h 59m | Avg: 14m 31s | Max: 18m 15s | Hits:  41%/123   
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/19  | Total:  4h 17m | Avg: 13m 32s | Max: 18m 44s | Hits:  41%/123   
      🟩 nvcc12.5           Pass: 100%/2   | Total: 17m 08s | Avg:  8m 34s | Max:  9m 18s
      🟩 nvcc12.6           Pass: 100%/33  | Total:  7h 59m | Avg: 14m 31s | Max: 18m 15s | Hits:  41%/123   
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/54  | Total: 12h 33m | Avg: 13m 57s | Max: 18m 44s | Hits:  41%/246   
    🟩 cxx
      🟩 Clang9             Pass: 100%/2   | Total: 28m 18s | Avg: 14m 09s | Max: 15m 25s
      🟩 Clang10            Pass: 100%/2   | Total: 30m 01s | Avg: 15m 00s | Max: 15m 52s
      🟩 Clang11            Pass: 100%/4   | Total: 52m 32s | Avg: 13m 08s | Max: 13m 15s
      🟩 Clang12            Pass: 100%/4   | Total: 55m 50s | Avg: 13m 57s | Max: 15m 06s
      🟩 Clang13            Pass: 100%/4   | Total: 56m 05s | Avg: 14m 01s | Max: 15m 25s
      🟩 Clang14            Pass: 100%/4   | Total: 56m 50s | Avg: 14m 12s | Max: 15m 57s
      🟩 Clang15            Pass: 100%/2   | Total: 32m 31s | Avg: 16m 15s | Max: 18m 15s
      🟩 Clang16            Pass: 100%/4   | Total: 55m 52s | Avg: 13m 58s | Max: 16m 16s
      🟩 Clang17            Pass: 100%/2   | Total: 30m 18s | Avg: 15m 09s | Max: 15m 12s
      🟩 Clang18            Pass: 100%/2   | Total: 30m 09s | Avg: 15m 04s | Max: 16m 04s
      🟩 GCC9               Pass: 100%/2   | Total: 27m 52s | Avg: 13m 56s | Max: 13m 56s
      🟩 GCC10              Pass: 100%/4   | Total: 58m 33s | Avg: 14m 38s | Max: 15m 44s
      🟩 GCC11              Pass: 100%/4   | Total: 58m 51s | Avg: 14m 42s | Max: 16m 31s
      🟩 GCC12              Pass: 100%/7   | Total:  1h 48m | Avg: 15m 30s | Max: 18m 44s
      🟩 GCC13              Pass: 100%/3   | Total: 37m 55s | Avg: 12m 38s | Max: 14m 14s
      🟩 MSVC14.36          Pass: 100%/1   | Total:  8m 11s | Avg:  8m 11s | Max:  8m 11s | Hits:  41%/123   
      🟩 MSVC14.39          Pass: 100%/1   | Total:  8m 12s | Avg:  8m 12s | Max:  8m 12s | Hits:  41%/123   
      🟩 NVHPC24.7          Pass: 100%/2   | Total: 17m 08s | Avg:  8m 34s | Max:  9m 18s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/30  | Total:  7h 08m | Avg: 14m 16s | Max: 18m 15s
      🟩 GCC                Pass: 100%/20  | Total:  4h 51m | Avg: 14m 35s | Max: 18m 44s
      🟩 MSVC               Pass: 100%/2   | Total: 16m 23s | Avg:  8m 11s | Max:  8m 12s | Hits:  41%/246   
      🟩 NVHPC              Pass: 100%/2   | Total: 17m 08s | Avg:  8m 34s | Max:  9m 18s
    🟩 gpu
      🟩 v100               Pass: 100%/54  | Total: 12h 33m | Avg: 13m 57s | Max: 18m 44s | Hits:  41%/246   
    🟩 jobs
      🟩 Build              Pass: 100%/49  | Total: 11h 07m | Avg: 13m 37s | Max: 18m 15s | Hits:  41%/246   
      🟩 Test               Pass: 100%/5   | Total:  1h 26m | Avg: 17m 16s | Max: 18m 44s
    🟩 sm
      🟩 90                 Pass: 100%/1   | Total:  9m 41s | Avg:  9m 41s | Max:  9m 41s
      🟩 90a                Pass: 100%/1   | Total: 10m 00s | Avg: 10m 00s | Max: 10m 00s
    🟩 std
      🟩 17                 Pass: 100%/29  | Total:  6h 41m | Avg: 13m 51s | Max: 18m 44s
      🟩 20                 Pass: 100%/25  | Total:  5h 51m | Avg: 14m 04s | Max: 17m 29s | Hits:  41%/246   
    
  • 🟩 cccl: Pass: 100%/6 | Total: 29m 14s | Avg: 4m 52s | Max: 5m 21s

    🟩 cpu
      🟩 amd64              Pass: 100%/6   | Total: 29m 14s | Avg:  4m 52s | Max:  5m 21s
    🟩 ctk
      🟩 11.1               Pass: 100%/2   | Total:  8m 19s | Avg:  4m 09s | Max:  4m 27s
      🟩 12.0               Pass: 100%/2   | Total: 10m 26s | Avg:  5m 13s | Max:  5m 21s
      🟩 12.6               Pass: 100%/2   | Total: 10m 29s | Avg:  5m 14s | Max:  5m 21s
    🟩 cudacxx
      🟩 nvcc11.1           Pass: 100%/2   | Total:  8m 19s | Avg:  4m 09s | Max:  4m 27s
      🟩 nvcc12.0           Pass: 100%/2   | Total: 10m 26s | Avg:  5m 13s | Max:  5m 21s
      🟩 nvcc12.6           Pass: 100%/2   | Total: 10m 29s | Avg:  5m 14s | Max:  5m 21s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/6   | Total: 29m 14s | Avg:  4m 52s | Max:  5m 21s
    🟩 cxx
      🟩 Clang9             Pass: 100%/1   | Total:  4m 27s | Avg:  4m 27s | Max:  4m 27s
      🟩 Clang14            Pass: 100%/1   | Total:  5m 21s | Avg:  5m 21s | Max:  5m 21s
      🟩 Clang18            Pass: 100%/1   | Total:  5m 21s | Avg:  5m 21s | Max:  5m 21s
      🟩 GCC6               Pass: 100%/1   | Total:  3m 52s | Avg:  3m 52s | Max:  3m 52s
      🟩 GCC12              Pass: 100%/1   | Total:  5m 05s | Avg:  5m 05s | Max:  5m 05s
      🟩 GCC13              Pass: 100%/1   | Total:  5m 08s | Avg:  5m 08s | Max:  5m 08s
    🟩 cxx_family
      🟩 Clang              Pass: 100%/3   | Total: 15m 09s | Avg:  5m 03s | Max:  5m 21s
      🟩 GCC                Pass: 100%/3   | Total: 14m 05s | Avg:  4m 41s | Max:  5m 08s
    🟩 gpu
      🟩 v100               Pass: 100%/6   | Total: 29m 14s | Avg:  4m 52s | Max:  5m 21s
    🟩 jobs
      🟩 Infra              Pass: 100%/6   | Total: 29m 14s | Avg:  4m 52s | Max:  5m 21s
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 9m 04s | Avg: 4m 32s | Max: 6m 48s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total:  9m 04s | Avg:  4m 32s | Max:  6m 48s
    🟩 ctk
      🟩 12.6               Pass: 100%/2   | Total:  9m 04s | Avg:  4m 32s | Max:  6m 48s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/2   | Total:  9m 04s | Avg:  4m 32s | Max:  6m 48s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total:  9m 04s | Avg:  4m 32s | Max:  6m 48s
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total:  9m 04s | Avg:  4m 32s | Max:  6m 48s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total:  9m 04s | Avg:  4m 32s | Max:  6m 48s
    🟩 gpu
      🟩 v100               Pass: 100%/2   | Total:  9m 04s | Avg:  4m 32s | Max:  6m 48s
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 16s | Avg:  2m 16s | Max:  2m 16s
      🟩 Test               Pass: 100%/1   | Total:  6m 48s | Avg:  6m 48s | Max:  6m 48s
    
  • 🟩 python: Pass: 100%/1 | Total: 14m 50s | Avg: 14m 50s | Max: 14m 50s

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

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

# Runner
326 linux-amd64-cpu16
31 linux-amd64-gpu-v100-latest-1
28 linux-arm64-cpu16
15 windows-amd64-cpu16

We have emulation for concepts in LIBCUDACXX that was guarded behind C++14

But there is nothing that requires C++14 for just the template headers and we want to use them universally throughout the codebase

Consequently move them to CCCL proper and enable them unconditionally. To ensure that we do not add any hidden dependencies this also adds a barebones implementation of `enable_if_t` and a trailing `enable_if_t`
@miscco
Copy link
Collaborator

miscco commented Nov 18, 2024

/ok to test

@miscco miscco marked this pull request as ready for review November 18, 2024 07:26
@miscco miscco requested a review from a team as a code owner November 18, 2024 07:26
@miscco
Copy link
Collaborator

miscco commented Nov 18, 2024

/ok to test

Copy link
Contributor

🟨 CI finished in 2h 11m: Pass: 95%/400 | Total: 8d 11h | Avg: 30m 31s | Max: 1h 40m | Hits: 33%/21432
  • 🟨 libcudacxx: Pass: 94%/118 | Total: 1d 12h | Avg: 18m 31s | Max: 1h 13m | Hits: 52%/5042

    🔍 cpu: amd64 🔍
      🔍 amd64              Pass:  93%/110 | Total:  1d 10h | Avg: 18m 46s | Max:  1h 13m | Hits:  52%/5042  
      🟩 arm64              Pass: 100%/8   | Total:  2h 00m | Avg: 15m 05s | Max: 18m 13s
    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/12  | Total:  2h 29m | Avg: 12m 28s | Max: 20m 10s
      🔍 nvcc               Pass:  93%/106 | Total:  1d 09h | Avg: 19m 12s | Max:  1h 13m | Hits:  52%/5042  
    🟨 ctk
      🟨 11.1               Pass:  66%/15  | Total:  4h 40m | Avg: 18m 42s | Max: 29m 37s
      🟩 11.8               Pass: 100%/3   | Total:  1h 06m | Avg: 22m 15s | Max: 22m 37s
      🟩 12.5               Pass: 100%/4   | Total:  2h 37m | Avg: 39m 15s | Max: 48m 21s
      🟨 12.6               Pass:  97%/96  | Total:  1d 04h | Avg: 17m 30s | Max:  1h 13m | Hits:  52%/5042  
    🟨 cudacxx
      🟩 ClangCUDA18        Pass: 100%/12  | Total:  2h 29m | Avg: 12m 28s | Max: 20m 10s
      🟨 nvcc11.1           Pass:  66%/15  | Total:  4h 40m | Avg: 18m 42s | Max: 29m 37s
      🟩 nvcc11.8           Pass: 100%/3   | Total:  1h 06m | Avg: 22m 15s | Max: 22m 37s
      🟩 nvcc12.5           Pass: 100%/4   | Total:  2h 37m | Avg: 39m 15s | Max: 48m 21s
      🟨 nvcc12.6           Pass:  97%/84  | Total:  1d 01h | Avg: 18m 13s | Max:  1h 13m | Hits:  52%/5042  
    🟨 cxx
      🟨 Clang9             Pass:  83%/6   | Total:  1h 49m | Avg: 18m 18s | Max: 29m 37s
      🟩 Clang10            Pass: 100%/3   | Total: 57m 57s | Avg: 19m 19s | Max: 23m 01s
      🟩 Clang11            Pass: 100%/4   | Total:  1h 12m | Avg: 18m 01s | Max: 21m 10s
      🟩 Clang12            Pass: 100%/4   | Total:  1h 11m | Avg: 17m 57s | Max: 21m 12s
      🟩 Clang13            Pass: 100%/4   | Total:  1h 10m | Avg: 17m 40s | Max: 20m 03s
      🟩 Clang14            Pass: 100%/4   | Total:  1h 12m | Avg: 18m 02s | Max: 21m 10s
      🟩 Clang15            Pass: 100%/4   | Total:  1h 11m | Avg: 17m 50s | Max: 22m 43s
      🟩 Clang16            Pass: 100%/4   | Total:  1h 14m | Avg: 18m 34s | Max: 21m 20s
      🟩 Clang17            Pass: 100%/4   | Total:  1h 09m | Avg: 17m 18s | Max: 20m 45s
      🟩 Clang18            Pass: 100%/18  | Total:  4h 02m | Avg: 13m 29s | Max: 20m 10s
      🟩 GCC6               Pass: 100%/2   | Total: 34m 25s | Avg: 17m 12s | Max: 22m 14s
      🟨 GCC7               Pass:  83%/6   | Total:  1h 44m | Avg: 17m 21s | Max: 20m 31s
      🟨 GCC8               Pass:  83%/6   | Total:  1h 37m | Avg: 16m 10s | Max: 22m 24s
      🟨 GCC9               Pass:  83%/6   | Total:  1h 44m | Avg: 17m 25s | Max: 21m 34s
      🟩 GCC10              Pass: 100%/4   | Total:  1h 08m | Avg: 17m 05s | Max: 19m 35s
      🟩 GCC11              Pass: 100%/7   | Total:  2h 17m | Avg: 19m 38s | Max: 23m 55s
      🟩 GCC12              Pass: 100%/4   | Total:  1h 06m | Avg: 16m 39s | Max: 20m 05s
      🟨 GCC13              Pass:  94%/17  | Total:  5h 29m | Avg: 19m 23s | Max:  1h 13m
      🟩 Intel2023.2.0      Pass: 100%/3   | Total:  1h 00m | Avg: 20m 04s | Max: 22m 16s
      🟥 MSVC14.16          Pass:   0%/1   | Total: 26m 20s | Avg: 26m 20s | Max: 26m 20s
      🟨 MSVC14.29          Pass:  50%/2   | Total: 54m 15s | Avg: 27m 07s | Max: 28m 17s | Hits:  53%/2448  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 32m 45s | Avg: 32m 45s | Max: 32m 45s | Hits:  51%/2594  
      🟩 NVHPC24.7          Pass: 100%/4   | Total:  2h 37m | Avg: 39m 15s | Max: 48m 21s
    🟨 cxx_family
      🟨 Clang              Pass:  98%/55  | Total: 15h 12m | Avg: 16m 35s | Max: 29m 37s
      🟨 GCC                Pass:  92%/52  | Total: 15h 42m | Avg: 18m 07s | Max:  1h 13m
      🟩 Intel              Pass: 100%/3   | Total:  1h 00m | Avg: 20m 04s | Max: 22m 16s
      🟨 MSVC               Pass:  50%/4   | Total:  1h 53m | Avg: 28m 20s | Max: 32m 45s | Hits:  52%/5042  
      🟩 NVHPC              Pass: 100%/4   | Total:  2h 37m | Avg: 39m 15s | Max: 48m 21s
    🟨 jobs
      🟨 Build              Pass:  94%/110 | Total:  1d 08h | Avg: 17m 52s | Max: 48m 21s | Hits:  52%/5042  
      🟨 NVRTC              Pass:  75%/4   | Total:  1h 20m | Avg: 20m 12s | Max: 24m 08s
      🟩 Test               Pass: 100%/3   | Total:  2h 07m | Avg: 42m 36s | Max:  1h 13m
      🟩 VerifyCodegen      Pass: 100%/1   | Total:  9m 24s | Avg:  9m 24s | Max:  9m 24s
    🟨 std
      🟩 11                 Pass: 100%/32  | Total:  8h 47m | Avg: 16m 29s | Max: 37m 34s
      🟨 14                 Pass:  93%/32  | Total:  8h 54m | Avg: 16m 41s | Max: 34m 46s
      🟨 17                 Pass:  83%/30  | Total:  9h 51m | Avg: 19m 43s | Max: 45m 50s | Hits:  53%/2448  
      🟩 20                 Pass: 100%/23  | Total:  8h 42m | Avg: 22m 43s | Max:  1h 13m | Hits:  51%/2594  
    🟨 gpu
      🟨 v100               Pass:  94%/118 | Total:  1d 12h | Avg: 18m 31s | Max:  1h 13m | Hits:  52%/5042  
    🟩 sm
      🟩 60;70;80;90        Pass: 100%/3   | Total:  1h 06m | Avg: 22m 15s | Max: 22m 37s
      🟩 90                 Pass: 100%/4   | Total: 43m 40s | Avg: 10m 55s | Max: 13m 02s
      🟩 90a                Pass: 100%/8   | Total:  1h 15m | Avg:  9m 28s | Max: 12m 42s
    
  • 🟨 cub: Pass: 96%/110 | Total: 3d 09h | Avg: 44m 41s | Max: 1h 19m | Hits: 3%/2964

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

    🟨 ctk
      🟩 11.1               Pass: 100%/2   | Total:  7m 34s | Avg:  3m 47s | Max:  4m 08s
      🟨 12.0               Pass:  50%/2   | Total: 10m 19s | Avg:  5m 09s | Max:  5m 14s
      🟥 12.6               Pass:   0%/2   | Total:  9m 39s | Avg:  4m 49s | Max:  5m 13s
    🟨 cudacxx
      🟩 nvcc11.1           Pass: 100%/2   | Total:  7m 34s | Avg:  3m 47s | Max:  4m 08s
      🟨 nvcc12.0           Pass:  50%/2   | Total: 10m 19s | Avg:  5m 09s | Max:  5m 14s
      🟥 nvcc12.6           Pass:   0%/2   | Total:  9m 39s | Avg:  4m 49s | Max:  5m 13s
    🟨 cxx
      🟩 Clang9             Pass: 100%/1   | Total:  4m 08s | Avg:  4m 08s | Max:  4m 08s
      🟩 Clang14            Pass: 100%/1   | Total:  5m 05s | Avg:  5m 05s | Max:  5m 05s
      🟥 Clang18            Pass:   0%/1   | Total:  5m 13s | Avg:  5m 13s | Max:  5m 13s
      🟩 GCC6               Pass: 100%/1   | Total:  3m 26s | Avg:  3m 26s | Max:  3m 26s
      🟥 GCC12              Pass:   0%/1   | Total:  5m 14s | Avg:  5m 14s | Max:  5m 14s
      🟥 GCC13              Pass:   0%/1   | Total:  4m 26s | Avg:  4m 26s | Max:  4m 26s
    🟨 cpu
      🟨 amd64              Pass:  50%/6   | Total: 27m 32s | Avg:  4m 35s | Max:  5m 14s
    🟨 cudacxx_family
      🟨 nvcc               Pass:  50%/6   | Total: 27m 32s | Avg:  4m 35s | Max:  5m 14s
    🟨 gpu
      🟨 v100               Pass:  50%/6   | Total: 27m 32s | Avg:  4m 35s | Max:  5m 14s
    🟨 jobs
      🟨 Infra              Pass:  50%/6   | Total: 27m 32s | Avg:  4m 35s | Max:  5m 14s
    🟨 cxx_family
      🟨 Clang              Pass:  66%/3   | Total: 14m 26s | Avg:  4m 48s | Max:  5m 13s
      🟨 GCC                Pass:  33%/3   | Total: 13m 06s | Avg:  4m 22s | Max:  5m 14s
    
  • 🟨 thrust: Pass: 98%/109 | Total: 3d 04h | Avg: 42m 22s | Max: 1h 40m | Hits: 33%/13180

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

    🔍 cpu: amd64 🔍
      🔍 amd64              Pass:  98%/50  | Total:  7h 04m | Avg:  8m 29s | Max: 18m 57s | Hits:  44%/246   
      🟩 arm64              Pass: 100%/4   | Total: 10m 11s | Avg:  2m 32s | Max:  2m 36s
    🔍 ctk: 12.6 🔍
      🟩 12.0               Pass: 100%/19  | Total:  4h 29m | Avg: 14m 09s | Max: 18m 26s | Hits:  44%/123   
      🟩 12.5               Pass: 100%/2   | Total: 17m 20s | Avg:  8m 40s | Max:  9m 09s
      🔍 12.6               Pass:  96%/33  | Total:  2h 28m | Avg:  4m 29s | Max: 18m 57s | Hits:  44%/123   
    🔍 cudacxx: nvcc12.6 🔍
      🟩 nvcc12.0           Pass: 100%/19  | Total:  4h 29m | Avg: 14m 09s | Max: 18m 26s | Hits:  44%/123   
      🟩 nvcc12.5           Pass: 100%/2   | Total: 17m 20s | Avg:  8m 40s | Max:  9m 09s
      🔍 nvcc12.6           Pass:  96%/33  | Total:  2h 28m | Avg:  4m 29s | Max: 18m 57s | Hits:  44%/123   
    🔍 cxx: GCC12 🔍
      🟩 Clang9             Pass: 100%/2   | Total: 20m 33s | Avg: 10m 16s | Max: 16m 33s
      🟩 Clang10            Pass: 100%/2   | Total: 17m 45s | Avg:  8m 52s | Max: 13m 39s
      🟩 Clang11            Pass: 100%/4   | Total: 34m 08s | Avg:  8m 32s | Max: 13m 36s
      🟩 Clang12            Pass: 100%/4   | Total: 31m 57s | Avg:  7m 59s | Max: 12m 46s
      🟩 Clang13            Pass: 100%/4   | Total: 35m 11s | Avg:  8m 47s | Max: 14m 16s
      🟩 Clang14            Pass: 100%/4   | Total: 40m 46s | Avg: 10m 11s | Max: 17m 44s
      🟩 Clang15            Pass: 100%/2   | Total:  6m 18s | Avg:  3m 09s | Max:  3m 20s
      🟩 Clang16            Pass: 100%/4   | Total: 12m 04s | Avg:  3m 01s | Max:  3m 35s
      🟩 Clang17            Pass: 100%/2   | Total:  6m 23s | Avg:  3m 11s | Max:  3m 19s
      🟩 Clang18            Pass: 100%/2   | Total: 20m 32s | Avg: 10m 16s | Max: 17m 19s
      🟩 GCC9               Pass: 100%/2   | Total: 16m 08s | Avg:  8m 04s | Max: 13m 12s
      🟩 GCC10              Pass: 100%/4   | Total: 33m 25s | Avg:  8m 21s | Max: 13m 45s
      🟩 GCC11              Pass: 100%/4   | Total: 36m 42s | Avg:  9m 10s | Max: 15m 35s
      🔍 GCC12              Pass:  85%/7   | Total:  1h 20m | Avg: 11m 26s | Max: 18m 57s
      🟩 GCC13              Pass: 100%/3   | Total:  7m 56s | Avg:  2m 38s | Max:  2m 54s
      🟩 MSVC14.36          Pass: 100%/1   | Total:  8m 49s | Avg:  8m 49s | Max:  8m 49s | Hits:  44%/123   
      🟩 MSVC14.39          Pass: 100%/1   | Total:  8m 46s | Avg:  8m 46s | Max:  8m 46s | Hits:  44%/123   
      🟩 NVHPC24.7          Pass: 100%/2   | Total: 17m 20s | Avg:  8m 40s | Max:  9m 09s
    🔍 cxx_family: GCC 🔍
      🟩 Clang              Pass: 100%/30  | Total:  3h 45m | Avg:  7m 31s | Max: 17m 44s
      🔍 GCC                Pass:  95%/20  | Total:  2h 54m | Avg:  8m 42s | Max: 18m 57s
      🟩 MSVC               Pass: 100%/2   | Total: 17m 35s | Avg:  8m 47s | Max:  8m 49s | Hits:  44%/246   
      🟩 NVHPC              Pass: 100%/2   | Total: 17m 20s | Avg:  8m 40s | Max:  9m 09s
    🔍 jobs: Test 🔍
      🟩 Build              Pass: 100%/49  | Total:  5h 51m | Avg:  7m 10s | Max: 16m 54s | Hits:  44%/246   
      🔍 Test               Pass:  80%/5   | Total:  1h 23m | Avg: 16m 39s | Max: 18m 57s
    🔍 std: 17 🔍
      🔍 17                 Pass:  96%/29  | Total:  3h 47m | Avg:  7m 50s | Max: 18m 26s
      🟩 20                 Pass: 100%/25  | Total:  3h 27m | Avg:  8m 17s | Max: 18m 57s | Hits:  44%/246   
    🟨 cudacxx_family
      🟨 nvcc               Pass:  98%/54  | Total:  7h 14m | Avg:  8m 03s | Max: 18m 57s | Hits:  44%/246   
    🟨 gpu
      🟨 v100               Pass:  98%/54  | Total:  7h 14m | Avg:  8m 03s | Max: 18m 57s | Hits:  44%/246   
    🟩 sm
      🟩 90                 Pass: 100%/1   | Total: 10m 21s | Avg: 10m 21s | Max: 10m 21s
      🟩 90a                Pass: 100%/1   | Total:  2m 54s | Avg:  2m 54s | Max:  2m 54s
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 11m 38s | Avg: 5m 49s | Max: 9m 30s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total: 11m 38s | Avg:  5m 49s | Max:  9m 30s
    🟩 ctk
      🟩 12.6               Pass: 100%/2   | Total: 11m 38s | Avg:  5m 49s | Max:  9m 30s
    🟩 cudacxx
      🟩 nvcc12.6           Pass: 100%/2   | Total: 11m 38s | Avg:  5m 49s | Max:  9m 30s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/2   | Total: 11m 38s | Avg:  5m 49s | Max:  9m 30s
    🟩 cxx
      🟩 GCC13              Pass: 100%/2   | Total: 11m 38s | Avg:  5m 49s | Max:  9m 30s
    🟩 cxx_family
      🟩 GCC                Pass: 100%/2   | Total: 11m 38s | Avg:  5m 49s | Max:  9m 30s
    🟩 gpu
      🟩 v100               Pass: 100%/2   | Total: 11m 38s | Avg:  5m 49s | Max:  9m 30s
    🟩 jobs
      🟩 Build              Pass: 100%/1   | Total:  2m 08s | Avg:  2m 08s | Max:  2m 08s
      🟩 Test               Pass: 100%/1   | Total:  9m 30s | Avg:  9m 30s | Max:  9m 30s
    
  • 🟩 python: Pass: 100%/1 | Total: 14m 41s | Avg: 14m 41s | Max: 14m 41s

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

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

# Runner
326 linux-amd64-cpu16
31 linux-amd64-gpu-v100-latest-1
28 linux-arm64-cpu16
15 windows-amd64-cpu16

@davebayer davebayer changed the title backport std integer comparison functions to C++14 backport std integer comparison functions to C++11 Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Review
Development

Successfully merging this pull request may close these issues.

3 participants