Repository: NVIDIA/cccl
Pull request #3907: Safe warp shuffle operations
Author: login: fbusato
Created: 2025-02-22T01:10:32Z | Merged: 2025-03-07T08:07:49Z

Fixes https://github.com/NVIDIA/cccl/issues/2976

Documentation preview: [Warp Shuffle Docs.pdf](https://github.com/user-attachments/files/18951544/Warp.Shuffle.Docs.pdf)



Diff:
diff --git a/docs/libcudacxx/extended_api.rst b/docs/libcudacxx/extended_api.rst
index 5584fd77dd1..1c233168313 100644
--- a/docs/libcudacxx/extended_api.rst
+++ b/docs/libcudacxx/extended_api.rst
@@ -16,4 +16,5 @@ Extended API
    extended_api/streams
    extended_api/memory_resource
    extended_api/math
+   extended_api/warp
    extended_api/work_stealing
diff --git a/docs/libcudacxx/extended_api/warp.rst b/docs/libcudacxx/extended_api/warp.rst
new file mode 100644
index 00000000000..3e6f584f3a8
--- /dev/null
+++ b/docs/libcudacxx/extended_api/warp.rst
@@ -0,0 +1,39 @@
+.. _libcudacxx-extended-api-warp:
+
+Warp
+====
+
+.. toctree::
+   :hidden:
+   :maxdepth: 1
+
+   cuda::device::warp_shuffle <warp/warp_shuffle>
+
+.. list-table::
+   :widths: 25 45 30 30
+   :header-rows: 1
+
+   * - **Header**
+     - **Content**
+     - **CCCL Availability**
+     - **CUDA Toolkit Availability**
+
+   * - :ref:`warp_shuffle_idx <libcudacxx-extended-api-warp-warp-shuffle>`
+     - Warp shuffle from a specific lane
+     - CCCL 3.0.0
+     - CUDA 13.0
+
+   * - :ref:`warp_shuffle_up <libcudacxx-extended-api-warp-warp-shuffle>`
+     - Warp shuffle from original lane index - delta
+     - CCCL 3.0.0
+     - CUDA 13.0
+
+   * - :ref:`warp_shuffle_down <libcudacxx-extended-api-warp-warp-shuffle>`
+     - Warp shuffle from original lane index + delta
+     - CCCL 3.0.0
+     - CUDA 13.0
+
+   * - :ref:`warp_shuffle_xor <libcudacxx-extended-api-warp-warp-shuffle>`
+     - Warp shuffle from original lane index xor mask
+     - CCCL 3.0.0
+     - CUDA 13.0
diff --git a/docs/libcudacxx/extended_api/warp/warp_shuffle.rst b/docs/libcudacxx/extended_api/warp/warp_shuffle.rst
new file mode 100644
index 00000000000..284e08563a8
--- /dev/null
+++ b/docs/libcudacxx/extended_api/warp/warp_shuffle.rst
@@ -0,0 +1,166 @@
+.. _libcudacxx-extended-api-warp-warp-shuffle:
+
+Warp Shuffle
+============
+
+``warp_shuffle_idx``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_idx(const T& data,
+                     int      src_lane,
+                     uint32_t lane_mask = 0xFFFFFFFF,
+                     cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_idx(const T& data,
+                     int      src_lane,
+                     cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_up``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_up(const T& data,
+                    int      delta,
+                    uint32_t lane_mask = 0xFFFFFFFF,
+                    cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_up(const T& data,
+                    int      delta,
+                    cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_down``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_down(const T& data,
+                      int      delta,
+                      uint32_t lane_mask = 0xFFFFFFFF,
+                      cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_down(const T& data,
+                      int      delta,
+                      cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_xor``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_xor(const T& data,
+                     int      xor_mask,
+                     uint32_t lane_mask = 0xFFFFFFFF,
+                     cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_xor(const T& data,
+                     int      xor_mask,
+                     cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+Result type:
+
+.. code:: cuda
+
+    template <typename T>
+    struct WarpShuffleResult {
+        T    data;
+        bool pred;
+
+        __device__ operator T() const { return data; }
+    };
+
+The functionality provides a generalized and safe alternative to CUDA warp shuffle intrinsics.
+The functions allow to exchange data of any data size, including raw arrays, pointers, and structs.
+
+**Parameters**
+
+- ``data``: data to exchange.
+- ``src_lane``: source lane.
+- ``delta``: offset from the source lane.
+- ``xor_mask``: XOR mask to apply to the source lane.
+
+**Return value**
+
+``WarpShuffleResult``:
+
+- ``data``: data of the destination lane.
+- ``pred``: ``true`` if the destination lane is within the source lane window. ``false`` otherwise.
+
+**Constrains**
+
+- ``Width`` must be a power of two in the range [1, 32]
+- ``T``: only ``void`` pointers are allowed to avoid bug-prone code
+
+**Preconditions**
+
+- ``lane_mask`` must be a subset of the active mask
+- The destination lane must be a member of the ``lane_mask``
+- ``delta`` and ``xor_mask`` must be less than ``Width``. Modulo behavior is allowed for ``src_lane``
+- All lanes must have the same value for ``lane_mask``, ``delta`` and ``xor_mask``
+
+**Performance considerations**
+
+- The function calls the PTX instruction ``shfl.sync`` :math:`ceil\left(\frac{sizeof(data)}{4}\right)` times.
+
+**References**
+
+- `CUDA Warp Shuffle Intrinsics <https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#warp-shuffle>`_
+- `PTX Shfl.sync instruction <https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-shfl-sync>`_
+
+Example
+-------
+
+.. code:: cuda
+
+    #include <cuda/std/array>
+    #include <cuda/std/type_traits>
+    #include <cuda/warp>
+    #include <cstdio>
+
+    struct MyStruct {
+        double x;
+        int    y;
+    };
+
+    __global__ void warp_shuffle_kernel() {
+        cuda::std::integral_constant<int, 16> half_warp;
+        auto                     laneid      = cuda::ptx::get_sreg_laneid();
+        int                      raw_array[] = {threadIdx.x, threadIdx.x + 1, threadIdx.x + 2};
+        cuda::std::array<int, 3> array       = {threadIdx.x, threadIdx.x + 1, threadIdx.x + 2};
+        MyStruct                 my_structs{static_cast<double>(threadIdx.x), threadIdx.x + 1};
+        if (laneid < 16) {
+            // lanes [0, 15] get an array with values {5, 6, 7}
+            auto ret = cuda::device::warp_shuffle_idx(raw_array, 5, 0xFFFF, half_warp);
+            printf("lane %2d: [%d, %d, %d]\n", laneid, ret.data[0], ret.data[1], ret.data[2]);
+
+            // lanes [1, 15] get an array with values {threadIdx.x - 1, threadIdx.x, threadIdx.x + 1}
+            // lane 0 keeps the original values
+            auto array_ret = cuda::device::warp_shuffle_up(array, 1, half_warp).data;
+            printf("lane %2d: [%d, %d, %d]\n", laneid, array[0], array[1], array_ret[2]);
+        }
+        // lanes [0, 13] get my_structs with values {threadIdx.x + 2, threadIdx.x + 3} and pred=true
+        auto ret = cuda::device::warp_shuffle_down<16>(my_structs, 2);
+        printf("lane %2d: {%f, %d}, pred %d\n", laneid, ret.data.x, ret.data.y, ret.pred);
+    }
+
+    int main() {
+        warp_shuffle_kernel<<<1, 32>>>();
+        cudaDeviceSynchronize();
+        return 0;
+    }
+
+`See it on Godbolt 🔗 <https://godbolt.org/z/soWTaG6Eb>`_
diff --git a/docs/libcudacxx/ptx/instructions/generated/shfl_sync.rst b/docs/libcudacxx/ptx/instructions/manual/shfl_sync.rst
similarity index 86%
rename from docs/libcudacxx/ptx/instructions/generated/shfl_sync.rst
rename to docs/libcudacxx/ptx/instructions/manual/shfl_sync.rst
index 630f7afb344..9a1c573156a 100644
--- a/docs/libcudacxx/ptx/instructions/generated/shfl_sync.rst
+++ b/docs/libcudacxx/ptx/instructions/manual/shfl_sync.rst
@@ -70,8 +70,11 @@ shfl.sync
 
 **Constrains and checks**
 
+The following conditions are checked at *run-time* in debug mode:
+
 - ``T`` must have 32-bit size (compile-time)
-- ``lane_idx_offset`` must be less than the warp size (debug mode)
-- ``clamp_segmask`` must use the bit positions [0:4] and [8:12] (debug mode)
-- ``lane_mask`` must be a subset of the active mask (debug mode)
-- The destination lane must be a member of the ``lane_mask`` (debug mode)
+- ``lane_idx_offset`` must be less than the warp size
+- ``clamp_segmask`` must use the bit positions [0:4] and [8:12])
+- ``lane_mask`` must be a subset of the active mask
+- All lanes must have the same value for ``lane_mask``
+- The destination lane must be a member of the ``lane_mask``
diff --git a/docs/libcudacxx/ptx/instructions/shfl_sync.rst b/docs/libcudacxx/ptx/instructions/shfl_sync.rst
index fa9b135d63d..6c20dff9761 100644
--- a/docs/libcudacxx/ptx/instructions/shfl_sync.rst
+++ b/docs/libcudacxx/ptx/instructions/shfl_sync.rst
@@ -7,4 +7,4 @@ shfl.sync
 -  PTX ISA:
    `shfl.sync <https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-shfl-sync>`__
 
-.. include:: generated/shfl_sync.rst
+.. include:: manual/shfl_sync.rst
diff --git a/libcudacxx/include/cuda/__ptx/instructions/shfl_sync.h b/libcudacxx/include/cuda/__ptx/instructions/shfl_sync.h
index 65aca3b294a..908341aceea 100644
--- a/libcudacxx/include/cuda/__ptx/instructions/shfl_sync.h
+++ b/libcudacxx/include/cuda/__ptx/instructions/shfl_sync.h
@@ -42,10 +42,7 @@ enum class __dot_shfl_mode
 
 [[maybe_unused]]
 _CCCL_DEVICE static inline _CUDA_VSTD::uint32_t __shfl_sync_dst_lane(
-  __dot_shfl_mode __shfl_mode,
-  _CUDA_VSTD::uint32_t __lane_idx_offset,
-  _CUDA_VSTD::uint32_t __clamp_segmask,
-  _CUDA_VSTD::uint32_t __lane_mask)
+  __dot_shfl_mode __shfl_mode, _CUDA_VSTD::uint32_t __lane_idx_offset, _CUDA_VSTD::uint32_t __clamp_segmask)
 {
   auto __lane              = ::cuda::ptx::get_sreg_laneid();
   auto __clamp             = __clamp_segmask & 0b11111;
@@ -59,7 +56,7 @@ _CCCL_DEVICE static inline _CUDA_VSTD::uint32_t __shfl_sync_dst_lane(
   }
   else if (__shfl_mode == __dot_shfl_mode::__up)
   {
-    __j = __lane - __lane_idx_offset;
+    __j = __lane_idx_offset >= __lane ? 0 : __lane - __lane_idx_offset;
   }
   else if (__shfl_mode == __dot_shfl_mode::__down)
   {
@@ -91,9 +88,12 @@ _CCCL_DEVICE static inline void __shfl_sync_checks(
   _CCCL_ASSERT((__clamp_segmask | 0b1111100011111) == 0b1111100011111,
                "clamp value + segmentation mask must use the bit positions [0:4] and [8:12]");
   _CCCL_ASSERT((__lane_mask & __activemask()) == __lane_mask, "lane mask must be a subset of the active mask");
-  _CCCL_ASSERT(
-    ::cuda::ptx::__shfl_sync_dst_lane(__shfl_mode, __lane_idx_offset, __clamp_segmask, __lane_mask) & __lane_mask,
-    "the destination lane must be a member of the lane mask");
+#  if __CUDA_ARCH__ >= 700
+  [[maybe_unused]] int __pred;
+  _CCCL_ASSERT(__match_all_sync(__activemask(), __lane_mask, &__pred), "all active lanes must have the same lane mask");
+#  endif
+  _CCCL_ASSERT(::cuda::ptx::__shfl_sync_dst_lane(__shfl_mode, __lane_idx_offset, __clamp_segmask) & __lane_mask,
+               "the destination lane must be a member of the lane mask");
 }
 
 template <typename _Tp>
diff --git a/libcudacxx/include/cuda/__warp/warp_shuffle.h b/libcudacxx/include/cuda/__warp/warp_shuffle.h
new file mode 100644
index 00000000000..fd312b8f280
--- /dev/null
+++ b/libcudacxx/include/cuda/__warp/warp_shuffle.h
@@ -0,0 +1,244 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_WARP_SHUFFLE_H
+#define _CUDA___WARP_WARP_SHUFFLE_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/__type_traits/remove_cvref.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA_DEVICE
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Up> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr auto __warp_size   = 32u;
+  constexpr bool __is_void_ptr = _CUDA_VSTD::is_same_v<_Up, void*> || _CUDA_VSTD::is_same_v<_Up, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Up> || __is_void_ptr,
+                "non-void pointers are not allowed to prevent bug-prone code");
+  static_assert(_CUDA_VSTD::has_single_bit(uint32_t{_Width}) && _Width >= 1 && _Width <= __warp_size,
+                "_Width must be a power of 2 and less or equal to the warp size");
+  if constexpr (_Width == 1)
+  {
+    return WarpShuffleResult<_Up>{__data, true};
+  }
+  else
+  {
+    constexpr int __ratio = ::cuda::ceil_div(sizeof(_Up), sizeof(uint32_t));
+    auto __clamp_segmask  = (_Width - 1u) | ((__warp_size - _Width) << 8);
+    bool __pred;
+    uint32_t __array[__ratio];
+    _CUDA_VSTD::memcpy(
+      static_cast<void*>(__array), static_cast<const void*>(_CUDA_VSTD::addressof(__data)), sizeof(_Up));
+#  pragma unroll
+    for (int i = 0; i < __ratio; ++i)
+    {
+      __array[i] = _CUDA_VPTX::shfl_sync_idx(__array[i], __pred, __src_lane, __clamp_segmask, __lane_mask);
+    }
+    WarpShuffleResult<_Up> __result;
+    __result.pred = __pred;
+    _CUDA_VSTD::memcpy(
+      static_cast<void*>(_CUDA_VSTD::addressof(__result.data)), static_cast<void*>(__array), sizeof(_Up));
+    return __result;
+  }
+}
+
+template <int _Width, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Up>
+warp_shuffle_idx(const _Tp& __data, int __src_lane, _CUDA_VSTD::integral_constant<int, _Width> __width)
+{
+  return ::cuda::device::warp_shuffle_idx(__data, __src_lane, 0xFFFFFFFF, __width);
+}
+
+template <int _Width = 32, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_up(
+  const _Tp& __data, int __delta, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr auto __warp_size   = 32u;
+  constexpr bool __is_void_ptr = _CUDA_VSTD::is_same_v<_Up, void*> || _CUDA_VSTD::is_same_v<_Up, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Up> || __is_void_ptr,
+                "non-void pointers are not allowed to prevent bug-prone code");
+  static_assert(_CUDA_VSTD::has_single_bit(uint32_t{_Width}) && _Width >= 1 && _Width <= __warp_size,
+                "_Width must be a power of 2 and less or equal to the warp size");
+#  if __CUDA_ARCH__ >= 700
+  [[maybe_unused]] int __pred1;
+  _CCCL_ASSERT(__match_all_sync(__activemask(), __delta, &__pred1), "all active lanes must have the same delta");
+#  endif
+  if constexpr (_Width == 1)
+  {
+    _CCCL_ASSERT(__delta == 0, "delta must be 0 when Width == 1");
+    return WarpShuffleResult<_Up>{__data, true};
+  }
+  else
+  {
+    _CCCL_ASSERT(__delta >= 1 && __delta < _Width, "delta must be in the range [1, _Width)");
+    constexpr int __ratio = ::cuda::ceil_div(sizeof(_Up), sizeof(uint32_t));
+    auto __clamp_segmask  = (__warp_size - _Width) << 8;
+    bool __pred;
+    uint32_t __array[__ratio];
+    _CUDA_VSTD::memcpy(
+      static_cast<void*>(__array), static_cast<const void*>(_CUDA_VSTD::addressof(__data)), sizeof(_Up));
+#  pragma unroll
+    for (int i = 0; i < __ratio; ++i)
+    {
+      __array[i] = _CUDA_VPTX::shfl_sync_up(__array[i], __pred, __delta, __clamp_segmask, __lane_mask);
+    }
+    WarpShuffleResult<_Up> __result;
+    __result.pred = __pred;
+    _CUDA_VSTD::memcpy(
+      static_cast<void*>(_CUDA_VSTD::addressof(__result.data)), static_cast<void*>(__array), sizeof(_Up));
+    return __result;
+  }
+}
+
+template <int _Width, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Up>
+warp_shuffle_up(const _Tp& __data, int __src_lane, _CUDA_VSTD::integral_constant<int, _Width> __width)
+{
+  return ::cuda::device::warp_shuffle_up(__data, __src_lane, 0xFFFFFFFF, __width);
+}
+
+template <int _Width = 32, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Up> warp_shuffle_down(
+  const _Tp& __data, int __delta, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr auto __warp_size   = 32u;
+  constexpr bool __is_void_ptr = _CUDA_VSTD::is_same_v<_Up, void*> || _CUDA_VSTD::is_same_v<_Up, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Up> || __is_void_ptr,
+                "non-void pointers are not allowed to prevent bug-prone code");
+  static_assert(_CUDA_VSTD::has_single_bit(uint32_t{_Width}) && _Width >= 1 && _Width <= __warp_size,
+                "_Width must be a power of 2 and less or equal to the warp size");
+#  if __CUDA_ARCH__ >= 700
+  [[maybe_unused]] int __pred1;
+  _CCCL_ASSERT(__match_all_sync(__activemask(), __delta, &__pred1), "all active lanes must have the same delta");
+#  endif
+  if constexpr (_Width == 1)
+  {
+    _CCCL_ASSERT(__delta == 0, "delta must be 0 when Width == 1");
+    return WarpShuffleResult<_Up>{__data, true};
+  }
+  else
+  {
+    _CCCL_ASSERT(__delta >= 1 && __delta < _Width, "delta must be in the range [1, _Width)");
+    constexpr int __ratio = ::cuda::ceil_div(sizeof(_Up), sizeof(uint32_t));
+    auto __clamp_segmask  = (_Width - 1u) | ((__warp_size - _Width) << 8);
+    bool __pred;
+    uint32_t __array[__ratio];
+    _CUDA_VSTD::memcpy(
+      static_cast<void*>(__array), static_cast<const void*>(_CUDA_VSTD::addressof(__data)), sizeof(_Up));
+#  pragma unroll
+    for (int i = 0; i < __ratio; ++i)
+    {
+      __array[i] = _CUDA_VPTX::shfl_sync_down(__array[i], __pred, __delta, __clamp_segmask, __lane_mask);
+    }
+    WarpShuffleResult<_Up> __result;
+    __result.pred = __pred;
+    _CUDA_VSTD::memcpy(
+      static_cast<void*>(_CUDA_VSTD::addressof(__result.data)), static_cast<void*>(__array), sizeof(_Up));
+    return __result;
+  }
+}
+
+template <int _Width, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp>
+warp_shuffle_down(const _Tp& __data, int __src_lane, _CUDA_VSTD::integral_constant<int, _Width> __width)
+{
+  return ::cuda::device::warp_shuffle_down(__data, __src_lane, 0xFFFFFFFF, __width);
+}
+
+template <int _Width = 32, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Up> warp_shuffle_xor(
+  const _Tp& __data, int __xor_mask, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr auto __warp_size   = 32u;
+  constexpr bool __is_void_ptr = _CUDA_VSTD::is_same_v<_Up, void*> || _CUDA_VSTD::is_same_v<_Up, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Up> || __is_void_ptr,
+                "non-void pointers are not allowed to prevent bug-prone code");
+  static_assert(_CUDA_VSTD::has_single_bit(uint32_t{_Width}) && _Width >= 1 && _Width <= __warp_size,
+                "_Width must be a power of 2 and less or equal to the warp size");
+#  if __CUDA_ARCH__ >= 700
+  [[maybe_unused]] int __pred1;
+  _CCCL_ASSERT(__match_all_sync(__activemask(), __xor_mask, &__pred1), "all active lanes must have the same delta");
+#  endif
+  if constexpr (_Width == 1)
+  {
+    _CCCL_ASSERT(__xor_mask == 0, "delta must be 0 when Width == 1");
+    return WarpShuffleResult<_Up>{__data, true};
+  }
+  else
+  {
+    _CCCL_ASSERT(__xor_mask >= 1 && __xor_mask < _Width, "delta must be in the range [1, _Width)");
+    constexpr int __ratio = ::cuda::ceil_div(sizeof(_Up), sizeof(uint32_t));
+    auto __clamp_segmask  = (_Width - 1u) | ((__warp_size - _Width) << 8);
+    bool __pred;
+    uint32_t __array[__ratio];
+    _CUDA_VSTD::memcpy(
+      static_cast<void*>(__array), static_cast<const void*>(_CUDA_VSTD::addressof(__data)), sizeof(_Up));
+#  pragma unroll
+    for (int i = 0; i < __ratio; ++i)
+    {
+      __array[i] = _CUDA_VPTX::shfl_sync_bfly(__array[i], __pred, __xor_mask, __clamp_segmask, __lane_mask);
+    }
+    WarpShuffleResult<_Up> __result;
+    __result.pred = __pred;
+    _CUDA_VSTD::memcpy(
+      static_cast<void*>(_CUDA_VSTD::addressof(__result.data)), static_cast<void*>(__array), sizeof(_Up));
+    return __result;
+  }
+}
+
+template <int _Width, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Up>
+warp_shuffle_xor(const _Tp& __data, int __src_lane, _CUDA_VSTD::integral_constant<int, _Width> __width)
+{
+  return ::cuda::device::warp_shuffle_xor(__data, __src_lane, 0xFFFFFFFF, __width);
+}
+
+_LIBCUDACXX_END_NAMESPACE_CUDA_DEVICE
+
+#endif // __cccl_ptx_isa >= 600
+#endif // _CUDA___WARP_WARP_SHUFFLE_H
diff --git a/libcudacxx/include/cuda/warp b/libcudacxx/include/cuda/warp
new file mode 100644
index 00000000000..3f4b9f88bb9
--- /dev/null
+++ b/libcudacxx/include/cuda/warp
@@ -0,0 +1,26 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA_WARP
+#define _CUDA_WARP
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__warp/warp_shuffle.h>
+
+#endif // _CUDA_WARP
diff --git a/libcudacxx/test/libcudacxx/cuda/warp/warp_shuffle.pass.cpp b/libcudacxx/test/libcudacxx/cuda/warp/warp_shuffle.pass.cpp
new file mode 100644
index 00000000000..280c268ebf9
--- /dev/null
+++ b/libcudacxx/test/libcudacxx/cuda/warp/warp_shuffle.pass.cpp
@@ -0,0 +1,134 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the libcu++ Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+#include <cuda/std/array>
+#include <cuda/std/cassert>
+#include <cuda/std/cstdint>
+#include <cuda/std/type_traits>
+#include <cuda/warp>
+
+#include "test_macros.h"
+
+template <int Value>
+inline constexpr auto width_v = cuda::std::integral_constant<int, Value>{};
+
+template <int Value>
+__device__ void test_semantic()
+{
+  using cuda::device::warp_shuffle_down;
+  using cuda::device::warp_shuffle_idx;
+  using cuda::device::warp_shuffle_up;
+  using cuda::device::warp_shuffle_xor;
+  uint32_t data           = threadIdx.x;
+  constexpr uint32_t mask = 0xFFFFFFFF;
+  for (int i = 0; i < 64; i++)
+  {
+    assert(warp_shuffle_idx(data, i, mask, width_v<Value>) == __shfl_sync(mask, data, i, Value));
+  }
+  for (int i = 1; i < Value; i++)
+  {
+    assert(warp_shuffle_down(data, i, mask, width_v<Value>) == __shfl_down_sync(mask, data, i, Value));
+    assert(warp_shuffle_up(data, i, mask, width_v<Value>) == __shfl_up_sync(mask, data, i, Value));
+    assert(warp_shuffle_xor(data, i, mask, width_v<Value>) == __shfl_xor_sync(mask, data, i, Value));
+  }
+  unused(data);
+  unused(mask);
+  if (Value == 16 && threadIdx.x < 16)
+  {
+    constexpr uint32_t mask2 = 0xFFFF;
+    int i                    = 4;
+    assert(warp_shuffle_idx(data, i, mask2, width_v<Value>) == __shfl_sync(mask2, data, i, Value));
+    assert(warp_shuffle_down(data, i, mask2, width_v<Value>) == __shfl_down_sync(mask2, data, i, Value));
+    assert(warp_shuffle_xor(data, i, mask2, width_v<Value>) == __shfl_xor_sync(mask2, data, i, Value));
+    assert(warp_shuffle_up(data, i, mask2, width_v<Value>) == __shfl_up_sync(mask2, data, i, Value));
+    assert(warp_shuffle_up<16>(data, i, mask2) == __shfl_up_sync(mask2, data, i, Value));
+  }
+}
+
+template <class T>
+__device__ void test_non_trivial_types(const T& data)
+{
+  using cuda::device::warp_shuffle_down;
+  using cuda::device::warp_shuffle_idx;
+  using cuda::device::warp_shuffle_up;
+  using cuda::device::warp_shuffle_xor;
+  const T default_value{};
+  // idx
+  {
+    auto& data1 = threadIdx.x == 0 ? data : default_value;
+    auto ret    = warp_shuffle_idx(data1, 0);
+    assert(ret.data[0] == data[0] && ret.data[1] == data[1] && ret.data[2] == data[2] && ret.data[3] == data[3]);
+    unused(ret);
+  }
+  {
+    // down
+    auto& data1 = threadIdx.x >= 2 ? data : default_value;
+    auto ret    = warp_shuffle_down(data1, 2);
+    assert(ret.data[0] == data[0] && ret.data[1] == data[1] && ret.data[2] == data[2] && ret.data[3] == data[3]);
+    unused(ret);
+  }
+  {
+    // up
+    auto& data1 = threadIdx.x < 30 ? data : default_value;
+    auto ret    = warp_shuffle_up(data1, 2);
+    assert(ret.data[0] == data[0] && ret.data[1] == data[1] && ret.data[2] == data[2] && ret.data[3] == data[3]);
+    unused(ret);
+  }
+  {
+    // xor
+    auto& data1   = threadIdx.x % 2 == 0 ? data : default_value;
+    auto ret      = warp_shuffle_xor(data1, 1);
+    auto cmp_data = threadIdx.x % 2 == 0 ? default_value : data;
+    assert(ret.data[0] == cmp_data[0] && ret.data[1] == cmp_data[1] && ret.data[2] == cmp_data[2]
+           && ret.data[3] == cmp_data[3]);
+    unused(ret);
+    unused(cmp_data);
+  }
+}
+
+__device__ void test_overloadings()
+{
+  using cuda::device::warp_shuffle_down;
+  using cuda::device::warp_shuffle_idx;
+  using cuda::device::warp_shuffle_up;
+  using cuda::device::warp_shuffle_xor;
+  uint32_t data           = threadIdx.x;
+  constexpr uint32_t mask = 0xFFFFFFFF;
+  for (int i = 0; i < 64; i++)
+  {
+    assert(warp_shuffle_idx(data, i, mask) == __shfl_sync(mask, data, i));
+  }
+  for (int i = 1; i < 32; i++)
+  {
+    assert(warp_shuffle_down(data, i, mask) == __shfl_down_sync(mask, data, i));
+    assert(warp_shuffle_up(data, i, mask) == __shfl_up_sync(mask, data, i));
+    assert(warp_shuffle_xor(data, i, mask) == __shfl_xor_sync(mask, data, i));
+  }
+}
+
+__global__ void test_kernel()
+{
+  test_semantic<1>();
+  test_semantic<2>();
+  test_semantic<4>();
+  test_semantic<8>();
+  test_semantic<16>();
+  test_semantic<32>();
+  test_overloadings();
+  test_non_trivial_types(cuda::std::array<double, 4>{1.0, 2.0, 3.0, 4.0});
+  double array[4] = {1.0, 2.0, 3.0, 4.0};
+  test_non_trivial_types(array);
+  auto ptr = threadIdx.x == 0 ? static_cast<const void*>(array) : nullptr;
+  assert(cuda::device::warp_shuffle_idx(ptr, 0) == static_cast<const void*>(array));
+}
+
+int main(int, char**)
+{
+  NV_IF_TARGET(NV_IS_HOST, (test_kernel<<<1, 32>>>();))
+  return 0;
+}


Reviews:
user: login: oleksandr-pavlyk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-25T17:46:59Z
user: login: oleksandr-pavlyk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-25T17:47:44Z
user: login: oleksandr-pavlyk
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-25T18:00:18Z
user: login: fbusato
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-25T19:53:27Z
user: login: miscco
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-26T09:38:29Z
user: login: fbusato
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-26T17:48:44Z
user: login: fbusato
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-26T19:30:27Z
user: login: miscco
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-27T08:49:34Z
user: login: fbusato
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-27T17:19:34Z
user: login: bernhardmgruber
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-04T09:39:21Z
user: login: miscco
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T12:49:39Z
user: login: fbusato
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-05T18:16:46Z
user: login: miscco
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-07T08:07:34Z

Review comments:
diff_hunk: @@ -0,0 +1,30 @@
+.. _libcudacxx-extended-api-warp-communitioncal:
+
+Warp Communication
+==================
+
+.. toctree::
+   :hidden:
+   :maxdepth: 1
+
+   cuda::warp_shuffle <warp_communication/warp_shuffle>
+
+.. list-table::
+   :widths: 25 45 30
+   :header-rows: 0
+
+   * - :ref:`warp_shuffle_idx <libcudacxx-extended-api-warp-communitioncal-warp-shuffle>`
path: docs/libcudacxx/extended_api/warp_communication.rst
user: login: oleksandr-pavlyk
body: ```suggestion
   * - :ref:`warp_shuffle_idx <libcudacxx-extended-api-warp-communication-warp-shuffle>`
```

?
created_at: 2025-02-25T17:46:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,167 @@
+.. _libcudacxx-extended-api-warp-communitioncal-warp-shuffle:
path: docs/libcudacxx/extended_api/warp_communication/warp_shuffle.rst
user: login: oleksandr-pavlyk
body: ```suggestion
.. _libcudacxx-extended-api-warp-communication-warp-shuffle:
```
created_at: 2025-02-25T17:47:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,167 @@
+.. _libcudacxx-extended-api-warp-communitioncal-warp-shuffle:
+
+Warp Shuffle
+============
+
+``warp_shuffle_idx``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_idx(const T& data,
+                     int      src_lane,
+                     uint32_t lane_mask = 0xFFFFFFFF,
+                     cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_idx(const T& data,
+                     int      src_lane,
+                     cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_up``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_up(const T& data,
+                    int      delta,
+                    uint32_t lane_mask = 0xFFFFFFFF,
+                    cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_up(const T& data,
+                    int      delta,
+                    cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_down``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_down(const T& data,
+                      int      delta,
+                      uint32_t lane_mask = 0xFFFFFFFF,
+                      cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_down(const T& data,
+                      int      delta,
+                      cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_xor``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_xor(const T& data,
+                     int      xor_mask,
+                     uint32_t lane_mask = 0xFFFFFFFF,
+                     cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_xor(const T& data,
+                     int      xor_mask,
+                     cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+Result type:
+
+.. code:: cuda
+
+    template <typename T>
+    struct WarpShuffleResult {
+        T    data;
+        bool pred;
+
+        __device__ operator T() const { return data; }
+    };
+
+The functionality provides a generalized and safe alternative to CUDA warp shuffle intrinsics.
+The functions allow to exchange data of any data size, including raw arrays and structs.
+
+**Parameters**
+
+- ``data``: data to exchange.
+- ``src_lane``: source lane.
+- ``delta``: offset from the source lane.
+- ``xor_mask``: XOR mask to apply to the source lane.
+
+**Return value**
+
+``WarpShuffleResult``:
+
+- ``data``: data of the destination lane.
+- ``pred``: ``true`` if the destination lane is within the source lane window. ``false`` otherwise.
+
+**Preconditions**
+
+*Compile-time checks*:
+
+- ``Width`` must be a power of two in the range [1, 32]
+- ``T``: only ``void`` pointers are allowed to avoid bug-prone code
+
+*Run-time check in in debug mode*:
+
+- ``lane_mask`` must be a subset of the active mask
+- The destination lane must be a member of the ``lane_mask``
+- ``delta`` and ``xor_mask`` must be less than ``Width``. Modulo behavior is allowed for ``src_lane``
+- All lanes must have the same value for ``lane_mask``, ``delta`` and ``xor_mask``
+
+**Performance considerations**
+
+- The function calls the PTX instruction ``shfl.sync`` :math:`ceil\left(\frac{sizeof(data)}{4}\right)` times.
+
+**References**
+
+- `CUDA Warp Shuffle Intrinsics <https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#warp-shuffle>`_
+- `PTX Shfl.sync instruction <https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-shfl-sync>`_
+
+Example
+-------
+
+.. code:: cuda
+
+    #include <cuda/std/array>
+    #include <cuda/std/type_traits>
+    #include <cuda/warp_comm>
+    #include <cstdio>
+
+    struct MyStruct {
+        double x;
+        int    y;
+    };
+
+    __global__ void warp_shuffle_kernel() {
+        cuda::std::integral_constant<int, 16> half_warp;
+        auto                     laneid      = cuda::ptx::get_sreg_laneid();
+        int                      raw_array[] = {threadIdx.x, threadIdx.x + 1, threadIdx.x + 2};
+        cuda::std::array<int, 3> array       = {threadIdx.x, threadIdx.x + 1, threadIdx.x + 2};
+        MyStruct                 my_structs{static_cast<double>(threadIdx.x), threadIdx.x + 1};
+        if (laneid < 16) {
+            // first 16 lanes get the array {5, 6, 7}
+            auto ret = cuda::warp_shuffle_idx(raw_array, 5, 0xFFFF, half_warp);
+            printf("lane %2d: [%d, %d, %d]\n", laneid, ret.data[0], ret.data[1], ret.data[2]);
+
+            // first 16 lanes get array with values {threadIdx.x - 1, threadIdx.x, threadIdx.x + 1}
+            auto array_ret = cuda::warp_shuffle_up(array, 1, half_warp).data;
path: docs/libcudacxx/extended_api/warp_communication/warp_shuffle.rst
user: login: oleksandr-pavlyk
body: I suppose lane with laneid==0 will have `pred=false` here. Is the `data` member of the return result well-defined in this case? 
created_at: 2025-02-25T18:00:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,167 @@
+.. _libcudacxx-extended-api-warp-communitioncal-warp-shuffle:
+
+Warp Shuffle
+============
+
+``warp_shuffle_idx``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_idx(const T& data,
+                     int      src_lane,
+                     uint32_t lane_mask = 0xFFFFFFFF,
+                     cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_idx(const T& data,
+                     int      src_lane,
+                     cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_up``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_up(const T& data,
+                    int      delta,
+                    uint32_t lane_mask = 0xFFFFFFFF,
+                    cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_up(const T& data,
+                    int      delta,
+                    cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_down``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_down(const T& data,
+                      int      delta,
+                      uint32_t lane_mask = 0xFFFFFFFF,
+                      cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_down(const T& data,
+                      int      delta,
+                      cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+``warp_shuffle_xor``:
+
+.. code:: cuda
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_xor(const T& data,
+                     int      xor_mask,
+                     uint32_t lane_mask = 0xFFFFFFFF,
+                     cuda::std::integral_constant<int, Width> = {})
+
+    template <int Width = 32, typename T>
+    [[nodiscard]] __device__ WarpShuffleResult<T>
+    warp_shuffle_xor(const T& data,
+                     int      xor_mask,
+                     cuda::std::integral_constant<int, Width>) // lane_mask is 0xFFFFFFFF
+
+Result type:
+
+.. code:: cuda
+
+    template <typename T>
+    struct WarpShuffleResult {
+        T    data;
+        bool pred;
+
+        __device__ operator T() const { return data; }
+    };
+
+The functionality provides a generalized and safe alternative to CUDA warp shuffle intrinsics.
+The functions allow to exchange data of any data size, including raw arrays and structs.
+
+**Parameters**
+
+- ``data``: data to exchange.
+- ``src_lane``: source lane.
+- ``delta``: offset from the source lane.
+- ``xor_mask``: XOR mask to apply to the source lane.
+
+**Return value**
+
+``WarpShuffleResult``:
+
+- ``data``: data of the destination lane.
+- ``pred``: ``true`` if the destination lane is within the source lane window. ``false`` otherwise.
+
+**Preconditions**
+
+*Compile-time checks*:
+
+- ``Width`` must be a power of two in the range [1, 32]
+- ``T``: only ``void`` pointers are allowed to avoid bug-prone code
+
+*Run-time check in in debug mode*:
+
+- ``lane_mask`` must be a subset of the active mask
+- The destination lane must be a member of the ``lane_mask``
+- ``delta`` and ``xor_mask`` must be less than ``Width``. Modulo behavior is allowed for ``src_lane``
+- All lanes must have the same value for ``lane_mask``, ``delta`` and ``xor_mask``
+
+**Performance considerations**
+
+- The function calls the PTX instruction ``shfl.sync`` :math:`ceil\left(\frac{sizeof(data)}{4}\right)` times.
+
+**References**
+
+- `CUDA Warp Shuffle Intrinsics <https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#warp-shuffle>`_
+- `PTX Shfl.sync instruction <https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-shfl-sync>`_
+
+Example
+-------
+
+.. code:: cuda
+
+    #include <cuda/std/array>
+    #include <cuda/std/type_traits>
+    #include <cuda/warp_comm>
+    #include <cstdio>
+
+    struct MyStruct {
+        double x;
+        int    y;
+    };
+
+    __global__ void warp_shuffle_kernel() {
+        cuda::std::integral_constant<int, 16> half_warp;
+        auto                     laneid      = cuda::ptx::get_sreg_laneid();
+        int                      raw_array[] = {threadIdx.x, threadIdx.x + 1, threadIdx.x + 2};
+        cuda::std::array<int, 3> array       = {threadIdx.x, threadIdx.x + 1, threadIdx.x + 2};
+        MyStruct                 my_structs{static_cast<double>(threadIdx.x), threadIdx.x + 1};
+        if (laneid < 16) {
+            // first 16 lanes get the array {5, 6, 7}
+            auto ret = cuda::warp_shuffle_idx(raw_array, 5, 0xFFFF, half_warp);
+            printf("lane %2d: [%d, %d, %d]\n", laneid, ret.data[0], ret.data[1], ret.data[2]);
+
+            // first 16 lanes get array with values {threadIdx.x - 1, threadIdx.x, threadIdx.x + 1}
+            auto array_ret = cuda::warp_shuffle_up(array, 1, half_warp).data;
path: docs/libcudacxx/extended_api/warp_communication/warp_shuffle.rst
user: login: fbusato
body: you are right. laneid==0 keeps the original value but the behavior is well defined. I will update the docs and example
created_at: 2025-02-25T19:53:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,235 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_COMMUNICATION_SHFL_H
+#define _CUDA___WARP_COMMUNICATION_SHFL_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Tp> || __is_void_ptr,
path: libcudacxx/include/cuda/__warp_communication/warp_shuffle.h
user: login: miscco
body: To be sure, is that condition correct? or should it be
```suggestion
  static_assert(_CUDA_VSTD::is_pointer_v<_Tp> && __is_void_ptr,
```
created_at: 2025-02-26T09:34:00Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,235 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_COMMUNICATION_SHFL_H
+#define _CUDA___WARP_COMMUNICATION_SHFL_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Tp> || __is_void_ptr,
+                "non-void pointers are not allowed to prevent bug-prone code");
+  static_assert(_CUDA_VSTD::has_single_bit(static_cast<uint32_t>(_Width)) && _Width >= 1 && _Width <= __warp_size,
+                "_Width must be a power of 2 and less or equal to the warp size");
+  if constexpr (_Width == 1)
+  {
+    return WarpShuffleResult<_Tp>{__data, true};
+  }
+  else
+  {
+    constexpr int __ratio = ::cuda::ceil_div(sizeof(_Tp), sizeof(uint32_t));
+    auto __clamp_segmask  = (_Width - 1) | ((__warp_size - _Width) << 8);
+    bool __pred;
+    uint32_t __array[__ratio];
+    ::memcpy(static_cast<void*>(__array), static_cast<const void*>(_CUDA_VSTD::addressof(__data)), sizeof(_Tp));
path: libcudacxx/include/cuda/__warp_communication/warp_shuffle.h
user: login: miscco
body: There is now `cuda::std::memcpy`
created_at: 2025-02-26T09:34:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,235 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_COMMUNICATION_SHFL_H
+#define _CUDA___WARP_COMMUNICATION_SHFL_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Tp> || __is_void_ptr,
+                "non-void pointers are not allowed to prevent bug-prone code");
+  static_assert(_CUDA_VSTD::has_single_bit(static_cast<uint32_t>(_Width)) && _Width >= 1 && _Width <= __warp_size,
+                "_Width must be a power of 2 and less or equal to the warp size");
+  if constexpr (_Width == 1)
+  {
+    return WarpShuffleResult<_Tp>{__data, true};
+  }
+  else
+  {
+    constexpr int __ratio = ::cuda::ceil_div(sizeof(_Tp), sizeof(uint32_t));
+    auto __clamp_segmask  = (_Width - 1) | ((__warp_size - _Width) << 8);
+    bool __pred;
+    uint32_t __array[__ratio];
+    ::memcpy(static_cast<void*>(__array), static_cast<const void*>(_CUDA_VSTD::addressof(__data)), sizeof(_Tp));
+#  pragma unroll
+    for (int i = 0; i < __ratio; ++i)
+    {
+      __array[i] = _CUDA_VPTX::shfl_sync_idx(__array[i], __pred, __src_lane, __clamp_segmask, __lane_mask);
+    }
+    WarpShuffleResult<_Tp> __result;
+    __result.pred = __pred;
+    ::memcpy(static_cast<void*>(_CUDA_VSTD::addressof(__result.data)), static_cast<void*>(__array), sizeof(_Tp));
+    return __result;
+  }
+}
+
+template <int _Width, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp>
+warp_shuffle_idx(const _Tp& __data, int __src_lane, _CUDA_VSTD::integral_constant<int, _Width> __width)
+{
+  return ::cuda::warp_shuffle_idx(__data, __src_lane, 0xFFFFFFFF, __width);
+}
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_up(
+  const _Tp& __data, int __delta, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
path: libcudacxx/include/cuda/__warp_communication/warp_shuffle.h
user: login: miscco
body: Nitpick: I would prefer if we would use `remove_cv_t` or `remove_const_t`
created_at: 2025-02-26T09:37:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,235 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_COMMUNICATION_SHFL_H
+#define _CUDA___WARP_COMMUNICATION_SHFL_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Tp> || __is_void_ptr,
+                "non-void pointers are not allowed to prevent bug-prone code");
+  static_assert(_CUDA_VSTD::has_single_bit(static_cast<uint32_t>(_Width)) && _Width >= 1 && _Width <= __warp_size,
+                "_Width must be a power of 2 and less or equal to the warp size");
+  if constexpr (_Width == 1)
+  {
+    return WarpShuffleResult<_Tp>{__data, true};
+  }
+  else
+  {
+    constexpr int __ratio = ::cuda::ceil_div(sizeof(_Tp), sizeof(uint32_t));
+    auto __clamp_segmask  = (_Width - 1) | ((__warp_size - _Width) << 8);
+    bool __pred;
+    uint32_t __array[__ratio];
+    ::memcpy(static_cast<void*>(__array), static_cast<const void*>(_CUDA_VSTD::addressof(__data)), sizeof(_Tp));
+#  pragma unroll
+    for (int i = 0; i < __ratio; ++i)
+    {
+      __array[i] = _CUDA_VPTX::shfl_sync_idx(__array[i], __pred, __src_lane, __clamp_segmask, __lane_mask);
+    }
+    WarpShuffleResult<_Tp> __result;
+    __result.pred = __pred;
+    ::memcpy(static_cast<void*>(_CUDA_VSTD::addressof(__result.data)), static_cast<void*>(__array), sizeof(_Tp));
+    return __result;
+  }
+}
+
+template <int _Width, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp>
+warp_shuffle_idx(const _Tp& __data, int __src_lane, _CUDA_VSTD::integral_constant<int, _Width> __width)
+{
+  return ::cuda::warp_shuffle_idx(__data, __src_lane, 0xFFFFFFFF, __width);
+}
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_up(
+  const _Tp& __data, int __delta, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Tp> || __is_void_ptr,
path: libcudacxx/include/cuda/__warp_communication/warp_shuffle.h
user: login: miscco
body: Same, is this missing braces?
```suggestion
  static_assert(_CUDA_VSTD::is_pointer_v<_Tp> && __is_void_ptr,
```
created_at: 2025-02-26T09:37:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,235 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_COMMUNICATION_SHFL_H
+#define _CUDA___WARP_COMMUNICATION_SHFL_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Tp> || __is_void_ptr,
path: libcudacxx/include/cuda/__warp_communication/warp_shuffle.h
user: login: fbusato
body: yes, it is the desidered behavior (see the documentation preview attached). My idea is to exchange any kind of data between threads, even pointers. 
The problem with pointers is that arrays can decay. I used this check to prevent user side errors. This is the same strategy used by `fmt::print`  
created_at: 2025-02-26T17:48:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,235 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_COMMUNICATION_SHFL_H
+#define _CUDA___WARP_COMMUNICATION_SHFL_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
+  static_assert(!_CUDA_VSTD::is_pointer_v<_Tp> || __is_void_ptr,
+                "non-void pointers are not allowed to prevent bug-prone code");
+  static_assert(_CUDA_VSTD::has_single_bit(static_cast<uint32_t>(_Width)) && _Width >= 1 && _Width <= __warp_size,
+                "_Width must be a power of 2 and less or equal to the warp size");
+  if constexpr (_Width == 1)
+  {
+    return WarpShuffleResult<_Tp>{__data, true};
+  }
+  else
+  {
+    constexpr int __ratio = ::cuda::ceil_div(sizeof(_Tp), sizeof(uint32_t));
+    auto __clamp_segmask  = (_Width - 1) | ((__warp_size - _Width) << 8);
+    bool __pred;
+    uint32_t __array[__ratio];
+    ::memcpy(static_cast<void*>(__array), static_cast<const void*>(_CUDA_VSTD::addressof(__data)), sizeof(_Tp));
+#  pragma unroll
+    for (int i = 0; i < __ratio; ++i)
+    {
+      __array[i] = _CUDA_VPTX::shfl_sync_idx(__array[i], __pred, __src_lane, __clamp_segmask, __lane_mask);
+    }
+    WarpShuffleResult<_Tp> __result;
+    __result.pred = __pred;
+    ::memcpy(static_cast<void*>(_CUDA_VSTD::addressof(__result.data)), static_cast<void*>(__array), sizeof(_Tp));
+    return __result;
+  }
+}
+
+template <int _Width, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp>
+warp_shuffle_idx(const _Tp& __data, int __src_lane, _CUDA_VSTD::integral_constant<int, _Width> __width)
+{
+  return ::cuda::warp_shuffle_idx(__data, __src_lane, 0xFFFFFFFF, __width);
+}
+
+template <int _Width = 32, typename _Tp>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Tp> warp_shuffle_up(
+  const _Tp& __data, int __delta, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr int __warp_size   = 32;
+  constexpr int __is_void_ptr = _CUDA_VSTD::is_same_v<_Tp, void*> || _CUDA_VSTD::is_same_v<_Tp, const void*>;
path: libcudacxx/include/cuda/__warp_communication/warp_shuffle.h
user: login: fbusato
body: please see if my changes are fine
created_at: 2025-02-26T19:30:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,244 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_COMMUNICATION_SHFL_H
+#define _CUDA___WARP_COMMUNICATION_SHFL_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/__type_traits/remove_cvref.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Up> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr auto __warp_size   = 32u;
+  constexpr bool __is_void_ptr = _CUDA_VSTD::is_same_v<_Up, void*> || _CUDA_VSTD::is_same_v<_Up, const void*>;
path: libcudacxx/include/cuda/__warp_communication/warp_shuffle.h
user: login: miscco
body: You removed qualifiers already so
```suggestion
  constexpr bool __is_void_ptr = _CUDA_VSTD::is_same_v<_Up, void*>;
```

Maybe this can be inlined now
created_at: 2025-02-27T08:49:30Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,244 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPO__RATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA___WARP_COMMUNICATION_SHFL_H
+#define _CUDA___WARP_COMMUNICATION_SHFL_H
+
+#include <cuda/std/detail/__config>
+
+#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)
+#  pragma GCC system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)
+#  pragma clang system_header
+#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)
+#  pragma system_header
+#endif // no system header
+
+#include <cuda/__cmath/ceil_div.h>
+#include <cuda/__ptx/instructions/get_sreg.h>
+#include <cuda/__ptx/instructions/shfl_sync.h>
+#include <cuda/std/__bit/has_single_bit.h>
+#include <cuda/std/__concepts/concept_macros.h>
+#include <cuda/std/__memory/addressof.h>
+#include <cuda/std/__type_traits/enable_if.h>
+#include <cuda/std/__type_traits/integral_constant.h>
+#include <cuda/std/__type_traits/is_pointer.h>
+#include <cuda/std/__type_traits/is_void.h>
+#include <cuda/std/__type_traits/remove_cvref.h>
+#include <cuda/std/cstdint>
+
+#if __cccl_ptx_isa >= 600
+
+_LIBCUDACXX_BEGIN_NAMESPACE_CUDA
+
+template <typename _Tp>
+struct WarpShuffleResult
+{
+  _Tp data;
+  bool pred;
+
+  template <typename _Up = _Tp>
+  _CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE
+  operator cuda::std::enable_if_t<!cuda::std::is_array_v<_Up>, _Up>() const
+  {
+    return data;
+  }
+};
+
+template <int _Width = 32, typename _Tp, typename _Up = _CUDA_VSTD::remove_cv_t<_Tp>>
+_CCCL_NODISCARD _CCCL_HIDE_FROM_ABI _CCCL_DEVICE WarpShuffleResult<_Up> warp_shuffle_idx(
+  const _Tp& __data, int __src_lane, uint32_t __lane_mask = 0xFFFFFFFF, _CUDA_VSTD::integral_constant<int, _Width> = {})
+{
+  constexpr auto __warp_size   = 32u;
+  constexpr bool __is_void_ptr = _CUDA_VSTD::is_same_v<_Up, void*> || _CUDA_VSTD::is_same_v<_Up, const void*>;
path: libcudacxx/include/cuda/__warp_communication/warp_shuffle.h
user: login: fbusato
body: no, we need both. Here we have a mutable pointer to `const void`, not `const void* const`.
see https://godbolt.org/z/chezM9KaT
created_at: 2025-02-27T17:19:33Z
author_association: CONTRIBUTOR
diff_hunk: @@ -70,8 +70,11 @@ shfl.sync
 
 **Constrains and checks**
 
+The following conditions are checked at *run-time* in debug mode:
+
 - ``T`` must have 32-bit size (compile-time)
-- ``lane_idx_offset`` must be less than the warp size (debug mode)
-- ``clamp_segmask`` must use the bit positions [0:4] and [8:12] (debug mode)
-- ``lane_mask`` must be a subset of the active mask (debug mode)
-- The destination lane must be a member of the ``lane_mask`` (debug mode)
+- ``lane_idx_offset`` must be less than the warp size
+- ``clamp_segmask`` must use the bit positions [0:4] and [8:12])
+- ``lane_mask`` must be a subset of the active mask
+- All lanes must have the same value for ``lane_mask``
+- The destination lane must be a member of the ``lane_mask``
path: docs/libcudacxx/ptx/instructions/generated/shfl_sync.rst
user: login: bernhardmgruber
body: These are changes to a generated file. Those will be overwritten and lost the next time we generate PTX instructions. Please move hand-written documentation elsewhere.
created_at: 2025-03-04T09:39:08Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,26 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA_WARP_COMM
path: libcudacxx/include/cuda/warp_comm
user: login: miscco
body: I am not a fan of the name, but I do not really have a better one

maybe `warp_aglorithms`?
created_at: 2025-03-05T12:49:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,26 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of libcu++, the C++ Standard Library for your entire system,
+// under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+// SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _CUDA_WARP_COMM
path: libcudacxx/include/cuda/warp_comm
user: login: fbusato
body: what about `<cuda/warp>`?
@gevtushenko any suggestion?
created_at: 2025-03-05T18:16:46Z
author_association: CONTRIBUTOR

PR comments:
user: login: copy-pr-bot[bot]
created_at: 2025-02-22T01:10:36Z
body: 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](https://docs.gha-runners.nvidia.com/cpr/auto-sync).

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-02-25T01:39:16Z
body: <details><summary>🟨 CI finished in 1h 35m: Pass:  77%/158 | Total:  2d 22h | Avg: 26m 54s | Max:  1h 20m | Hits:  68%/158505</summary>

<ul>
<li>
<details><summary><h3>🟨 libcudacxx: Pass:  18%/43  | Total:  3h 55m | Avg:  5m 29s | Max: 25m 30s | Hits:  83%/13312 </h3></summary>

```
🟨 ctk
  🟨 12.0               Pass:  20%/5   | Total: 36m 40s | Avg:  7m 20s | Max: 24m 58s | Hits:  34%/2546  
  🟩 12.5               Pass: 100%/2   | Total: 21m 13s | Avg: 10m 36s | Max: 12m 00s | Hits:  93%/5614  
  🟨 12.8               Pass:  13%/36  | Total:  2h 58m | Avg:  4m 56s | Max: 25m 30s | Hits:  97%/5152  
🟨 cudacxx
  🟥 ClangCUDA18        Pass:   0%/2   | Total:  6m 11s | Avg:  3m 05s | Max:  3m 19s
  🟨 nvcc12.0           Pass:  20%/5   | Total: 36m 40s | Avg:  7m 20s | Max: 24m 58s | Hits:  34%/2546  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 21m 13s | Avg: 10m 36s | Max: 12m 00s | Hits:  93%/5614  
  🟨 nvcc12.8           Pass:  14%/34  | Total:  2h 51m | Avg:  5m 03s | Max: 25m 30s | Hits:  97%/5152  
🟨 cxx
  🟥 Clang14            Pass:   0%/4   | Total: 12m 19s | Avg:  3m 04s | Max:  3m 11s
  🟥 Clang15            Pass:   0%/2   | Total:  6m 08s | Avg:  3m 04s | Max:  3m 09s
  🟥 Clang16            Pass:   0%/2   | Total:  6m 17s | Avg:  3m 08s | Max:  3m 11s
  🟥 Clang17            Pass:   0%/2   | Total:  6m 24s | Avg:  3m 12s | Max:  3m 18s
  🟥 Clang18            Pass:   0%/6   | Total: 14m 55s | Avg:  2m 29s | Max:  3m 19s
  🟥 GCC7               Pass:   0%/2   | Total:  5m 33s | Avg:  2m 46s | Max:  2m 49s
  🟥 GCC8               Pass:   0%/1   | Total:  2m 55s | Avg:  2m 55s | Max:  2m 55s
  🟥 GCC9               Pass:   0%/2   | Total:  6m 08s | Avg:  3m 04s | Max:  3m 19s
  🟥 GCC10              Pass:   0%/2   | Total:  5m 58s | Avg:  2m 59s | Max:  3m 04s
  🟥 GCC11              Pass:   0%/2   | Total:  5m 59s | Avg:  2m 59s | Max:  3m 01s
  🟥 GCC12              Pass:   0%/2   | Total:  6m 07s | Avg:  3m 03s | Max:  3m 06s
  🟨 GCC13              Pass:  30%/10  | Total: 49m 18s | Avg:  4m 55s | Max: 16m 09s | Hits:  90%/40    
  🟩 MSVC14.29          Pass: 100%/2   | Total: 48m 40s | Avg: 24m 20s | Max: 24m 58s | Hits:  65%/5102  
  🟨 MSVC14.42          Pass:  50%/2   | Total: 38m 04s | Avg: 19m 02s | Max: 25m 30s | Hits:  97%/2556  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 21m 13s | Avg: 10m 36s | Max: 12m 00s | Hits:  93%/5614  
🟨 cxx_family
  🟥 Clang              Pass:   0%/16  | Total: 46m 03s | Avg:  2m 52s | Max:  3m 19s
  🟨 GCC                Pass:  14%/21  | Total:  1h 21m | Avg:  3m 54s | Max: 16m 09s | Hits:  90%/40    
  🟨 MSVC               Pass:  75%/4   | Total:  1h 26m | Avg: 21m 41s | Max: 25m 30s | Hits:  76%/7658  
  🟩 NVHPC              Pass: 100%/2   | Total: 21m 13s | Avg: 10m 36s | Max: 12m 00s | Hits:  93%/5614  
🟨 jobs
  🟨 Build              Pass:  13%/37  | Total:  3h 21m | Avg:  5m 26s | Max: 25m 30s | Hits:  83%/13272 
  🟩 NVRTC              Pass: 100%/2   | Total: 32m 02s | Avg: 16m 01s | Max: 16m 09s | Hits:  90%/40    
  🟥 Test               Pass:   0%/3  
  🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 21s | Avg:  2m 21s | Max:  2m 21s
🟨 sm
  🟩 75                 Pass: 100%/2   | Total: 32m 02s | Avg: 16m 01s | Max: 16m 09s | Hits:  90%/40    
  🟥 90                 Pass:   0%/2   | Total:  2m 45s | Avg:  1m 22s | Max:  2m 45s
  🟥 90;90a;100         Pass:   0%/1   | Total:  3m 05s | Avg:  3m 05s | Max:  3m 05s
🟨 cpu
  🟨 amd64              Pass:  19%/41  | Total:  3h 50m | Avg:  5m 37s | Max: 25m 30s | Hits:  83%/13312 
  🟥 arm64              Pass:   0%/2   | Total:  5m 17s | Avg:  2m 38s | Max:  2m 49s
🟨 cudacxx_family
  🟥 ClangCUDA          Pass:   0%/2   | Total:  6m 11s | Avg:  3m 05s | Max:  3m 19s
  🟨 nvcc               Pass:  19%/41  | Total:  3h 49m | Avg:  5m 36s | Max: 25m 30s | Hits:  83%/13312 
🟨 gpu
  🟥 h100               Pass:   0%/2   | Total:  2m 45s | Avg:  1m 22s | Max:  2m 45s
  🟨 rtx2080            Pass:  19%/41  | Total:  3h 53m | Avg:  5m 41s | Max: 25m 30s | Hits:  83%/13312 
🟨 std
  🟨 17                 Pass:  23%/21  | Total:  2h 30m | Avg:  7m 10s | Max: 25m 30s | Hits:  80%/10464 
  🟨 20                 Pass:   9%/21  | Total:  1h 23m | Avg:  3m 57s | Max: 16m 09s | Hits:  96%/2848  
```

</details>

<li>
<details><summary><h3>🟩 cub: Pass: 100%/45  | Total:  1d 17h | Avg: 55m 27s | Max:  1h 20m | Hits:  44%/53485 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  1d 15h | Avg: 55m 03s | Max:  1h 20m | Hits:  44%/51055 
  🟩 arm64              Pass: 100%/2   | Total:  2h 07m | Avg:  1h 03m | Max:  1h 04m | Hits:  33%/2430  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total:  5h 07m | Avg:  1h 01m | Max:  1h 10m | Hits:  30%/5908  
  🟩 12.5               Pass: 100%/2   | Total:  2h 25m | Avg:  1h 12m | Max:  1h 15m | Hits:  31%/2248  
  🟩 12.8               Pass: 100%/38  | Total:  1d 10h | Avg: 53m 45s | Max:  1h 20m | Hits:  46%/45329 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  2h 10m | Avg:  1h 05m | Max:  1h 08m | Hits:  34%/2100  
  🟩 nvcc12.0           Pass: 100%/5   | Total:  5h 07m | Avg:  1h 01m | Max:  1h 10m | Hits:  30%/5908  
  🟩 nvcc12.5           Pass: 100%/2   | Total:  2h 25m | Avg:  1h 12m | Max:  1h 15m | Hits:  31%/2248  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  1d 07h | Avg: 53m 07s | Max:  1h 20m | Hits:  47%/43229 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  2h 10m | Avg:  1h 05m | Max:  1h 08m | Hits:  34%/2100  
  🟩 nvcc               Pass: 100%/43  | Total:  1d 15h | Avg: 55m 00s | Max:  1h 20m | Hits:  44%/51385 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total:  3h 57m | Avg: 59m 20s | Max:  1h 02m | Hits:  34%/4868  
  🟩 Clang15            Pass: 100%/2   | Total:  2h 01m | Avg:  1h 00m | Max:  1h 01m | Hits:  34%/2430  
  🟩 Clang16            Pass: 100%/2   | Total:  2h 01m | Avg:  1h 00m | Max:  1h 02m | Hits:  34%/2430  
  🟩 Clang17            Pass: 100%/2   | Total:  2h 00m | Avg:  1h 00m | Max:  1h 02m | Hits:  34%/2430  
  🟩 Clang18            Pass: 100%/7   | Total:  6h 02m | Avg: 51m 43s | Max:  1h 08m | Hits:  53%/8175  
  🟩 GCC7               Pass: 100%/2   | Total:  2h 01m | Avg:  1h 00m | Max:  1h 02m | Hits:  33%/2434  
  🟩 GCC8               Pass: 100%/1   | Total: 57m 58s | Avg: 57m 58s | Max: 57m 58s | Hits:  33%/1217  
  🟩 GCC9               Pass: 100%/2   | Total:  1h 59m | Avg: 59m 44s | Max:  1h 00m | Hits:  33%/2434  
  🟩 GCC10              Pass: 100%/2   | Total:  2h 01m | Avg:  1h 00m | Max:  1h 01m | Hits:  33%/2434  
  🟩 GCC11              Pass: 100%/2   | Total:  2h 02m | Avg:  1h 01m | Max:  1h 03m | Hits:  33%/2430  
  🟩 GCC12              Pass: 100%/2   | Total:  2h 12m | Avg:  1h 06m | Max:  1h 07m | Hits:  33%/2430  
  🟩 GCC13              Pass: 100%/11  | Total:  6h 52m | Avg: 37m 31s | Max:  1h 12m | Hits:  69%/13365 
  🟩 MSVC14.29          Pass: 100%/2   | Total:  2h 24m | Avg:  1h 12m | Max:  1h 13m | Hits:  12%/2080  
  🟩 MSVC14.42          Pass: 100%/2   | Total:  2h 35m | Avg:  1h 17m | Max:  1h 20m | Hits:  12%/2080  
  🟩 NVHPC24.7          Pass: 100%/2   | Total:  2h 25m | Avg:  1h 12m | Max:  1h 15m | Hits:  31%/2248  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total: 16h 02m | Avg: 56m 37s | Max:  1h 08m | Hits:  42%/20333 
  🟩 GCC                Pass: 100%/22  | Total: 18h 07m | Avg: 49m 26s | Max:  1h 12m | Hits:  51%/26744 
  🟩 MSVC               Pass: 100%/4   | Total:  4h 59m | Avg:  1h 14m | Max:  1h 20m | Hits:  12%/4160  
  🟩 NVHPC              Pass: 100%/2   | Total:  2h 25m | Avg:  1h 12m | Max:  1h 15m | Hits:  31%/2248  
🟩 gpu
  🟩 h100               Pass: 100%/3   | Total:  1h 12m | Avg: 24m 03s | Max: 26m 17s | Hits:  77%/3645  
  🟩 rtx2080            Pass: 100%/34  | Total:  1d 12h | Avg:  1h 03m | Max:  1h 20m | Hits:  31%/40120 
  🟩 rtxa6000           Pass: 100%/8   | Total:  4h 07m | Avg: 30m 56s | Max:  1h 00m | Hits:  83%/9720  
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  1d 14h | Avg:  1h 02m | Max:  1h 20m | Hits:  31%/43765 
  🟩 DeviceLaunch       Pass: 100%/1   | Total: 23m 01s | Avg: 23m 01s | Max: 23m 01s | Hits:  99%/1215  
  🟩 GraphCapture       Pass: 100%/1   | Total: 18m 23s | Avg: 18m 23s | Max: 18m 23s | Hits:  99%/1215  
  🟩 HostLaunch         Pass: 100%/3   | Total:  1h 08m | Avg: 22m 52s | Max: 23m 30s | Hits:  99%/3645  
  🟩 TestGPU            Pass: 100%/3   | Total:  1h 04m | Avg: 21m 36s | Max: 22m 24s | Hits:  99%/3645  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total:  1h 12m | Avg: 24m 03s | Max: 26m 17s | Hits:  77%/3645  
  🟩 90;90a;100         Pass: 100%/1   | Total:  1h 12m | Avg:  1h 12m | Max:  1h 12m | Hits:  33%/1215  
🟩 std
  🟩 17                 Pass: 100%/20  | Total: 21h 09m | Avg:  1h 03m | Max:  1h 14m | Hits:  30%/23535 
  🟩 20                 Pass: 100%/25  | Total: 20h 25m | Avg: 49m 01s | Max:  1h 20m | Hits:  54%/29950 
```

</details>

<li>
<details><summary><h3>🟩 thrust: Pass: 100%/45  | Total: 22h 14m | Avg: 29m 38s | Max:  1h 06m | Hits:  77%/80136 </h3></summary>

```
🟩 cmake_options
  🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 36m 49s | Avg: 18m 24s | Max: 25m 37s | Hits:  88%/3564  
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total: 21h 21m | Avg: 29m 48s | Max:  1h 06m | Hits:  77%/76573 
  🟩 arm64              Pass: 100%/2   | Total: 52m 39s | Avg: 26m 19s | Max: 27m 57s | Hits:  76%/3563  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total:  2h 53m | Avg: 34m 46s | Max: 53m 15s | Hits:  72%/8901  
  🟩 12.5               Pass: 100%/2   | Total:  1h 40m | Avg: 50m 18s | Max: 53m 23s | Hits:  64%/3562  
  🟩 12.8               Pass: 100%/38  | Total: 17h 39m | Avg: 27m 53s | Max:  1h 06m | Hits:  78%/67673 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 49m 18s | Avg: 24m 39s | Max: 24m 43s | Hits:  77%/3562  
  🟩 nvcc12.0           Pass: 100%/5   | Total:  2h 53m | Avg: 34m 46s | Max: 53m 15s | Hits:  72%/8901  
  🟩 nvcc12.5           Pass: 100%/2   | Total:  1h 40m | Avg: 50m 18s | Max: 53m 23s | Hits:  64%/3562  
  🟩 nvcc12.8           Pass: 100%/36  | Total: 16h 50m | Avg: 28m 03s | Max:  1h 06m | Hits:  78%/64111 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 49m 18s | Avg: 24m 39s | Max: 24m 43s | Hits:  77%/3562  
  🟩 nvcc               Pass: 100%/43  | Total: 21h 24m | Avg: 29m 52s | Max:  1h 06m | Hits:  77%/76574 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total:  1h 59m | Avg: 29m 45s | Max: 30m 28s | Hits:  77%/7124  
  🟩 Clang15            Pass: 100%/2   | Total: 54m 53s | Avg: 27m 26s | Max: 28m 05s | Hits:  77%/3562  
  🟩 Clang16            Pass: 100%/2   | Total: 58m 26s | Avg: 29m 13s | Max: 30m 35s | Hits:  77%/3562  
  🟩 Clang17            Pass: 100%/2   | Total: 57m 13s | Avg: 28m 36s | Max: 30m 45s | Hits:  77%/3562  
  🟩 Clang18            Pass: 100%/7   | Total:  2h 25m | Avg: 20m 47s | Max: 27m 23s | Hits:  83%/12467 
  🟩 GCC7               Pass: 100%/2   | Total: 59m 21s | Avg: 29m 40s | Max: 30m 31s | Hits:  76%/3564  
  🟩 GCC8               Pass: 100%/1   | Total: 27m 45s | Avg: 27m 45s | Max: 27m 45s | Hits:  76%/1782  
  🟩 GCC9               Pass: 100%/2   | Total:  1h 02m | Avg: 31m 24s | Max: 31m 53s | Hits:  76%/3564  
  🟩 GCC10              Pass: 100%/2   | Total:  1h 00m | Avg: 30m 13s | Max: 30m 51s | Hits:  76%/3564  
  🟩 GCC11              Pass: 100%/2   | Total: 59m 22s | Avg: 29m 41s | Max: 31m 14s | Hits:  76%/3564  
  🟩 GCC12              Pass: 100%/2   | Total:  1h 01m | Avg: 30m 44s | Max: 32m 54s | Hits:  76%/3564  
  🟩 GCC13              Pass: 100%/10  | Total:  3h 23m | Avg: 20m 19s | Max: 34m 22s | Hits:  86%/17820 
  🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 59m | Avg: 59m 59s | Max:  1h 06m | Hits:  54%/3550  
  🟩 MSVC14.42          Pass: 100%/3   | Total:  2h 24m | Avg: 48m 00s | Max: 55m 25s | Hits:  60%/5325  
  🟩 NVHPC24.7          Pass: 100%/2   | Total:  1h 40m | Avg: 50m 18s | Max: 53m 23s | Hits:  64%/3562  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  7h 15m | Avg: 25m 35s | Max: 30m 45s | Hits:  79%/30277 
  🟩 GCC                Pass: 100%/21  | Total:  8h 54m | Avg: 25m 26s | Max: 34m 22s | Hits:  81%/37422 
  🟩 MSVC               Pass: 100%/5   | Total:  4h 23m | Avg: 52m 47s | Max:  1h 06m | Hits:  58%/8875  
  🟩 NVHPC              Pass: 100%/2   | Total:  1h 40m | Avg: 50m 18s | Max: 53m 23s | Hits:  64%/3562  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 27m 51s | Avg: 13m 55s | Max: 16m 34s | Hits:  88%/3564  
  🟩 rtx2080            Pass: 100%/33  | Total: 18h 06m | Avg: 32m 54s | Max:  1h 06m | Hits:  74%/58769 
  🟩 rtx4090            Pass: 100%/10  | Total:  3h 40m | Avg: 22m 01s | Max: 55m 25s | Hits:  85%/17803 
🟩 jobs
  🟩 Build              Pass: 100%/38  | Total: 20h 40m | Avg: 32m 38s | Max:  1h 06m | Hits:  74%/67671 
  🟩 TestCPU            Pass: 100%/3   | Total: 50m 03s | Avg: 16m 41s | Max: 34m 55s | Hits:  90%/5338  
  🟩 TestGPU            Pass: 100%/4   | Total: 43m 50s | Avg: 10m 57s | Max: 11m 17s | Hits:  99%/7127  
🟩 sm
  🟩 90                 Pass: 100%/2   | Total: 27m 51s | Avg: 13m 55s | Max: 16m 34s | Hits:  88%/3564  
  🟩 90;90a;100         Pass: 100%/1   | Total: 34m 22s | Avg: 34m 22s | Max: 34m 22s | Hits:  76%/1782  
🟩 std
  🟩 17                 Pass: 100%/20  | Total: 11h 18m | Avg: 33m 56s | Max:  1h 06m | Hits:  73%/35611 
  🟩 20                 Pass: 100%/23  | Total: 10h 18m | Avg: 26m 53s | Max: 55m 25s | Hits:  80%/40961 
```

</details>

<li>
<details><summary><h3>🟩 cudax: Pass: 100%/22  | Total:  2h 09m | Avg:  5m 54s | Max: 13m 04s | Hits:  96%/11264 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/18  | Total:  1h 55m | Avg:  6m 23s | Max: 13m 04s | Hits:  96%/9036  
  🟩 arm64              Pass: 100%/4   | Total: 14m 57s | Avg:  3m 44s | Max:  3m 54s | Hits:  98%/2228  
🟩 ctk
  🟩 12.0               Pass: 100%/1   | Total: 10m 21s | Avg: 10m 21s | Max: 10m 21s | Hits:  60%/262   
  🟩 12.5               Pass: 100%/2   | Total: 13m 29s | Avg:  6m 44s | Max:  6m 47s | Hits:  95%/710   
  🟩 12.8               Pass: 100%/19  | Total:  1h 46m | Avg:  5m 35s | Max: 13m 04s | Hits:  97%/10292 
🟩 cudacxx
  🟩 nvcc12.0           Pass: 100%/1   | Total: 10m 21s | Avg: 10m 21s | Max: 10m 21s | Hits:  60%/262   
  🟩 nvcc12.5           Pass: 100%/2   | Total: 13m 29s | Avg:  6m 44s | Max:  6m 47s | Hits:  95%/710   
  🟩 nvcc12.8           Pass: 100%/19  | Total:  1h 46m | Avg:  5m 35s | Max: 13m 04s | Hits:  97%/10292 
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/22  | Total:  2h 09m | Avg:  5m 54s | Max: 13m 04s | Hits:  96%/11264 
🟩 cxx
  🟩 Clang14            Pass: 100%/1   | Total:  4m 18s | Avg:  4m 18s | Max:  4m 18s | Hits:  98%/559   
  🟩 Clang15            Pass: 100%/1   | Total:  4m 05s | Avg:  4m 05s | Max:  4m 05s | Hits:  98%/557   
  🟩 Clang16            Pass: 100%/1   | Total:  4m 11s | Avg:  4m 11s | Max:  4m 11s | Hits:  98%/557   
  🟩 Clang17            Pass: 100%/1   | Total:  4m 08s | Avg:  4m 08s | Max:  4m 08s | Hits:  98%/557   
  🟩 Clang18            Pass: 100%/4   | Total: 24m 01s | Avg:  6m 00s | Max: 12m 29s | Hits:  98%/2228  
  🟩 GCC10              Pass: 100%/1   | Total:  4m 13s | Avg:  4m 13s | Max:  4m 13s | Hits:  98%/559   
  🟩 GCC11              Pass: 100%/1   | Total:  4m 28s | Avg:  4m 28s | Max:  4m 28s | Hits:  98%/557   
  🟩 GCC12              Pass: 100%/2   | Total: 17m 04s | Avg:  8m 32s | Max: 13m 04s | Hits:  98%/1114  
  🟩 GCC13              Pass: 100%/6   | Total: 29m 47s | Avg:  4m 57s | Max: 11m 15s | Hits:  98%/3342  
  🟩 MSVC14.39          Pass: 100%/1   | Total: 10m 21s | Avg: 10m 21s | Max: 10m 21s | Hits:  60%/262   
  🟩 MSVC14.42          Pass: 100%/1   | Total:  9m 54s | Avg:  9m 54s | Max:  9m 54s | Hits:  60%/262   
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 13m 29s | Avg:  6m 44s | Max:  6m 47s | Hits:  95%/710   
🟩 cxx_family
  🟩 Clang              Pass: 100%/8   | Total: 40m 43s | Avg:  5m 05s | Max: 12m 29s | Hits:  98%/4458  
  🟩 GCC                Pass: 100%/10  | Total: 55m 32s | Avg:  5m 33s | Max: 13m 04s | Hits:  98%/5572  
  🟩 MSVC               Pass: 100%/2   | Total: 20m 15s | Avg: 10m 07s | Max: 10m 21s | Hits:  60%/524   
  🟩 NVHPC              Pass: 100%/2   | Total: 13m 29s | Avg:  6m 44s | Max:  6m 47s | Hits:  95%/710   
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 14m 46s | Avg:  7m 23s | Max: 11m 15s | Hits:  98%/1114  
  🟩 rtx2080            Pass: 100%/20  | Total:  1h 55m | Avg:  5m 45s | Max: 13m 04s | Hits:  96%/10150 
🟩 jobs
  🟩 Build              Pass: 100%/19  | Total:  1h 33m | Avg:  4m 54s | Max: 10m 21s | Hits:  96%/9593  
  🟩 Test               Pass: 100%/3   | Total: 36m 48s | Avg: 12m 16s | Max: 13m 04s | Hits:  99%/1671  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 18m 28s | Avg:  6m 09s | Max: 11m 15s | Hits:  98%/1671  
  🟩 90a                Pass: 100%/1   | Total:  3m 36s | Avg:  3m 36s | Max:  3m 36s | Hits:  98%/557   
🟩 std
  🟩 17                 Pass: 100%/4   | Total: 17m 57s | Avg:  4m 29s | Max:  6m 47s | Hits:  97%/2026  
  🟩 20                 Pass: 100%/18  | Total:  1h 52m | Avg:  6m 13s | Max: 13m 04s | Hits:  96%/9238  
```

</details>

<li>
<details><summary><h3>🟩 cccl_c_parallel: Pass: 100%/2   | Total: 15m 38s | Avg:  7m 49s | Max: 13m 06s | Hits:  97%/308   </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/2   | Total: 15m 38s | Avg:  7m 49s | Max: 13m 06s | Hits:  97%/308   
🟩 ctk
  🟩 12.8               Pass: 100%/2   | Total: 15m 38s | Avg:  7m 49s | Max: 13m 06s | Hits:  97%/308   
🟩 cudacxx
  🟩 nvcc12.8           Pass: 100%/2   | Total: 15m 38s | Avg:  7m 49s | Max: 13m 06s | Hits:  97%/308   
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/2   | Total: 15m 38s | Avg:  7m 49s | Max: 13m 06s | Hits:  97%/308   
🟩 cxx
  🟩 GCC13              Pass: 100%/2   | Total: 15m 38s | Avg:  7m 49s | Max: 13m 06s | Hits:  97%/308   
🟩 cxx_family
  🟩 GCC                Pass: 100%/2   | Total: 15m 38s | Avg:  7m 49s | Max: 13m 06s | Hits:  97%/308   
🟩 gpu
  🟩 rtx2080            Pass: 100%/2   | Total: 15m 38s | Avg:  7m 49s | Max: 13m 06s | Hits:  97%/308   
🟩 jobs
  🟩 Build              Pass: 100%/1   | Total:  2m 32s | Avg:  2m 32s | Max:  2m 32s | Hits:  96%/154   
  🟩 Test               Pass: 100%/1   | Total: 13m 06s | Avg: 13m 06s | Max: 13m 06s | Hits:  98%/154   
```

</details>

<li>
<details><summary><h3>🟩 python: Pass: 100%/1   | Total: 39m 32s | Avg: 39m 32s | Max: 39m 32s</h3></summary>

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

</details>

</ul>

<details><summary><h3>👃 Inspect Changes</h3></summary>

### 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
</details>


<details><summary><h2>🏃‍ Runner counts (total jobs: 158)</h2></summary>

|  #   | Runner
|------|------
|  111 | `linux-amd64-cpu16`
|   15 | `windows-amd64-cpu16`
|   10 | `linux-arm64-cpu16`
|    8 | `linux-amd64-gpu-rtx2080-latest-1`
|    6 | `linux-amd64-gpu-rtxa6000-latest-1`
|    5 | `linux-amd64-gpu-h100-latest-1`
|    3 | `linux-amd64-gpu-rtx4090-latest-1`


</details>

</details>

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-02-25T21:10:04Z
body: <details><summary>🟨 CI finished in 1h 08m: Pass:  98%/158 | Total:  1d 01h | Avg:  9m 34s | Max: 38m 42s | Hits:  94%/242910</summary>

<ul>
<li>
<details><summary><h3>🟨 libcudacxx: Pass:  95%/43  | Total:  7h 06m | Avg:  9m 54s | Max: 27m 18s | Hits:  92%/97717 </h3></summary>

```
🔍 cpu: amd64 🔍
  🔍 amd64              Pass:  95%/41  | Total:  6h 57m | Avg: 10m 10s | Max: 27m 18s | Hits:  92%/92048 
  🟩 arm64              Pass: 100%/2   | Total:  8m 55s | Avg:  4m 27s | Max:  4m 52s | Hits:  96%/5669  
🔍 ctk: 12.8 🔍
  🟩 12.0               Pass: 100%/5   | Total: 39m 00s | Avg:  7m 48s | Max: 21m 51s | Hits:  98%/13711 
  🟩 12.5               Pass: 100%/2   | Total: 18m 40s | Avg:  9m 20s | Max:  9m 40s | Hits:  97%/5614  
  🔍 12.8               Pass:  94%/36  | Total:  6h 08m | Avg: 10m 13s | Max: 27m 18s | Hits:  90%/78392 
🚨 cudacxx: ClangCUDA18 🚨
  🔥 ClangCUDA18        Pass:   0%/2   | Total: 41m 32s | Avg: 20m 46s | Max: 21m 21s
  🟩 nvcc12.0           Pass: 100%/5   | Total: 39m 00s | Avg:  7m 48s | Max: 21m 51s | Hits:  98%/13711 
  🟩 nvcc12.5           Pass: 100%/2   | Total: 18m 40s | Avg:  9m 20s | Max:  9m 40s | Hits:  97%/5614  
  🟩 nvcc12.8           Pass: 100%/34  | Total:  5h 26m | Avg:  9m 36s | Max: 27m 18s | Hits:  90%/78392 
🚨 cudacxx_family: ClangCUDA 🚨
  🔥 ClangCUDA          Pass:   0%/2   | Total: 41m 32s | Avg: 20m 46s | Max: 21m 21s
  🟩 nvcc               Pass: 100%/41  | Total:  6h 24m | Avg:  9m 22s | Max: 27m 18s | Hits:  92%/97717 
🔍 cxx: Clang18 🔍
  🟩 Clang14            Pass: 100%/4   | Total: 19m 06s | Avg:  4m 46s | Max:  5m 24s | Hits:  97%/11230 
  🟩 Clang15            Pass: 100%/2   | Total: 32m 20s | Avg: 16m 10s | Max: 27m 18s | Hits:  65%/5626  
  🟩 Clang16            Pass: 100%/2   | Total: 28m 40s | Avg: 14m 20s | Max: 24m 09s | Hits:  66%/5626  
  🟩 Clang17            Pass: 100%/2   | Total:  9m 56s | Avg:  4m 58s | Max:  5m 17s | Hits:  97%/5626  
  🔍 Clang18            Pass:  66%/6   | Total:  1h 05m | Avg: 10m 51s | Max: 21m 21s | Hits:  96%/8460  
  🟩 GCC7               Pass: 100%/2   | Total:  9m 04s | Avg:  4m 32s | Max:  4m 42s | Hits:  97%/5564  
  🟩 GCC8               Pass: 100%/1   | Total:  4m 04s | Avg:  4m 04s | Max:  4m 04s | Hits:  97%/2792  
  🟩 GCC9               Pass: 100%/2   | Total:  8m 17s | Avg:  4m 08s | Max:  4m 22s | Hits:  97%/5576  
  🟩 GCC10              Pass: 100%/2   | Total:  8m 50s | Avg:  4m 25s | Max:  4m 47s | Hits:  98%/5632  
  🟩 GCC11              Pass: 100%/2   | Total:  9m 42s | Avg:  4m 51s | Max:  4m 51s | Hits:  97%/5628  
  🟩 GCC12              Pass: 100%/2   | Total: 28m 49s | Avg: 14m 24s | Max: 24m 12s | Hits:  66%/5628  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 31m | Avg:  9m 08s | Max: 16m 18s | Hits:  97%/14351 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 45m 23s | Avg: 22m 41s | Max: 23m 32s | Hits:  98%/5102  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 46m 38s | Avg: 23m 19s | Max: 24m 46s | Hits:  97%/5262  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 18m 40s | Avg:  9m 20s | Max:  9m 40s | Hits:  97%/5614  
🔍 cxx_family: Clang 🔍
  🔍 Clang              Pass:  87%/16  | Total:  2h 35m | Avg:  9m 41s | Max: 27m 18s | Hits:  87%/36568 
  🟩 GCC                Pass: 100%/21  | Total:  2h 40m | Avg:  7m 37s | Max: 24m 12s | Hits:  93%/45171 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 32m | Avg: 23m 00s | Max: 24m 46s | Hits:  97%/10364 
  🟩 NVHPC              Pass: 100%/2   | Total: 18m 40s | Avg:  9m 20s | Max:  9m 40s | Hits:  97%/5614  
🔍 gpu: rtx2080 🔍
  🟩 h100               Pass: 100%/2   | Total: 19m 22s | Avg:  9m 41s | Max: 11m 58s | Hits:  98%/2924  
  🔍 rtx2080            Pass:  95%/41  | Total:  6h 46m | Avg:  9m 55s | Max: 27m 18s | Hits:  92%/94793 
🔍 jobs: Build 🔍
  🔍 Build              Pass:  94%/37  | Total:  6h 00m | Avg:  9m 45s | Max: 27m 18s | Hits:  92%/97677 
  🟩 NVRTC              Pass: 100%/2   | Total: 32m 00s | Avg: 16m 00s | Max: 16m 18s | Hits:  90%/40    
  🟩 Test               Pass: 100%/3   | Total: 30m 33s | Avg: 10m 11s | Max: 11m 58s
  🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 30s | Avg:  2m 30s | Max:  2m 30s
🟩 sm
  🟩 75                 Pass: 100%/2   | Total: 32m 00s | Avg: 16m 00s | Max: 16m 18s | Hits:  90%/40    
  🟩 90                 Pass: 100%/2   | Total: 19m 22s | Avg:  9m 41s | Max: 11m 58s | Hits:  98%/2924  
  🟩 90;90a;100         Pass: 100%/1   | Total: 14m 57s | Avg: 14m 57s | Max: 14m 57s | Hits:  95%/2924  
🟨 std
  🟨 17                 Pass:  95%/21  | Total:  2h 59m | Avg:  8m 33s | Max: 23m 32s | Hits:  98%/52312 
  🟨 20                 Pass:  95%/21  | Total:  4h 03m | Avg: 11m 36s | Max: 27m 18s | Hits:  85%/45405 
```

</details>

<li>
<details><summary><h3>🟩 cub: Pass: 100%/45  | Total:  8h 35m | Avg: 11m 27s | Max: 31m 32s | Hits:  93%/53485 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  8h 24m | Avg: 11m 43s | Max: 31m 32s | Hits:  92%/51055 
  🟩 arm64              Pass: 100%/2   | Total: 11m 20s | Avg:  5m 40s | Max:  6m 00s | Hits:  99%/2430  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 50m 14s | Avg: 10m 02s | Max: 27m 06s | Hits:  85%/5908  
  🟩 12.5               Pass: 100%/2   | Total: 22m 29s | Avg: 11m 14s | Max: 11m 32s | Hits:  98%/2248  
  🟩 12.8               Pass: 100%/38  | Total:  7h 22m | Avg: 11m 39s | Max: 31m 32s | Hits:  94%/45329 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 10m 25s | Avg:  5m 12s | Max:  5m 18s | Hits: 100%/2100  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 50m 14s | Avg: 10m 02s | Max: 27m 06s | Hits:  85%/5908  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 22m 29s | Avg: 11m 14s | Max: 11m 32s | Hits:  98%/2248  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  7h 12m | Avg: 12m 00s | Max: 31m 32s | Hits:  93%/43229 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 10m 25s | Avg:  5m 12s | Max:  5m 18s | Hits: 100%/2100  
  🟩 nvcc               Pass: 100%/43  | Total:  8h 25m | Avg: 11m 44s | Max: 31m 32s | Hits:  92%/51385 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 24m 27s | Avg:  6m 06s | Max:  6m 22s | Hits: 100%/4868  
  🟩 Clang15            Pass: 100%/2   | Total: 13m 13s | Avg:  6m 36s | Max:  6m 41s | Hits: 100%/2430  
  🟩 Clang16            Pass: 100%/2   | Total: 12m 05s | Avg:  6m 02s | Max:  6m 06s | Hits: 100%/2430  
  🟩 Clang17            Pass: 100%/2   | Total: 12m 49s | Avg:  6m 24s | Max:  6m 34s | Hits: 100%/2430  
  🟩 Clang18            Pass: 100%/7   | Total:  1h 15m | Avg: 10m 46s | Max: 24m 32s | Hits: 100%/8175  
  🟩 GCC7               Pass: 100%/2   | Total: 12m 22s | Avg:  6m 11s | Max:  6m 46s | Hits:  99%/2434  
  🟩 GCC8               Pass: 100%/1   | Total:  6m 28s | Avg:  6m 28s | Max:  6m 28s | Hits:  99%/1217  
  🟩 GCC9               Pass: 100%/2   | Total: 12m 31s | Avg:  6m 15s | Max:  6m 47s | Hits:  99%/2434  
  🟩 GCC10              Pass: 100%/2   | Total: 13m 00s | Avg:  6m 30s | Max:  6m 45s | Hits:  99%/2434  
  🟩 GCC11              Pass: 100%/2   | Total: 13m 50s | Avg:  6m 55s | Max:  7m 09s | Hits:  99%/2430  
  🟩 GCC12              Pass: 100%/2   | Total: 13m 44s | Avg:  6m 52s | Max:  7m 06s | Hits:  99%/2430  
  🟩 GCC13              Pass: 100%/11  | Total:  2h 47m | Avg: 15m 12s | Max: 25m 01s | Hits:  99%/13365 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 56m 07s | Avg: 28m 03s | Max: 29m 01s | Hits:  15%/2080  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 59m 41s | Avg: 29m 50s | Max: 31m 32s | Hits:  15%/2080  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 22m 29s | Avg: 11m 14s | Max: 11m 32s | Hits:  98%/2248  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  2h 17m | Avg:  8m 06s | Max: 24m 32s | Hits: 100%/20333 
  🟩 GCC                Pass: 100%/22  | Total:  3h 59m | Avg: 10m 52s | Max: 25m 01s | Hits:  99%/26744 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 55m | Avg: 28m 57s | Max: 31m 32s | Hits:  15%/4160  
  🟩 NVHPC              Pass: 100%/2   | Total: 22m 29s | Avg: 11m 14s | Max: 11m 32s | Hits:  98%/2248  
🟩 gpu
  🟩 h100               Pass: 100%/3   | Total: 49m 06s | Avg: 16m 22s | Max: 23m 16s | Hits:  99%/3645  
  🟩 rtx2080            Pass: 100%/34  | Total:  5h 15m | Avg:  9m 16s | Max: 31m 32s | Hits:  91%/40120 
  🟩 rtxa6000           Pass: 100%/8   | Total:  2h 30m | Avg: 18m 50s | Max: 25m 01s | Hits:  99%/9720  
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  5h 33m | Avg:  9m 00s | Max: 31m 32s | Hits:  91%/43765 
  🟩 DeviceLaunch       Pass: 100%/1   | Total: 23m 09s | Avg: 23m 09s | Max: 23m 09s | Hits:  99%/1215  
  🟩 GraphCapture       Pass: 100%/1   | Total: 19m 09s | Avg: 19m 09s | Max: 19m 09s | Hits:  99%/1215  
  🟩 HostLaunch         Pass: 100%/3   | Total:  1h 12m | Avg: 24m 16s | Max: 25m 01s | Hits:  99%/3645  
  🟩 TestGPU            Pass: 100%/3   | Total:  1h 07m | Avg: 22m 20s | Max: 23m 13s | Hits:  99%/3645  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 49m 06s | Avg: 16m 22s | Max: 23m 16s | Hits:  99%/3645  
  🟩 90;90a;100         Pass: 100%/1   | Total:  7m 14s | Avg:  7m 14s | Max:  7m 14s | Hits:  99%/1215  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  3h 17m | Avg:  9m 51s | Max: 29m 01s | Hits:  88%/23535 
  🟩 20                 Pass: 100%/25  | Total:  5h 18m | Avg: 12m 44s | Max: 31m 32s | Hits:  96%/29950 
```

</details>

<li>
<details><summary><h3>🟩 thrust: Pass: 100%/45  | Total:  6h 35m | Avg:  8m 46s | Max: 29m 33s | Hits:  96%/80136 </h3></summary>

```
🟩 cmake_options
  🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 17m 45s | Avg:  8m 52s | Max: 11m 27s | Hits:  99%/3564  
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  6h 25m | Avg:  8m 57s | Max: 29m 33s | Hits:  96%/76573 
  🟩 arm64              Pass: 100%/2   | Total:  9m 33s | Avg:  4m 46s | Max:  5m 01s | Hits:  99%/3563  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 44m 15s | Avg:  8m 51s | Max: 22m 48s | Hits:  94%/8901  
  🟩 12.5               Pass: 100%/2   | Total: 27m 04s | Avg: 13m 32s | Max: 13m 41s | Hits:  99%/3562  
  🟩 12.8               Pass: 100%/38  | Total:  5h 23m | Avg:  8m 31s | Max: 29m 33s | Hits:  96%/67673 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 10m 08s | Avg:  5m 04s | Max:  5m 09s | Hits: 100%/3562  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 44m 15s | Avg:  8m 51s | Max: 22m 48s | Hits:  94%/8901  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 27m 04s | Avg: 13m 32s | Max: 13m 41s | Hits:  99%/3562  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  5h 13m | Avg:  8m 42s | Max: 29m 33s | Hits:  96%/64111 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 10m 08s | Avg:  5m 04s | Max:  5m 09s | Hits: 100%/3562  
  🟩 nvcc               Pass: 100%/43  | Total:  6h 24m | Avg:  8m 57s | Max: 29m 33s | Hits:  96%/76574 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 21m 39s | Avg:  5m 24s | Max:  5m 53s | Hits: 100%/7124  
  🟩 Clang15            Pass: 100%/2   | Total: 11m 25s | Avg:  5m 42s | Max:  5m 46s | Hits: 100%/3562  
  🟩 Clang16            Pass: 100%/2   | Total: 11m 40s | Avg:  5m 50s | Max:  6m 03s | Hits: 100%/3562  
  🟩 Clang17            Pass: 100%/2   | Total: 11m 01s | Avg:  5m 30s | Max:  5m 40s | Hits: 100%/3562  
  🟩 Clang18            Pass: 100%/7   | Total: 43m 27s | Avg:  6m 12s | Max: 10m 12s | Hits: 100%/12467 
  🟩 GCC7               Pass: 100%/2   | Total: 10m 42s | Avg:  5m 21s | Max:  5m 22s | Hits:  99%/3564  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 28s | Avg:  5m 28s | Max:  5m 28s | Hits:  99%/1782  
  🟩 GCC9               Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 39s | Hits:  99%/3564  
  🟩 GCC10              Pass: 100%/2   | Total: 12m 06s | Avg:  6m 03s | Max:  6m 28s | Hits:  99%/3564  
  🟩 GCC11              Pass: 100%/2   | Total: 12m 06s | Avg:  6m 03s | Max:  6m 21s | Hits:  99%/3564  
  🟩 GCC12              Pass: 100%/2   | Total: 12m 34s | Avg:  6m 17s | Max:  6m 26s | Hits:  99%/3564  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 16m | Avg:  7m 40s | Max: 11m 50s | Hits:  99%/17820 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 46m 03s | Avg: 23m 01s | Max: 23m 15s | Hits:  70%/3550  
  🟩 MSVC14.42          Pass: 100%/3   | Total:  1h 21m | Avg: 27m 18s | Max: 29m 33s | Hits:  70%/5325  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 27m 04s | Avg: 13m 32s | Max: 13m 41s | Hits:  99%/3562  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  1h 39m | Avg:  5m 50s | Max: 10m 12s | Hits: 100%/30277 
  🟩 GCC                Pass: 100%/21  | Total:  2h 20m | Avg:  6m 42s | Max: 11m 50s | Hits:  99%/37422 
  🟩 MSVC               Pass: 100%/5   | Total:  2h 07m | Avg: 25m 35s | Max: 29m 33s | Hits:  70%/8875  
  🟩 NVHPC              Pass: 100%/2   | Total: 27m 04s | Avg: 13m 32s | Max: 13m 41s | Hits:  99%/3562  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 16m 53s | Avg:  8m 26s | Max: 11m 50s | Hits:  99%/3564  
  🟩 rtx2080            Pass: 100%/33  | Total:  4h 14m | Avg:  7m 42s | Max: 23m 43s | Hits:  97%/58769 
  🟩 rtx4090            Pass: 100%/10  | Total:  2h 03m | Avg: 12m 22s | Max: 29m 33s | Hits:  94%/17803 
🟩 jobs
  🟩 Build              Pass: 100%/38  | Total:  5h 05m | Avg:  8m 02s | Max: 28m 40s | Hits:  96%/67671 
  🟩 TestCPU            Pass: 100%/3   | Total: 44m 51s | Avg: 14m 57s | Max: 29m 33s | Hits:  90%/5338  
  🟩 TestGPU            Pass: 100%/4   | Total: 44m 49s | Avg: 11m 12s | Max: 11m 50s | Hits:  99%/7127  
🟩 sm
  🟩 90                 Pass: 100%/2   | Total: 16m 53s | Avg:  8m 26s | Max: 11m 50s | Hits:  99%/3564  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 05s | Avg:  6m 05s | Max:  6m 05s | Hits:  99%/1782  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  2h 55m | Avg:  8m 45s | Max: 23m 43s | Hits:  95%/35611 
  🟩 20                 Pass: 100%/23  | Total:  3h 22m | Avg:  8m 47s | Max: 29m 33s | Hits:  97%/40961 
```

</details>

<li>
<details><summary><h3>🟩 cudax: Pass: 100%/22  | Total:  2h 00m | Avg:  5m 29s | Max: 13m 46s | Hits:  97%/11264 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/18  | Total:  1h 49m | Avg:  6m 04s | Max: 13m 46s | Hits:  97%/9036  
  🟩 arm64              Pass: 100%/4   | Total: 11m 26s | Avg:  2m 51s | Max:  3m 00s | Hits:  99%/2228  
🟩 ctk
  🟩 12.0               Pass: 100%/1   | Total:  9m 50s | Avg:  9m 50s | Max:  9m 50s | Hits:  61%/262   
  🟩 12.5               Pass: 100%/2   | Total: 12m 43s | Avg:  6m 21s | Max:  6m 22s | Hits:  96%/710   
  🟩 12.8               Pass: 100%/19  | Total:  1h 38m | Avg:  5m 10s | Max: 13m 46s | Hits:  98%/10292 
🟩 cudacxx
  🟩 nvcc12.0           Pass: 100%/1   | Total:  9m 50s | Avg:  9m 50s | Max:  9m 50s | Hits:  61%/262   
  🟩 nvcc12.5           Pass: 100%/2   | Total: 12m 43s | Avg:  6m 21s | Max:  6m 22s | Hits:  96%/710   
  🟩 nvcc12.8           Pass: 100%/19  | Total:  1h 38m | Avg:  5m 10s | Max: 13m 46s | Hits:  98%/10292 
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/22  | Total:  2h 00m | Avg:  5m 29s | Max: 13m 46s | Hits:  97%/11264 
🟩 cxx
  🟩 Clang14            Pass: 100%/1   | Total:  3m 34s | Avg:  3m 34s | Max:  3m 34s | Hits: 100%/559   
  🟩 Clang15            Pass: 100%/1   | Total:  3m 39s | Avg:  3m 39s | Max:  3m 39s | Hits: 100%/557   
  🟩 Clang16            Pass: 100%/1   | Total:  3m 33s | Avg:  3m 33s | Max:  3m 33s | Hits: 100%/557   
  🟩 Clang17            Pass: 100%/1   | Total:  3m 52s | Avg:  3m 52s | Max:  3m 52s | Hits: 100%/557   
  🟩 Clang18            Pass: 100%/4   | Total: 21m 07s | Avg:  5m 16s | Max: 12m 04s | Hits: 100%/2228  
  🟩 GCC10              Pass: 100%/1   | Total:  3m 46s | Avg:  3m 46s | Max:  3m 46s | Hits:  99%/559   
  🟩 GCC11              Pass: 100%/1   | Total:  3m 42s | Avg:  3m 42s | Max:  3m 42s | Hits:  99%/557   
  🟩 GCC12              Pass: 100%/2   | Total: 16m 32s | Avg:  8m 16s | Max: 12m 56s | Hits:  99%/1114  
  🟩 GCC13              Pass: 100%/6   | Total: 29m 10s | Avg:  4m 51s | Max: 13m 46s | Hits:  99%/3342  
  🟩 MSVC14.39          Pass: 100%/1   | Total:  9m 50s | Avg:  9m 50s | Max:  9m 50s | Hits:  61%/262   
  🟩 MSVC14.42          Pass: 100%/1   | Total:  9m 24s | Avg:  9m 24s | Max:  9m 24s | Hits:  61%/262   
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 12m 43s | Avg:  6m 21s | Max:  6m 22s | Hits:  96%/710   
🟩 cxx_family
  🟩 Clang              Pass: 100%/8   | Total: 35m 45s | Avg:  4m 28s | Max: 12m 04s | Hits: 100%/4458  
  🟩 GCC                Pass: 100%/10  | Total: 53m 10s | Avg:  5m 19s | Max: 13m 46s | Hits:  99%/5572  
  🟩 MSVC               Pass: 100%/2   | Total: 19m 14s | Avg:  9m 37s | Max:  9m 50s | Hits:  61%/524   
  🟩 NVHPC              Pass: 100%/2   | Total: 12m 43s | Avg:  6m 21s | Max:  6m 22s | Hits:  96%/710   
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 16m 49s | Avg:  8m 24s | Max: 13m 46s | Hits:  99%/1114  
  🟩 rtx2080            Pass: 100%/20  | Total:  1h 44m | Avg:  5m 12s | Max: 12m 56s | Hits:  97%/10150 
🟩 jobs
  🟩 Build              Pass: 100%/19  | Total:  1h 22m | Avg:  4m 19s | Max:  9m 50s | Hits:  97%/9593  
  🟩 Test               Pass: 100%/3   | Total: 38m 46s | Avg: 12m 55s | Max: 13m 46s | Hits:  99%/1671  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 20m 17s | Avg:  6m 45s | Max: 13m 46s | Hits:  99%/1671  
  🟩 90a                Pass: 100%/1   | Total:  3m 13s | Avg:  3m 13s | Max:  3m 13s | Hits:  99%/557   
🟩 std
  🟩 17                 Pass: 100%/4   | Total: 15m 41s | Avg:  3m 55s | Max:  6m 21s | Hits:  99%/2026  
  🟩 20                 Pass: 100%/18  | Total:  1h 45m | Avg:  5m 50s | Max: 13m 46s | Hits:  97%/9238  
```

</details>

<li>
<details><summary><h3>🟩 cccl_c_parallel: Pass: 100%/2   | Total: 15m 25s | Avg:  7m 42s | Max: 13m 03s | Hits:  98%/308   </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/2   | Total: 15m 25s | Avg:  7m 42s | Max: 13m 03s | Hits:  98%/308   
🟩 ctk
  🟩 12.8               Pass: 100%/2   | Total: 15m 25s | Avg:  7m 42s | Max: 13m 03s | Hits:  98%/308   
🟩 cudacxx
  🟩 nvcc12.8           Pass: 100%/2   | Total: 15m 25s | Avg:  7m 42s | Max: 13m 03s | Hits:  98%/308   
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/2   | Total: 15m 25s | Avg:  7m 42s | Max: 13m 03s | Hits:  98%/308   
🟩 cxx
  🟩 GCC13              Pass: 100%/2   | Total: 15m 25s | Avg:  7m 42s | Max: 13m 03s | Hits:  98%/308   
🟩 cxx_family
  🟩 GCC                Pass: 100%/2   | Total: 15m 25s | Avg:  7m 42s | Max: 13m 03s | Hits:  98%/308   
🟩 gpu
  🟩 rtx2080            Pass: 100%/2   | Total: 15m 25s | Avg:  7m 42s | Max: 13m 03s | Hits:  98%/308   
🟩 jobs
  🟩 Build              Pass: 100%/1   | Total:  2m 22s | Avg:  2m 22s | Max:  2m 22s | Hits:  98%/154   
  🟩 Test               Pass: 100%/1   | Total: 13m 03s | Avg: 13m 03s | Max: 13m 03s | Hits:  98%/154   
```

</details>

<li>
<details><summary><h3>🟩 python: Pass: 100%/1   | Total: 38m 42s | Avg: 38m 42s | Max: 38m 42s</h3></summary>

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

</details>

</ul>

<details><summary><h3>👃 Inspect Changes</h3></summary>

### 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
</details>


<details><summary><h2>🏃‍ Runner counts (total jobs: 158)</h2></summary>

|  #   | Runner
|------|------
|  111 | `linux-amd64-cpu16`
|   15 | `windows-amd64-cpu16`
|   10 | `linux-arm64-cpu16`
|    8 | `linux-amd64-gpu-rtx2080-latest-1`
|    6 | `linux-amd64-gpu-rtxa6000-latest-1`
|    5 | `linux-amd64-gpu-h100-latest-1`
|    3 | `linux-amd64-gpu-rtx4090-latest-1`


</details>

</details>

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-02-26T00:20:44Z
body: <details><summary>🟩 CI finished in 1h 01m: Pass: 100%/158 | Total: 23h 39m | Avg:  8m 58s | Max: 40m 45s | Hits:  94%/248540</summary>

<ul>
<li>
<details><summary><h3>🟩 cub: Pass: 100%/45  | Total:  8h 22m | Avg: 11m 09s | Max: 30m 23s | Hits:  93%/53485 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  8h 11m | Avg: 11m 25s | Max: 30m 23s | Hits:  92%/51055 
  🟩 arm64              Pass: 100%/2   | Total: 10m 59s | Avg:  5m 29s | Max:  5m 43s | Hits:  99%/2430  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 48m 44s | Avg:  9m 44s | Max: 26m 27s | Hits:  85%/5908  
  🟩 12.5               Pass: 100%/2   | Total: 20m 02s | Avg: 10m 01s | Max: 10m 03s | Hits:  98%/2248  
  🟩 12.8               Pass: 100%/38  | Total:  7h 13m | Avg: 11m 24s | Max: 30m 23s | Hits:  94%/45329 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 32s | Avg:  4m 46s | Max:  4m 47s | Hits: 100%/2100  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 48m 44s | Avg:  9m 44s | Max: 26m 27s | Hits:  85%/5908  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 20m 02s | Avg: 10m 01s | Max: 10m 03s | Hits:  98%/2248  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  7h 03m | Avg: 11m 46s | Max: 30m 23s | Hits:  93%/43229 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 32s | Avg:  4m 46s | Max:  4m 47s | Hits: 100%/2100  
  🟩 nvcc               Pass: 100%/43  | Total:  8h 12m | Avg: 11m 27s | Max: 30m 23s | Hits:  92%/51385 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 22m 56s | Avg:  5m 44s | Max:  6m 11s | Hits: 100%/4868  
  🟩 Clang15            Pass: 100%/2   | Total: 12m 43s | Avg:  6m 21s | Max:  6m 34s | Hits: 100%/2430  
  🟩 Clang16            Pass: 100%/2   | Total: 11m 59s | Avg:  5m 59s | Max:  6m 01s | Hits: 100%/2430  
  🟩 Clang17            Pass: 100%/2   | Total: 12m 41s | Avg:  6m 20s | Max:  6m 22s | Hits: 100%/2430  
  🟩 Clang18            Pass: 100%/7   | Total:  1h 13m | Avg: 10m 30s | Max: 24m 21s | Hits: 100%/8175  
  🟩 GCC7               Pass: 100%/2   | Total: 11m 37s | Avg:  5m 48s | Max:  5m 57s | Hits:  99%/2434  
  🟩 GCC8               Pass: 100%/1   | Total:  6m 24s | Avg:  6m 24s | Max:  6m 24s | Hits:  99%/1217  
  🟩 GCC9               Pass: 100%/2   | Total: 12m 26s | Avg:  6m 13s | Max:  6m 46s | Hits:  99%/2434  
  🟩 GCC10              Pass: 100%/2   | Total: 12m 45s | Avg:  6m 22s | Max:  6m 30s | Hits:  99%/2434  
  🟩 GCC11              Pass: 100%/2   | Total: 12m 38s | Avg:  6m 19s | Max:  6m 25s | Hits:  99%/2430  
  🟩 GCC12              Pass: 100%/2   | Total: 13m 22s | Avg:  6m 41s | Max:  6m 42s | Hits:  99%/2430  
  🟩 GCC13              Pass: 100%/11  | Total:  2h 42m | Avg: 14m 44s | Max: 25m 16s | Hits:  99%/13365 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 56m 22s | Avg: 28m 11s | Max: 29m 55s | Hits:  15%/2080  
  🟩 MSVC14.42          Pass: 100%/2   | Total:  1h 00m | Avg: 30m 19s | Max: 30m 23s | Hits:  15%/2080  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 20m 02s | Avg: 10m 01s | Max: 10m 03s | Hits:  98%/2248  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  2h 13m | Avg:  7m 52s | Max: 24m 21s | Hits: 100%/20333 
  🟩 GCC                Pass: 100%/22  | Total:  3h 51m | Avg: 10m 30s | Max: 25m 16s | Hits:  99%/26744 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 57m | Avg: 29m 15s | Max: 30m 23s | Hits:  15%/4160  
  🟩 NVHPC              Pass: 100%/2   | Total: 20m 02s | Avg: 10m 01s | Max: 10m 03s | Hits:  98%/2248  
🟩 gpu
  🟩 h100               Pass: 100%/3   | Total: 49m 38s | Avg: 16m 32s | Max: 23m 19s | Hits:  99%/3645  
  🟩 rtx2080            Pass: 100%/34  | Total:  5h 06m | Avg:  9m 00s | Max: 30m 23s | Hits:  91%/40120 
  🟩 rtxa6000           Pass: 100%/8   | Total:  2h 26m | Avg: 18m 15s | Max: 25m 16s | Hits:  99%/9720  
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  5h 24m | Avg:  8m 45s | Max: 30m 23s | Hits:  91%/43765 
  🟩 DeviceLaunch       Pass: 100%/1   | Total: 20m 28s | Avg: 20m 28s | Max: 20m 28s | Hits:  99%/1215  
  🟩 GraphCapture       Pass: 100%/1   | Total: 16m 05s | Avg: 16m 05s | Max: 16m 05s | Hits:  99%/1215  
  🟩 HostLaunch         Pass: 100%/3   | Total:  1h 12m | Avg: 24m 18s | Max: 25m 16s | Hits:  99%/3645  
  🟩 TestGPU            Pass: 100%/3   | Total:  1h 08m | Avg: 22m 51s | Max: 24m 43s | Hits:  99%/3645  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 49m 38s | Avg: 16m 32s | Max: 23m 19s | Hits:  99%/3645  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 37s | Avg:  6m 37s | Max:  6m 37s | Hits:  99%/1215  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  3h 14m | Avg:  9m 43s | Max: 30m 23s | Hits:  88%/23535 
  🟩 20                 Pass: 100%/25  | Total:  5h 07m | Avg: 12m 18s | Max: 30m 16s | Hits:  96%/29950 
```

</details>

<li>
<details><summary><h3>🟩 thrust: Pass: 100%/45  | Total:  6h 28m | Avg:  8m 38s | Max: 31m 38s | Hits:  96%/80136 </h3></summary>

```
🟩 cmake_options
  🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 17m 04s | Avg:  8m 32s | Max: 11m 04s | Hits:  99%/3564  
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  6h 19m | Avg:  8m 49s | Max: 31m 38s | Hits:  96%/76573 
  🟩 arm64              Pass: 100%/2   | Total:  9m 30s | Avg:  4m 45s | Max:  5m 02s | Hits:  99%/3563  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 43m 18s | Avg:  8m 39s | Max: 23m 50s | Hits:  94%/8901  
  🟩 12.5               Pass: 100%/2   | Total: 26m 23s | Avg: 13m 11s | Max: 13m 20s | Hits:  99%/3562  
  🟩 12.8               Pass: 100%/38  | Total:  5h 19m | Avg:  8m 24s | Max: 31m 38s | Hits:  96%/67673 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 10m 05s | Avg:  5m 02s | Max:  5m 07s | Hits: 100%/3562  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 43m 18s | Avg:  8m 39s | Max: 23m 50s | Hits:  94%/8901  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 26m 23s | Avg: 13m 11s | Max: 13m 20s | Hits:  99%/3562  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  5h 09m | Avg:  8m 35s | Max: 31m 38s | Hits:  96%/64111 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 10m 05s | Avg:  5m 02s | Max:  5m 07s | Hits: 100%/3562  
  🟩 nvcc               Pass: 100%/43  | Total:  6h 18m | Avg:  8m 48s | Max: 31m 38s | Hits:  96%/76574 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 20m 08s | Avg:  5m 02s | Max:  5m 15s | Hits: 100%/7124  
  🟩 Clang15            Pass: 100%/2   | Total: 11m 36s | Avg:  5m 48s | Max:  5m 53s | Hits: 100%/3562  
  🟩 Clang16            Pass: 100%/2   | Total: 10m 23s | Avg:  5m 11s | Max:  5m 14s | Hits: 100%/3562  
  🟩 Clang17            Pass: 100%/2   | Total: 11m 32s | Avg:  5m 46s | Max:  5m 48s | Hits:  99%/3562  
  🟩 Clang18            Pass: 100%/7   | Total: 42m 56s | Avg:  6m 08s | Max: 10m 07s | Hits: 100%/12467 
  🟩 GCC7               Pass: 100%/2   | Total: 10m 00s | Avg:  5m 00s | Max:  5m 13s | Hits:  99%/3564  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 17s | Avg:  5m 17s | Max:  5m 17s | Hits:  99%/1782  
  🟩 GCC9               Pass: 100%/2   | Total: 10m 52s | Avg:  5m 26s | Max:  5m 57s | Hits:  99%/3564  
  🟩 GCC10              Pass: 100%/2   | Total: 10m 44s | Avg:  5m 22s | Max:  5m 26s | Hits:  99%/3564  
  🟩 GCC11              Pass: 100%/2   | Total: 11m 28s | Avg:  5m 44s | Max:  6m 03s | Hits:  99%/3564  
  🟩 GCC12              Pass: 100%/2   | Total: 11m 41s | Avg:  5m 50s | Max:  6m 04s | Hits:  99%/3564  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 14m | Avg:  7m 27s | Max: 11m 28s | Hits:  99%/17820 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 48m 49s | Avg: 24m 24s | Max: 24m 59s | Hits:  70%/3550  
  🟩 MSVC14.42          Pass: 100%/3   | Total:  1h 22m | Avg: 27m 31s | Max: 31m 38s | Hits:  70%/5325  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 26m 23s | Avg: 13m 11s | Max: 13m 20s | Hits:  99%/3562  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  1h 36m | Avg:  5m 40s | Max: 10m 07s | Hits:  99%/30277 
  🟩 GCC                Pass: 100%/21  | Total:  2h 14m | Avg:  6m 24s | Max: 11m 28s | Hits:  99%/37422 
  🟩 MSVC               Pass: 100%/5   | Total:  2h 11m | Avg: 26m 16s | Max: 31m 38s | Hits:  70%/8875  
  🟩 NVHPC              Pass: 100%/2   | Total: 26m 23s | Avg: 13m 11s | Max: 13m 20s | Hits:  99%/3562  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 15m 50s | Avg:  7m 55s | Max: 11m 28s | Hits:  99%/3564  
  🟩 rtx2080            Pass: 100%/33  | Total:  4h 11m | Avg:  7m 37s | Max: 25m 52s | Hits:  97%/58769 
  🟩 rtx4090            Pass: 100%/10  | Total:  2h 01m | Avg: 12m 08s | Max: 31m 38s | Hits:  94%/17803 
🟩 jobs
  🟩 Build              Pass: 100%/38  | Total:  4h 58m | Avg:  7m 50s | Max: 25m 52s | Hits:  96%/67671 
  🟩 TestCPU            Pass: 100%/3   | Total: 46m 48s | Avg: 15m 36s | Max: 31m 38s | Hits:  90%/5338  
  🟩 TestGPU            Pass: 100%/4   | Total: 43m 59s | Avg: 10m 59s | Max: 11m 28s | Hits:  99%/7127  
🟩 sm
  🟩 90                 Pass: 100%/2   | Total: 15m 50s | Avg:  7m 55s | Max: 11m 28s | Hits:  99%/3564  
  🟩 90;90a;100         Pass: 100%/1   | Total:  5m 43s | Avg:  5m 43s | Max:  5m 43s | Hits:  99%/1782  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  2h 54m | Avg:  8m 43s | Max: 25m 52s | Hits:  95%/35611 
  🟩 20                 Pass: 100%/23  | Total:  3h 17m | Avg:  8m 35s | Max: 31m 38s | Hits:  97%/40961 
```

</details>

<li>
<details><summary><h3>🟩 libcudacxx: Pass: 100%/43  | Total:  5h 55m | Avg:  8m 15s | Max: 24m 24s | Hits:  94%/103347</h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/41  | Total:  5h 47m | Avg:  8m 28s | Max: 24m 24s | Hits:  94%/97678 
  🟩 arm64              Pass: 100%/2   | Total:  7m 59s | Avg:  3m 59s | Max:  4m 15s | Hits:  98%/5669  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 36m 32s | Avg:  7m 18s | Max: 21m 08s | Hits:  98%/13711 
  🟩 12.5               Pass: 100%/2   | Total: 17m 41s | Avg:  8m 50s | Max:  9m 20s | Hits:  97%/5614  
  🟩 12.8               Pass: 100%/36  | Total:  5h 01m | Avg:  8m 21s | Max: 24m 24s | Hits:  93%/84022 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 42m 13s | Avg: 21m 06s | Max: 21m 45s | Hits:  27%/5630  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 36m 32s | Avg:  7m 18s | Max: 21m 08s | Hits:  98%/13711 
  🟩 nvcc12.5           Pass: 100%/2   | Total: 17m 41s | Avg:  8m 50s | Max:  9m 20s | Hits:  97%/5614  
  🟩 nvcc12.8           Pass: 100%/34  | Total:  4h 18m | Avg:  7m 36s | Max: 24m 24s | Hits:  98%/78392 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 42m 13s | Avg: 21m 06s | Max: 21m 45s | Hits:  27%/5630  
  🟩 nvcc               Pass: 100%/41  | Total:  5h 13m | Avg:  7m 38s | Max: 24m 24s | Hits:  98%/97717 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 17m 32s | Avg:  4m 23s | Max:  4m 55s | Hits:  98%/11230 
  🟩 Clang15            Pass: 100%/2   | Total:  9m 46s | Avg:  4m 53s | Max:  5m 15s | Hits:  98%/5626  
  🟩 Clang16            Pass: 100%/2   | Total:  9m 33s | Avg:  4m 46s | Max:  4m 56s | Hits:  98%/5626  
  🟩 Clang17            Pass: 100%/2   | Total:  9m 50s | Avg:  4m 55s | Max:  5m 15s | Hits:  98%/5626  
  🟩 Clang18            Pass: 100%/6   | Total:  1h 03m | Avg: 10m 38s | Max: 21m 45s | Hits:  70%/14090 
  🟩 GCC7               Pass: 100%/2   | Total:  7m 49s | Avg:  3m 54s | Max:  4m 06s | Hits:  97%/5564  
  🟩 GCC8               Pass: 100%/1   | Total:  3m 46s | Avg:  3m 46s | Max:  3m 46s | Hits:  99%/2792  
  🟩 GCC9               Pass: 100%/2   | Total:  8m 18s | Avg:  4m 09s | Max:  4m 28s | Hits:  97%/5576  
  🟩 GCC10              Pass: 100%/2   | Total:  8m 14s | Avg:  4m 07s | Max:  4m 16s | Hits:  98%/5632  
  🟩 GCC11              Pass: 100%/2   | Total:  8m 00s | Avg:  4m 00s | Max:  4m 05s | Hits:  98%/5628  
  🟩 GCC12              Pass: 100%/2   | Total:  8m 37s | Avg:  4m 18s | Max:  4m 31s | Hits:  98%/5628  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 30m | Avg:  9m 04s | Max: 18m 24s | Hits:  96%/14351 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 45m 27s | Avg: 22m 43s | Max: 24m 19s | Hits:  98%/5102  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 46m 06s | Avg: 23m 03s | Max: 24m 24s | Hits:  98%/5262  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 17m 41s | Avg:  8m 50s | Max:  9m 20s | Hits:  97%/5614  
🟩 cxx_family
  🟩 Clang              Pass: 100%/16  | Total:  1h 50m | Avg:  6m 54s | Max: 21m 45s | Hits:  88%/42198 
  🟩 GCC                Pass: 100%/21  | Total:  2h 15m | Avg:  6m 27s | Max: 18m 24s | Hits:  97%/45171 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 31m | Avg: 22m 53s | Max: 24m 24s | Hits:  98%/10364 
  🟩 NVHPC              Pass: 100%/2   | Total: 17m 41s | Avg:  8m 50s | Max:  9m 20s | Hits:  97%/5614  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 16m 14s | Avg:  8m 07s | Max: 11m 55s | Hits:  99%/2924  
  🟩 rtx2080            Pass: 100%/41  | Total:  5h 39m | Avg:  8m 16s | Max: 24m 24s | Hits:  94%/100423
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  4h 49m | Avg:  7m 48s | Max: 24m 24s | Hits:  94%/103307
  🟩 NVRTC              Pass: 100%/2   | Total: 34m 46s | Avg: 17m 23s | Max: 18m 24s | Hits:  90%/40    
  🟩 Test               Pass: 100%/3   | Total: 29m 05s | Avg:  9m 41s | Max: 11m 55s
  🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 15s | Avg:  2m 15s | Max:  2m 15s
🟩 sm
  🟩 75                 Pass: 100%/2   | Total: 34m 46s | Avg: 17m 23s | Max: 18m 24s | Hits:  90%/40    
  🟩 90                 Pass: 100%/2   | Total: 16m 14s | Avg:  8m 07s | Max: 11m 55s | Hits:  99%/2924  
  🟩 90;90a;100         Pass: 100%/1   | Total: 16m 18s | Avg: 16m 18s | Max: 16m 18s | Hits:  89%/2924  
🟩 std
  🟩 17                 Pass: 100%/21  | Total:  2h 59m | Avg:  8m 31s | Max: 24m 19s | Hits:  94%/55106 
  🟩 20                 Pass: 100%/21  | Total:  2h 53m | Avg:  8m 16s | Max: 24m 24s | Hits:  93%/48241 
```

</details>

<li>
<details><summary><h3>🟩 cudax: Pass: 100%/22  | Total:  1h 56m | Avg:  5m 18s | Max: 14m 06s | Hits:  97%/11264 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/18  | Total:  1h 45m | Avg:  5m 52s | Max: 14m 06s | Hits:  97%/9036  
  🟩 arm64              Pass: 100%/4   | Total: 11m 10s | Avg:  2m 47s | Max:  2m 54s | Hits:  99%/2228  
🟩 ctk
  🟩 12.0               Pass: 100%/1   | Total: 10m 29s | Avg: 10m 29s | Max: 10m 29s | Hits:  61%/262   
  🟩 12.5               Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 41s | Hits:  96%/710   
  🟩 12.8               Pass: 100%/19  | Total:  1h 35m | Avg:  5m 00s | Max: 14m 06s | Hits:  98%/10292 
🟩 cudacxx
  🟩 nvcc12.0           Pass: 100%/1   | Total: 10m 29s | Avg: 10m 29s | Max: 10m 29s | Hits:  61%/262   
  🟩 nvcc12.5           Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 41s | Hits:  96%/710   
  🟩 nvcc12.8           Pass: 100%/19  | Total:  1h 35m | Avg:  5m 00s | Max: 14m 06s | Hits:  98%/10292 
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/22  | Total:  1h 56m | Avg:  5m 18s | Max: 14m 06s | Hits:  97%/11264 
🟩 cxx
  🟩 Clang14            Pass: 100%/1   | Total:  3m 16s | Avg:  3m 16s | Max:  3m 16s | Hits: 100%/559   
  🟩 Clang15            Pass: 100%/1   | Total:  3m 25s | Avg:  3m 25s | Max:  3m 25s | Hits: 100%/557   
  🟩 Clang16            Pass: 100%/1   | Total:  3m 31s | Avg:  3m 31s | Max:  3m 31s | Hits: 100%/557   
  🟩 Clang17            Pass: 100%/1   | Total:  3m 18s | Avg:  3m 18s | Max:  3m 18s | Hits: 100%/557   
  🟩 Clang18            Pass: 100%/4   | Total: 20m 56s | Avg:  5m 14s | Max: 12m 05s | Hits:  99%/2228  
  🟩 GCC10              Pass: 100%/1   | Total:  3m 17s | Avg:  3m 17s | Max:  3m 17s | Hits:  99%/559   
  🟩 GCC11              Pass: 100%/1   | Total:  3m 13s | Avg:  3m 13s | Max:  3m 13s | Hits:  99%/557   
  🟩 GCC12              Pass: 100%/2   | Total: 16m 27s | Avg:  8m 13s | Max: 13m 09s | Hits:  99%/1114  
  🟩 GCC13              Pass: 100%/6   | Total: 28m 34s | Avg:  4m 45s | Max: 14m 06s | Hits:  99%/3342  
  🟩 MSVC14.39          Pass: 100%/1   | Total: 10m 29s | Avg: 10m 29s | Max: 10m 29s | Hits:  61%/262   
  🟩 MSVC14.42          Pass: 100%/1   | Total:  9m 18s | Avg:  9m 18s | Max:  9m 18s | Hits:  61%/262   
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 41s | Hits:  96%/710   
🟩 cxx_family
  🟩 Clang              Pass: 100%/8   | Total: 34m 26s | Avg:  4m 18s | Max: 12m 05s | Hits:  99%/4458  
  🟩 GCC                Pass: 100%/10  | Total: 51m 31s | Avg:  5m 09s | Max: 14m 06s | Hits:  99%/5572  
  🟩 MSVC               Pass: 100%/2   | Total: 19m 47s | Avg:  9m 53s | Max: 10m 29s | Hits:  61%/524   
  🟩 NVHPC              Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 41s | Hits:  96%/710   
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 16m 58s | Avg:  8m 29s | Max: 14m 06s | Hits:  99%/1114  
  🟩 rtx2080            Pass: 100%/20  | Total:  1h 39m | Avg:  4m 59s | Max: 13m 09s | Hits:  97%/10150 
🟩 jobs
  🟩 Build              Pass: 100%/19  | Total:  1h 17m | Avg:  4m 04s | Max: 10m 29s | Hits:  97%/9593  
  🟩 Test               Pass: 100%/3   | Total: 39m 20s | Avg: 13m 06s | Max: 14m 06s | Hits:  99%/1671  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 19m 51s | Avg:  6m 37s | Max: 14m 06s | Hits:  99%/1671  
  🟩 90a                Pass: 100%/1   | Total:  3m 04s | Avg:  3m 04s | Max:  3m 04s | Hits:  99%/557   
🟩 std
  🟩 17                 Pass: 100%/4   | Total: 14m 03s | Avg:  3m 30s | Max:  5m 41s | Hits:  99%/2026  
  🟩 20                 Pass: 100%/18  | Total:  1h 42m | Avg:  5m 42s | Max: 14m 06s | Hits:  97%/9238  
```

</details>

<li>
<details><summary><h3>🟩 cccl_c_parallel: Pass: 100%/2   | Total: 15m 15s | Avg:  7m 37s | Max: 12m 56s | Hits:  98%/308   </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/2   | Total: 15m 15s | Avg:  7m 37s | Max: 12m 56s | Hits:  98%/308   
🟩 ctk
  🟩 12.8               Pass: 100%/2   | Total: 15m 15s | Avg:  7m 37s | Max: 12m 56s | Hits:  98%/308   
🟩 cudacxx
  🟩 nvcc12.8           Pass: 100%/2   | Total: 15m 15s | Avg:  7m 37s | Max: 12m 56s | Hits:  98%/308   
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/2   | Total: 15m 15s | Avg:  7m 37s | Max: 12m 56s | Hits:  98%/308   
🟩 cxx
  🟩 GCC13              Pass: 100%/2   | Total: 15m 15s | Avg:  7m 37s | Max: 12m 56s | Hits:  98%/308   
🟩 cxx_family
  🟩 GCC                Pass: 100%/2   | Total: 15m 15s | Avg:  7m 37s | Max: 12m 56s | Hits:  98%/308   
🟩 gpu
  🟩 rtx2080            Pass: 100%/2   | Total: 15m 15s | Avg:  7m 37s | Max: 12m 56s | Hits:  98%/308   
🟩 jobs
  🟩 Build              Pass: 100%/1   | Total:  2m 19s | Avg:  2m 19s | Max:  2m 19s | Hits:  98%/154   
  🟩 Test               Pass: 100%/1   | Total: 12m 56s | Avg: 12m 56s | Max: 12m 56s | Hits:  98%/154   
```

</details>

<li>
<details><summary><h3>🟩 python: Pass: 100%/1   | Total: 40m 45s | Avg: 40m 45s | Max: 40m 45s</h3></summary>

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

</details>

</ul>

<details><summary><h3>👃 Inspect Changes</h3></summary>

### 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
</details>


<details><summary><h2>🏃‍ Runner counts (total jobs: 158)</h2></summary>

|  #   | Runner
|------|------
|  111 | `linux-amd64-cpu16`
|   15 | `windows-amd64-cpu16`
|   10 | `linux-arm64-cpu16`
|    8 | `linux-amd64-gpu-rtx2080-latest-1`
|    6 | `linux-amd64-gpu-rtxa6000-latest-1`
|    5 | `linux-amd64-gpu-h100-latest-1`
|    3 | `linux-amd64-gpu-rtx4090-latest-1`


</details>

</details>

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-02-26T20:42:10Z
body: <details><summary>🟩 CI finished in 1h 10m: Pass: 100%/158 | Total: 23h 32m | Avg:  8m 56s | Max: 40m 14s | Hits:  93%/248540</summary>

<ul>
<li>
<details><summary><h3>🟩 cub: Pass: 100%/45  | Total:  8h 13m | Avg: 10m 57s | Max: 30m 52s | Hits:  93%/53485 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  8h 02m | Avg: 11m 13s | Max: 30m 52s | Hits:  92%/51055 
  🟩 arm64              Pass: 100%/2   | Total: 10m 58s | Avg:  5m 29s | Max:  5m 48s | Hits:  99%/2430  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 49m 51s | Avg:  9m 58s | Max: 27m 33s | Hits:  85%/5908  
  🟩 12.5               Pass: 100%/2   | Total: 20m 57s | Avg: 10m 28s | Max: 10m 30s | Hits:  98%/2248  
  🟩 12.8               Pass: 100%/38  | Total:  7h 02m | Avg: 11m 07s | Max: 30m 52s | Hits:  94%/45329 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 19s | Avg:  4m 39s | Max:  4m 45s | Hits: 100%/2100  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 49m 51s | Avg:  9m 58s | Max: 27m 33s | Hits:  85%/5908  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 20m 57s | Avg: 10m 28s | Max: 10m 30s | Hits:  98%/2248  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  6h 53m | Avg: 11m 28s | Max: 30m 52s | Hits:  93%/43229 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 19s | Avg:  4m 39s | Max:  4m 45s | Hits: 100%/2100  
  🟩 nvcc               Pass: 100%/43  | Total:  8h 04m | Avg: 11m 15s | Max: 30m 52s | Hits:  92%/51385 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 22m 27s | Avg:  5m 36s | Max:  5m 57s | Hits: 100%/4868  
  🟩 Clang15            Pass: 100%/2   | Total: 12m 58s | Avg:  6m 29s | Max:  6m 32s | Hits: 100%/2430  
  🟩 Clang16            Pass: 100%/2   | Total: 11m 56s | Avg:  5m 58s | Max:  6m 01s | Hits: 100%/2430  
  🟩 Clang17            Pass: 100%/2   | Total: 12m 12s | Avg:  6m 06s | Max:  6m 07s | Hits: 100%/2430  
  🟩 Clang18            Pass: 100%/7   | Total:  1h 10m | Avg: 10m 07s | Max: 22m 51s | Hits: 100%/8175  
  🟩 GCC7               Pass: 100%/2   | Total: 11m 21s | Avg:  5m 40s | Max:  5m 50s | Hits:  99%/2434  
  🟩 GCC8               Pass: 100%/1   | Total:  6m 30s | Avg:  6m 30s | Max:  6m 30s | Hits:  99%/1217  
  🟩 GCC9               Pass: 100%/2   | Total: 12m 33s | Avg:  6m 16s | Max:  6m 26s | Hits:  99%/2434  
  🟩 GCC10              Pass: 100%/2   | Total: 12m 28s | Avg:  6m 14s | Max:  6m 15s | Hits:  99%/2434  
  🟩 GCC11              Pass: 100%/2   | Total: 12m 27s | Avg:  6m 13s | Max:  6m 16s | Hits:  99%/2430  
  🟩 GCC12              Pass: 100%/2   | Total: 13m 08s | Avg:  6m 34s | Max:  6m 44s | Hits:  99%/2430  
  🟩 GCC13              Pass: 100%/11  | Total:  2h 36m | Avg: 14m 14s | Max: 23m 20s | Hits:  99%/13365 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 57m 33s | Avg: 28m 46s | Max: 30m 00s | Hits:  15%/2080  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 59m 22s | Avg: 29m 41s | Max: 30m 52s | Hits:  15%/2080  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 20m 57s | Avg: 10m 28s | Max: 10m 30s | Hits:  98%/2248  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  2h 10m | Avg:  7m 40s | Max: 22m 51s | Hits: 100%/20333 
  🟩 GCC                Pass: 100%/22  | Total:  3h 45m | Avg: 10m 13s | Max: 23m 20s | Hits:  99%/26744 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 56m | Avg: 29m 13s | Max: 30m 52s | Hits:  15%/4160  
  🟩 NVHPC              Pass: 100%/2   | Total: 20m 57s | Avg: 10m 28s | Max: 10m 30s | Hits:  98%/2248  
🟩 gpu
  🟩 h100               Pass: 100%/3   | Total: 49m 29s | Avg: 16m 29s | Max: 23m 20s | Hits:  99%/3645  
  🟩 rtx2080            Pass: 100%/34  | Total:  5h 05m | Avg:  8m 59s | Max: 30m 52s | Hits:  91%/40120 
  🟩 rtxa6000           Pass: 100%/8   | Total:  2h 18m | Avg: 17m 17s | Max: 23m 06s | Hits:  99%/9720  
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  5h 23m | Avg:  8m 44s | Max: 30m 52s | Hits:  91%/43765 
  🟩 DeviceLaunch       Pass: 100%/1   | Total: 20m 46s | Avg: 20m 46s | Max: 20m 46s | Hits:  99%/1215  
  🟩 GraphCapture       Pass: 100%/1   | Total: 16m 06s | Avg: 16m 06s | Max: 16m 06s | Hits:  99%/1215  
  🟩 HostLaunch         Pass: 100%/3   | Total:  1h 09m | Avg: 23m 05s | Max: 23m 20s | Hits:  99%/3645  
  🟩 TestGPU            Pass: 100%/3   | Total:  1h 03m | Avg: 21m 17s | Max: 21m 24s | Hits:  99%/3645  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 49m 29s | Avg: 16m 29s | Max: 23m 20s | Hits:  99%/3645  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 54s | Avg:  6m 54s | Max:  6m 54s | Hits:  99%/1215  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  3h 13m | Avg:  9m 39s | Max: 30m 00s | Hits:  88%/23535 
  🟩 20                 Pass: 100%/25  | Total:  5h 00m | Avg: 12m 00s | Max: 30m 52s | Hits:  96%/29950 
```

</details>

<li>
<details><summary><h3>🟩 thrust: Pass: 100%/45  | Total:  6h 31m | Avg:  8m 42s | Max: 33m 20s | Hits:  96%/80136 </h3></summary>

```
🟩 cmake_options
  🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 17m 10s | Avg:  8m 35s | Max: 10m 59s | Hits:  99%/3564  
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  6h 22m | Avg:  8m 53s | Max: 33m 20s | Hits:  96%/76573 
  🟩 arm64              Pass: 100%/2   | Total:  9m 28s | Avg:  4m 44s | Max:  5m 07s | Hits:  99%/3563  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 42m 37s | Avg:  8m 31s | Max: 23m 09s | Hits:  94%/8901  
  🟩 12.5               Pass: 100%/2   | Total: 26m 42s | Avg: 13m 21s | Max: 13m 50s | Hits:  99%/3562  
  🟩 12.8               Pass: 100%/38  | Total:  5h 22m | Avg:  8m 28s | Max: 33m 20s | Hits:  96%/67673 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 53s | Avg:  4m 56s | Max:  4m 58s | Hits: 100%/3562  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 42m 37s | Avg:  8m 31s | Max: 23m 09s | Hits:  94%/8901  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 26m 42s | Avg: 13m 21s | Max: 13m 50s | Hits:  99%/3562  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  5h 12m | Avg:  8m 40s | Max: 33m 20s | Hits:  96%/64111 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 53s | Avg:  4m 56s | Max:  4m 58s | Hits: 100%/3562  
  🟩 nvcc               Pass: 100%/43  | Total:  6h 21m | Avg:  8m 52s | Max: 33m 20s | Hits:  96%/76574 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 19m 59s | Avg:  4m 59s | Max:  5m 20s | Hits: 100%/7124  
  🟩 Clang15            Pass: 100%/2   | Total: 11m 34s | Avg:  5m 47s | Max:  5m 47s | Hits: 100%/3562  
  🟩 Clang16            Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 46s | Hits: 100%/3562  
  🟩 Clang17            Pass: 100%/2   | Total: 11m 00s | Avg:  5m 30s | Max:  5m 45s | Hits: 100%/3562  
  🟩 Clang18            Pass: 100%/7   | Total: 42m 25s | Avg:  6m 03s | Max: 10m 05s | Hits: 100%/12467 
  🟩 GCC7               Pass: 100%/2   | Total: 10m 29s | Avg:  5m 14s | Max:  5m 37s | Hits:  99%/3564  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 14s | Avg:  5m 14s | Max:  5m 14s | Hits:  99%/1782  
  🟩 GCC9               Pass: 100%/2   | Total: 10m 32s | Avg:  5m 16s | Max:  5m 20s | Hits:  99%/3564  
  🟩 GCC10              Pass: 100%/2   | Total: 11m 36s | Avg:  5m 48s | Max:  5m 54s | Hits:  99%/3564  
  🟩 GCC11              Pass: 100%/2   | Total: 11m 04s | Avg:  5m 32s | Max:  5m 41s | Hits:  99%/3564  
  🟩 GCC12              Pass: 100%/2   | Total: 12m 20s | Avg:  6m 10s | Max:  6m 16s | Hits:  99%/3564  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 15m | Avg:  7m 31s | Max: 11m 18s | Hits:  99%/17820 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 46m 37s | Avg: 23m 18s | Max: 23m 28s | Hits:  70%/3550  
  🟩 MSVC14.42          Pass: 100%/3   | Total:  1h 25m | Avg: 28m 35s | Max: 33m 20s | Hits:  70%/5325  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 26m 42s | Avg: 13m 21s | Max: 13m 50s | Hits:  99%/3562  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  1h 36m | Avg:  5m 39s | Max: 10m 05s | Hits: 100%/30277 
  🟩 GCC                Pass: 100%/21  | Total:  2h 16m | Avg:  6m 29s | Max: 11m 18s | Hits:  99%/37422 
  🟩 MSVC               Pass: 100%/5   | Total:  2h 12m | Avg: 26m 28s | Max: 33m 20s | Hits:  70%/8875  
  🟩 NVHPC              Pass: 100%/2   | Total: 26m 42s | Avg: 13m 21s | Max: 13m 50s | Hits:  99%/3562  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 15m 41s | Avg:  7m 50s | Max: 10m 41s | Hits:  99%/3564  
  🟩 rtx2080            Pass: 100%/33  | Total:  4h 11m | Avg:  7m 38s | Max: 26m 38s | Hits:  97%/58769 
  🟩 rtx4090            Pass: 100%/10  | Total:  2h 04m | Avg: 12m 24s | Max: 33m 20s | Hits:  94%/17803 
🟩 jobs
  🟩 Build              Pass: 100%/38  | Total:  5h 00m | Avg:  7m 53s | Max: 26m 38s | Hits:  96%/67671 
  🟩 TestCPU            Pass: 100%/3   | Total: 48m 29s | Avg: 16m 09s | Max: 33m 20s | Hits:  90%/5338  
  🟩 TestGPU            Pass: 100%/4   | Total: 43m 03s | Avg: 10m 45s | Max: 11m 18s | Hits:  99%/7127  
🟩 sm
  🟩 90                 Pass: 100%/2   | Total: 15m 41s | Avg:  7m 50s | Max: 10m 41s | Hits:  99%/3564  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 34s | Avg:  6m 34s | Max:  6m 34s | Hits:  99%/1782  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  2h 52m | Avg:  8m 37s | Max: 26m 38s | Hits:  95%/35611 
  🟩 20                 Pass: 100%/23  | Total:  3h 22m | Avg:  8m 47s | Max: 33m 20s | Hits:  97%/40961 
```

</details>

<li>
<details><summary><h3>🟩 libcudacxx: Pass: 100%/43  | Total:  5h 59m | Avg:  8m 21s | Max: 26m 19s | Hits:  91%/103347</h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/41  | Total:  5h 50m | Avg:  8m 33s | Max: 26m 19s | Hits:  91%/97678 
  🟩 arm64              Pass: 100%/2   | Total:  8m 31s | Avg:  4m 15s | Max:  4m 34s | Hits:  96%/5669  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 45m 41s | Avg:  9m 08s | Max: 21m 45s | Hits:  89%/13711 
  🟩 12.5               Pass: 100%/2   | Total: 17m 09s | Avg:  8m 34s | Max:  8m 44s | Hits:  97%/5614  
  🟩 12.8               Pass: 100%/36  | Total:  4h 56m | Avg:  8m 14s | Max: 26m 19s | Hits:  91%/84022 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 41m 34s | Avg: 20m 47s | Max: 22m 07s | Hits:  27%/5630  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 45m 41s | Avg:  9m 08s | Max: 21m 45s | Hits:  89%/13711 
  🟩 nvcc12.5           Pass: 100%/2   | Total: 17m 09s | Avg:  8m 34s | Max:  8m 44s | Hits:  97%/5614  
  🟩 nvcc12.8           Pass: 100%/34  | Total:  4h 14m | Avg:  7m 29s | Max: 26m 19s | Hits:  96%/78392 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 41m 34s | Avg: 20m 47s | Max: 22m 07s | Hits:  27%/5630  
  🟩 nvcc               Pass: 100%/41  | Total:  5h 17m | Avg:  7m 45s | Max: 26m 19s | Hits:  95%/97717 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 25m 59s | Avg:  6m 29s | Max: 11m 46s | Hits:  87%/11230 
  🟩 Clang15            Pass: 100%/2   | Total:  9m 40s | Avg:  4m 50s | Max:  4m 53s | Hits:  99%/5626  
  🟩 Clang16            Pass: 100%/2   | Total:  9m 02s | Avg:  4m 31s | Max:  4m 49s | Hits:  98%/5626  
  🟩 Clang17            Pass: 100%/2   | Total:  9m 34s | Avg:  4m 47s | Max:  4m 57s | Hits:  97%/5626  
  🟩 Clang18            Pass: 100%/6   | Total:  1h 04m | Avg: 10m 40s | Max: 22m 07s | Hits:  69%/14090 
  🟩 GCC7               Pass: 100%/2   | Total:  7m 25s | Avg:  3m 42s | Max:  3m 50s | Hits:  99%/5564  
  🟩 GCC8               Pass: 100%/1   | Total:  4m 25s | Avg:  4m 25s | Max:  4m 25s | Hits:  97%/2792  
  🟩 GCC9               Pass: 100%/2   | Total:  7m 55s | Avg:  3m 57s | Max:  4m 06s | Hits:  97%/5576  
  🟩 GCC10              Pass: 100%/2   | Total:  8m 11s | Avg:  4m 05s | Max:  4m 10s | Hits:  98%/5632  
  🟩 GCC11              Pass: 100%/2   | Total:  8m 31s | Avg:  4m 15s | Max:  4m 27s | Hits:  97%/5628  
  🟩 GCC12              Pass: 100%/2   | Total:  8m 49s | Avg:  4m 24s | Max:  4m 25s | Hits:  97%/5628  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 22m | Avg:  8m 12s | Max: 16m 30s | Hits:  97%/14351 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 48m 04s | Avg: 24m 02s | Max: 26m 19s | Hits:  70%/5102  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 48m 31s | Avg: 24m 15s | Max: 25m 04s | Hits:  98%/5262  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 17m 09s | Avg:  8m 34s | Max:  8m 44s | Hits:  97%/5614  
🟩 cxx_family
  🟩 Clang              Pass: 100%/16  | Total:  1h 58m | Avg:  7m 23s | Max: 22m 07s | Hits:  85%/42198 
  🟩 GCC                Pass: 100%/21  | Total:  2h 07m | Avg:  6m 03s | Max: 16m 30s | Hits:  97%/45171 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 36m | Avg: 24m 08s | Max: 26m 19s | Hits:  84%/10364 
  🟩 NVHPC              Pass: 100%/2   | Total: 17m 09s | Avg:  8m 34s | Max:  8m 44s | Hits:  97%/5614  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 16m 19s | Avg:  8m 09s | Max: 11m 58s | Hits:  99%/2924  
  🟩 rtx2080            Pass: 100%/41  | Total:  5h 43m | Avg:  8m 22s | Max: 26m 19s | Hits:  91%/100423
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  4h 50m | Avg:  7m 51s | Max: 26m 19s | Hits:  91%/103307
  🟩 NVRTC              Pass: 100%/2   | Total: 31m 59s | Avg: 15m 59s | Max: 16m 30s | Hits:  90%/40    
  🟩 Test               Pass: 100%/3   | Total: 34m 41s | Avg: 11m 33s | Max: 13m 32s
  🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 12s | Avg:  2m 12s | Max:  2m 12s
🟩 sm
  🟩 75                 Pass: 100%/2   | Total: 31m 59s | Avg: 15m 59s | Max: 16m 30s | Hits:  90%/40    
  🟩 90                 Pass: 100%/2   | Total: 16m 19s | Avg:  8m 09s | Max: 11m 58s | Hits:  99%/2924  
  🟩 90;90a;100         Pass: 100%/1   | Total:  4m 33s | Avg:  4m 33s | Max:  4m 33s | Hits:  99%/2924  
🟩 std
  🟩 17                 Pass: 100%/21  | Total:  3h 07m | Avg:  8m 54s | Max: 26m 19s | Hits:  90%/55106 
  🟩 20                 Pass: 100%/21  | Total:  2h 50m | Avg:  8m 06s | Max: 25m 04s | Hits:  93%/48241 
```

</details>

<li>
<details><summary><h3>🟩 cudax: Pass: 100%/22  | Total:  1h 53m | Avg:  5m 10s | Max: 13m 11s | Hits:  97%/11264 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/18  | Total:  1h 42m | Avg:  5m 42s | Max: 13m 11s | Hits:  97%/9036  
  🟩 arm64              Pass: 100%/4   | Total: 11m 09s | Avg:  2m 47s | Max:  2m 56s | Hits:  99%/2228  
🟩 ctk
  🟩 12.0               Pass: 100%/1   | Total: 10m 20s | Avg: 10m 20s | Max: 10m 20s | Hits:  61%/262   
  🟩 12.5               Pass: 100%/2   | Total: 10m 19s | Avg:  5m 09s | Max:  5m 12s | Hits:  96%/710   
  🟩 12.8               Pass: 100%/19  | Total:  1h 33m | Avg:  4m 54s | Max: 13m 11s | Hits:  98%/10292 
🟩 cudacxx
  🟩 nvcc12.0           Pass: 100%/1   | Total: 10m 20s | Avg: 10m 20s | Max: 10m 20s | Hits:  61%/262   
  🟩 nvcc12.5           Pass: 100%/2   | Total: 10m 19s | Avg:  5m 09s | Max:  5m 12s | Hits:  96%/710   
  🟩 nvcc12.8           Pass: 100%/19  | Total:  1h 33m | Avg:  4m 54s | Max: 13m 11s | Hits:  98%/10292 
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/22  | Total:  1h 53m | Avg:  5m 10s | Max: 13m 11s | Hits:  97%/11264 
🟩 cxx
  🟩 Clang14            Pass: 100%/1   | Total:  3m 14s | Avg:  3m 14s | Max:  3m 14s | Hits: 100%/559   
  🟩 Clang15            Pass: 100%/1   | Total:  3m 27s | Avg:  3m 27s | Max:  3m 27s | Hits: 100%/557   
  🟩 Clang16            Pass: 100%/1   | Total:  3m 17s | Avg:  3m 17s | Max:  3m 17s | Hits: 100%/557   
  🟩 Clang17            Pass: 100%/1   | Total:  3m 21s | Avg:  3m 21s | Max:  3m 21s | Hits: 100%/557   
  🟩 Clang18            Pass: 100%/4   | Total: 20m 50s | Avg:  5m 12s | Max: 11m 59s | Hits: 100%/2228  
  🟩 GCC10              Pass: 100%/1   | Total:  3m 05s | Avg:  3m 05s | Max:  3m 05s | Hits:  99%/559   
  🟩 GCC11              Pass: 100%/1   | Total:  3m 09s | Avg:  3m 09s | Max:  3m 09s | Hits:  99%/557   
  🟩 GCC12              Pass: 100%/2   | Total: 16m 41s | Avg:  8m 20s | Max: 13m 11s | Hits:  99%/1114  
  🟩 GCC13              Pass: 100%/6   | Total: 25m 49s | Avg:  4m 18s | Max: 11m 15s | Hits:  99%/3342  
  🟩 MSVC14.39          Pass: 100%/1   | Total: 10m 20s | Avg: 10m 20s | Max: 10m 20s | Hits:  61%/262   
  🟩 MSVC14.42          Pass: 100%/1   | Total: 10m 16s | Avg: 10m 16s | Max: 10m 16s | Hits:  61%/262   
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 10m 19s | Avg:  5m 09s | Max:  5m 12s | Hits:  96%/710   
🟩 cxx_family
  🟩 Clang              Pass: 100%/8   | Total: 34m 09s | Avg:  4m 16s | Max: 11m 59s | Hits: 100%/4458  
  🟩 GCC                Pass: 100%/10  | Total: 48m 44s | Avg:  4m 52s | Max: 13m 11s | Hits:  99%/5572  
  🟩 MSVC               Pass: 100%/2   | Total: 20m 36s | Avg: 10m 18s | Max: 10m 20s | Hits:  61%/524   
  🟩 NVHPC              Pass: 100%/2   | Total: 10m 19s | Avg:  5m 09s | Max:  5m 12s | Hits:  96%/710   
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 14m 14s | Avg:  7m 07s | Max: 11m 15s | Hits:  99%/1114  
  🟩 rtx2080            Pass: 100%/20  | Total:  1h 39m | Avg:  4m 58s | Max: 13m 11s | Hits:  97%/10150 
🟩 jobs
  🟩 Build              Pass: 100%/19  | Total:  1h 17m | Avg:  4m 04s | Max: 10m 20s | Hits:  97%/9593  
  🟩 Test               Pass: 100%/3   | Total: 36m 25s | Avg: 12m 08s | Max: 13m 11s | Hits:  99%/1671  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 17m 10s | Avg:  5m 43s | Max: 11m 15s | Hits:  99%/1671  
  🟩 90a                Pass: 100%/1   | Total:  2m 58s | Avg:  2m 58s | Max:  2m 58s | Hits:  99%/557   
🟩 std
  🟩 17                 Pass: 100%/4   | Total: 13m 36s | Avg:  3m 24s | Max:  5m 07s | Hits:  99%/2026  
  🟩 20                 Pass: 100%/18  | Total:  1h 40m | Avg:  5m 34s | Max: 13m 11s | Hits:  97%/9238  
```

</details>

<li>
<details><summary><h3>🟩 cccl_c_parallel: Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max: 12m 13s | Hits:  98%/308   </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max: 12m 13s | Hits:  98%/308   
🟩 ctk
  🟩 12.8               Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max: 12m 13s | Hits:  98%/308   
🟩 cudacxx
  🟩 nvcc12.8           Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max: 12m 13s | Hits:  98%/308   
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max: 12m 13s | Hits:  98%/308   
🟩 cxx
  🟩 GCC13              Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max: 12m 13s | Hits:  98%/308   
🟩 cxx_family
  🟩 GCC                Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max: 12m 13s | Hits:  98%/308   
🟩 gpu
  🟩 rtx2080            Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max: 12m 13s | Hits:  98%/308   
🟩 jobs
  🟩 Build              Pass: 100%/1   | Total:  2m 13s | Avg:  2m 13s | Max:  2m 13s | Hits:  98%/154   
  🟩 Test               Pass: 100%/1   | Total: 12m 13s | Avg: 12m 13s | Max: 12m 13s | Hits:  98%/154   
```

</details>

<li>
<details><summary><h3>🟩 python: Pass: 100%/1   | Total: 40m 14s | Avg: 40m 14s | Max: 40m 14s</h3></summary>

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

</details>

</ul>

<details><summary><h3>👃 Inspect Changes</h3></summary>

### 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
</details>


<details><summary><h2>🏃‍ Runner counts (total jobs: 158)</h2></summary>

|  #   | Runner
|------|------
|  111 | `linux-amd64-cpu16`
|   15 | `windows-amd64-cpu16`
|   10 | `linux-arm64-cpu16`
|    8 | `linux-amd64-gpu-rtx2080-latest-1`
|    6 | `linux-amd64-gpu-rtxa6000-latest-1`
|    5 | `linux-amd64-gpu-h100-latest-1`
|    3 | `linux-amd64-gpu-rtx4090-latest-1`


</details>

</details>

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-04T00:20:11Z
body: <details><summary>🟩 CI finished in 1h 02m: Pass: 100%/158 | Total: 23h 28m | Avg:  8m 54s | Max: 41m 20s | Hits:  95%/248540</summary>

<ul>
<li>
<details><summary><h3>🟩 cub: Pass: 100%/45  | Total:  8h 25m | Avg: 11m 13s | Max: 34m 38s | Hits:  93%/53485 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  8h 14m | Avg: 11m 29s | Max: 34m 38s | Hits:  92%/51055 
  🟩 arm64              Pass: 100%/2   | Total: 10m 59s | Avg:  5m 29s | Max:  5m 42s | Hits:  99%/2430  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 49m 56s | Avg:  9m 59s | Max: 27m 01s | Hits:  85%/5908  
  🟩 12.5               Pass: 100%/2   | Total: 20m 40s | Avg: 10m 20s | Max: 10m 30s | Hits:  98%/2248  
  🟩 12.8               Pass: 100%/38  | Total:  7h 14m | Avg: 11m 26s | Max: 34m 38s | Hits:  94%/45329 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 49s | Avg:  4m 54s | Max:  4m 58s | Hits: 100%/2100  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 49m 56s | Avg:  9m 59s | Max: 27m 01s | Hits:  85%/5908  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 20m 40s | Avg: 10m 20s | Max: 10m 30s | Hits:  98%/2248  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  7h 04m | Avg: 11m 48s | Max: 34m 38s | Hits:  93%/43229 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 49s | Avg:  4m 54s | Max:  4m 58s | Hits: 100%/2100  
  🟩 nvcc               Pass: 100%/43  | Total:  8h 15m | Avg: 11m 31s | Max: 34m 38s | Hits:  92%/51385 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 22m 42s | Avg:  5m 40s | Max:  5m 52s | Hits: 100%/4868  
  🟩 Clang15            Pass: 100%/2   | Total: 12m 18s | Avg:  6m 09s | Max:  6m 20s | Hits: 100%/2430  
  🟩 Clang16            Pass: 100%/2   | Total: 12m 28s | Avg:  6m 14s | Max:  6m 19s | Hits: 100%/2430  
  🟩 Clang17            Pass: 100%/2   | Total: 12m 24s | Avg:  6m 12s | Max:  6m 13s | Hits: 100%/2430  
  🟩 Clang18            Pass: 100%/7   | Total:  1h 11m | Avg: 10m 15s | Max: 24m 32s | Hits: 100%/8175  
  🟩 GCC7               Pass: 100%/2   | Total: 11m 59s | Avg:  5m 59s | Max:  6m 14s | Hits:  99%/2434  
  🟩 GCC8               Pass: 100%/1   | Total:  6m 17s | Avg:  6m 17s | Max:  6m 17s | Hits:  99%/1217  
  🟩 GCC9               Pass: 100%/2   | Total: 12m 32s | Avg:  6m 16s | Max:  6m 30s | Hits:  99%/2434  
  🟩 GCC10              Pass: 100%/2   | Total: 12m 29s | Avg:  6m 14s | Max:  6m 26s | Hits:  99%/2434  
  🟩 GCC11              Pass: 100%/2   | Total: 12m 32s | Avg:  6m 16s | Max:  6m 17s | Hits:  99%/2430  
  🟩 GCC12              Pass: 100%/2   | Total: 13m 32s | Avg:  6m 46s | Max:  6m 52s | Hits:  99%/2430  
  🟩 GCC13              Pass: 100%/11  | Total:  2h 40m | Avg: 14m 33s | Max: 23m 37s | Hits:  99%/13365 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 56m 37s | Avg: 28m 18s | Max: 29m 36s | Hits:  15%/2080  
  🟩 MSVC14.42          Pass: 100%/2   | Total:  1h 07m | Avg: 33m 31s | Max: 34m 38s | Hits:  15%/2080  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 20m 40s | Avg: 10m 20s | Max: 10m 30s | Hits:  98%/2248  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  2h 11m | Avg:  7m 44s | Max: 24m 32s | Hits: 100%/20333 
  🟩 GCC                Pass: 100%/22  | Total:  3h 49m | Avg: 10m 25s | Max: 23m 37s | Hits:  99%/26744 
  🟩 MSVC               Pass: 100%/4   | Total:  2h 03m | Avg: 30m 55s | Max: 34m 38s | Hits:  15%/4160  
  🟩 NVHPC              Pass: 100%/2   | Total: 20m 40s | Avg: 10m 20s | Max: 10m 30s | Hits:  98%/2248  
🟩 gpu
  🟩 h100               Pass: 100%/3   | Total: 49m 40s | Avg: 16m 33s | Max: 23m 30s | Hits:  99%/3645  
  🟩 rtx2080            Pass: 100%/34  | Total:  5h 13m | Avg:  9m 12s | Max: 34m 38s | Hits:  91%/40120 
  🟩 rtxa6000           Pass: 100%/8   | Total:  2h 22m | Avg: 17m 48s | Max: 24m 32s | Hits:  99%/9720  
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  5h 30m | Avg:  8m 56s | Max: 34m 38s | Hits:  91%/43765 
  🟩 DeviceLaunch       Pass: 100%/1   | Total: 22m 32s | Avg: 22m 32s | Max: 22m 32s | Hits:  99%/1215  
  🟩 GraphCapture       Pass: 100%/1   | Total: 18m 33s | Avg: 18m 33s | Max: 18m 33s | Hits:  99%/1215  
  🟩 HostLaunch         Pass: 100%/3   | Total:  1h 11m | Avg: 23m 53s | Max: 24m 32s | Hits:  99%/3645  
  🟩 TestGPU            Pass: 100%/3   | Total:  1h 02m | Avg: 20m 40s | Max: 21m 13s | Hits:  99%/3645  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 49m 40s | Avg: 16m 33s | Max: 23m 30s | Hits:  99%/3645  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 32s | Avg:  6m 32s | Max:  6m 32s | Hits:  99%/1215  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  3h 16m | Avg:  9m 50s | Max: 32m 25s | Hits:  88%/23535 
  🟩 20                 Pass: 100%/25  | Total:  5h 08m | Avg: 12m 20s | Max: 34m 38s | Hits:  96%/29950 
```

</details>

<li>
<details><summary><h3>🟩 thrust: Pass: 100%/45  | Total:  6h 27m | Avg:  8m 36s | Max: 28m 32s | Hits:  96%/80136 </h3></summary>

```
🟩 cmake_options
  🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 16m 48s | Avg:  8m 24s | Max: 11m 08s | Hits:  99%/3564  
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  6h 17m | Avg:  8m 46s | Max: 28m 32s | Hits:  96%/76573 
  🟩 arm64              Pass: 100%/2   | Total:  9m 30s | Avg:  4m 45s | Max:  5m 06s | Hits:  99%/3563  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 42m 32s | Avg:  8m 30s | Max: 23m 19s | Hits:  94%/8901  
  🟩 12.5               Pass: 100%/2   | Total: 26m 12s | Avg: 13m 06s | Max: 13m 07s | Hits:  99%/3562  
  🟩 12.8               Pass: 100%/38  | Total:  5h 18m | Avg:  8m 22s | Max: 28m 32s | Hits:  96%/67673 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 10m 00s | Avg:  5m 00s | Max:  5m 00s | Hits: 100%/3562  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 42m 32s | Avg:  8m 30s | Max: 23m 19s | Hits:  94%/8901  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 26m 12s | Avg: 13m 06s | Max: 13m 07s | Hits:  99%/3562  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  5h 08m | Avg:  8m 34s | Max: 28m 32s | Hits:  96%/64111 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 10m 00s | Avg:  5m 00s | Max:  5m 00s | Hits: 100%/3562  
  🟩 nvcc               Pass: 100%/43  | Total:  6h 17m | Avg:  8m 46s | Max: 28m 32s | Hits:  96%/76574 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 20m 24s | Avg:  5m 06s | Max:  5m 33s | Hits: 100%/7124  
  🟩 Clang15            Pass: 100%/2   | Total: 10m 58s | Avg:  5m 29s | Max:  5m 40s | Hits: 100%/3562  
  🟩 Clang16            Pass: 100%/2   | Total: 10m 37s | Avg:  5m 18s | Max:  5m 28s | Hits: 100%/3562  
  🟩 Clang17            Pass: 100%/2   | Total: 11m 01s | Avg:  5m 30s | Max:  5m 41s | Hits: 100%/3562  
  🟩 Clang18            Pass: 100%/7   | Total: 41m 45s | Avg:  5m 57s | Max:  9m 19s | Hits: 100%/12467 
  🟩 GCC7               Pass: 100%/2   | Total:  9m 58s | Avg:  4m 59s | Max:  5m 15s | Hits:  99%/3564  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 37s | Avg:  5m 37s | Max:  5m 37s | Hits:  99%/1782  
  🟩 GCC9               Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 42s | Hits:  99%/3564  
  🟩 GCC10              Pass: 100%/2   | Total: 10m 47s | Avg:  5m 23s | Max:  5m 26s | Hits:  99%/3564  
  🟩 GCC11              Pass: 100%/2   | Total: 11m 15s | Avg:  5m 37s | Max:  5m 45s | Hits:  99%/3564  
  🟩 GCC12              Pass: 100%/2   | Total: 12m 05s | Avg:  6m 02s | Max:  6m 04s | Hits:  99%/3564  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 16m | Avg:  7m 38s | Max: 11m 36s | Hits:  99%/17820 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 48m 29s | Avg: 24m 14s | Max: 25m 10s | Hits:  70%/3550  
  🟩 MSVC14.42          Pass: 100%/3   | Total:  1h 20m | Avg: 26m 59s | Max: 28m 32s | Hits:  70%/5325  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 26m 12s | Avg: 13m 06s | Max: 13m 07s | Hits:  99%/3562  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  1h 34m | Avg:  5m 34s | Max:  9m 19s | Hits: 100%/30277 
  🟩 GCC                Pass: 100%/21  | Total:  2h 16m | Avg:  6m 30s | Max: 11m 36s | Hits:  99%/37422 
  🟩 MSVC               Pass: 100%/5   | Total:  2h 09m | Avg: 25m 53s | Max: 28m 32s | Hits:  70%/8875  
  🟩 NVHPC              Pass: 100%/2   | Total: 26m 12s | Avg: 13m 06s | Max: 13m 07s | Hits:  99%/3562  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 15m 18s | Avg:  7m 39s | Max: 10m 44s | Hits:  99%/3564  
  🟩 rtx2080            Pass: 100%/33  | Total:  4h 12m | Avg:  7m 38s | Max: 26m 35s | Hits:  97%/58769 
  🟩 rtx4090            Pass: 100%/10  | Total:  1h 59m | Avg: 11m 56s | Max: 28m 32s | Hits:  94%/17803 
🟩 jobs
  🟩 Build              Pass: 100%/38  | Total:  5h 00m | Avg:  7m 53s | Max: 26m 35s | Hits:  96%/67671 
  🟩 TestCPU            Pass: 100%/3   | Total: 44m 16s | Avg: 14m 45s | Max: 28m 32s | Hits:  90%/5338  
  🟩 TestGPU            Pass: 100%/4   | Total: 42m 47s | Avg: 10m 41s | Max: 11m 36s | Hits:  99%/7127  
🟩 sm
  🟩 90                 Pass: 100%/2   | Total: 15m 18s | Avg:  7m 39s | Max: 10m 44s | Hits:  99%/3564  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 25s | Avg:  6m 25s | Max:  6m 25s | Hits:  99%/1782  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  2h 55m | Avg:  8m 45s | Max: 26m 35s | Hits:  95%/35611 
  🟩 20                 Pass: 100%/23  | Total:  3h 15m | Avg:  8m 29s | Max: 28m 32s | Hits:  97%/40961 
```

</details>

<li>
<details><summary><h3>🟩 libcudacxx: Pass: 100%/43  | Total:  5h 38m | Avg:  7m 52s | Max: 24m 22s | Hits:  94%/103347</h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/41  | Total:  5h 31m | Avg:  8m 04s | Max: 24m 22s | Hits:  94%/97678 
  🟩 arm64              Pass: 100%/2   | Total:  7m 43s | Avg:  3m 51s | Max:  4m 11s | Hits:  98%/5669  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 36m 55s | Avg:  7m 23s | Max: 22m 04s | Hits:  98%/13711 
  🟩 12.5               Pass: 100%/2   | Total: 17m 51s | Avg:  8m 55s | Max:  9m 16s | Hits:  98%/5614  
  🟩 12.8               Pass: 100%/36  | Total:  4h 43m | Avg:  7m 53s | Max: 24m 22s | Hits:  94%/84022 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 43m 57s | Avg: 21m 58s | Max: 24m 19s | Hits:  27%/5630  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 36m 55s | Avg:  7m 23s | Max: 22m 04s | Hits:  98%/13711 
  🟩 nvcc12.5           Pass: 100%/2   | Total: 17m 51s | Avg:  8m 55s | Max:  9m 16s | Hits:  98%/5614  
  🟩 nvcc12.8           Pass: 100%/34  | Total:  4h 00m | Avg:  7m 03s | Max: 24m 22s | Hits:  98%/78392 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 43m 57s | Avg: 21m 58s | Max: 24m 19s | Hits:  27%/5630  
  🟩 nvcc               Pass: 100%/41  | Total:  4h 54m | Avg:  7m 11s | Max: 24m 22s | Hits:  98%/97717 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 17m 06s | Avg:  4m 16s | Max:  4m 52s | Hits:  98%/11230 
  🟩 Clang15            Pass: 100%/2   | Total:  9m 06s | Avg:  4m 33s | Max:  4m 40s | Hits:  99%/5626  
  🟩 Clang16            Pass: 100%/2   | Total:  9m 10s | Avg:  4m 35s | Max:  4m 47s | Hits:  98%/5626  
  🟩 Clang17            Pass: 100%/2   | Total:  9m 02s | Avg:  4m 31s | Max:  4m 31s | Hits:  99%/5626  
  🟩 Clang18            Pass: 100%/6   | Total:  1h 05m | Avg: 10m 56s | Max: 24m 19s | Hits:  70%/14090 
  🟩 GCC7               Pass: 100%/2   | Total:  7m 17s | Avg:  3m 38s | Max:  3m 41s | Hits:  98%/5564  
  🟩 GCC8               Pass: 100%/1   | Total:  3m 45s | Avg:  3m 45s | Max:  3m 45s | Hits:  99%/2792  
  🟩 GCC9               Pass: 100%/2   | Total:  7m 49s | Avg:  3m 54s | Max:  4m 14s | Hits:  98%/5576  
  🟩 GCC10              Pass: 100%/2   | Total:  8m 09s | Avg:  4m 04s | Max:  4m 13s | Hits:  99%/5632  
  🟩 GCC11              Pass: 100%/2   | Total:  8m 30s | Avg:  4m 15s | Max:  4m 24s | Hits:  98%/5628  
  🟩 GCC12              Pass: 100%/2   | Total:  8m 02s | Avg:  4m 01s | Max:  4m 02s | Hits:  99%/5628  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 15m | Avg:  7m 31s | Max: 15m 42s | Hits:  99%/14351 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 45m 06s | Avg: 22m 33s | Max: 23m 02s | Hits:  98%/5102  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 46m 55s | Avg: 23m 27s | Max: 24m 22s | Hits:  98%/5262  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 17m 51s | Avg:  8m 55s | Max:  9m 16s | Hits:  98%/5614  
🟩 cxx_family
  🟩 Clang              Pass: 100%/16  | Total:  1h 50m | Avg:  6m 52s | Max: 24m 19s | Hits:  89%/42198 
  🟩 GCC                Pass: 100%/21  | Total:  1h 58m | Avg:  5m 39s | Max: 15m 42s | Hits:  98%/45171 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 32m | Avg: 23m 00s | Max: 24m 22s | Hits:  98%/10364 
  🟩 NVHPC              Pass: 100%/2   | Total: 17m 51s | Avg:  8m 55s | Max:  9m 16s | Hits:  98%/5614  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 17m 10s | Avg:  8m 35s | Max: 12m 58s | Hits:  99%/2924  
  🟩 rtx2080            Pass: 100%/41  | Total:  5h 21m | Avg:  7m 50s | Max: 24m 22s | Hits:  94%/100423
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  4h 35m | Avg:  7m 26s | Max: 24m 22s | Hits:  94%/103307
  🟩 NVRTC              Pass: 100%/2   | Total: 30m 47s | Avg: 15m 23s | Max: 15m 42s | Hits:  90%/40    
  🟩 Test               Pass: 100%/3   | Total: 30m 29s | Avg: 10m 09s | Max: 12m 58s
  🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 10s | Avg:  2m 10s | Max:  2m 10s
🟩 sm
  🟩 75                 Pass: 100%/2   | Total: 30m 47s | Avg: 15m 23s | Max: 15m 42s | Hits:  90%/40    
  🟩 90                 Pass: 100%/2   | Total: 17m 10s | Avg:  8m 35s | Max: 12m 58s | Hits:  99%/2924  
  🟩 90;90a;100         Pass: 100%/1   | Total:  4m 17s | Avg:  4m 17s | Max:  4m 17s | Hits:  99%/2924  
🟩 std
  🟩 17                 Pass: 100%/21  | Total:  2h 54m | Avg:  8m 18s | Max: 23m 02s | Hits:  95%/55106 
  🟩 20                 Pass: 100%/21  | Total:  2h 42m | Avg:  7m 42s | Max: 24m 22s | Hits:  94%/48241 
```

</details>

<li>
<details><summary><h3>🟩 cudax: Pass: 100%/22  | Total:  1h 54m | Avg:  5m 13s | Max: 13m 52s | Hits:  97%/11264 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/18  | Total:  1h 43m | Avg:  5m 46s | Max: 13m 52s | Hits:  97%/9036  
  🟩 arm64              Pass: 100%/4   | Total: 11m 03s | Avg:  2m 45s | Max:  2m 50s | Hits:  99%/2228  
🟩 ctk
  🟩 12.0               Pass: 100%/1   | Total: 10m 08s | Avg: 10m 08s | Max: 10m 08s | Hits:  61%/262   
  🟩 12.5               Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 34s | Hits:  96%/710   
  🟩 12.8               Pass: 100%/19  | Total:  1h 33m | Avg:  4m 55s | Max: 13m 52s | Hits:  98%/10292 
🟩 cudacxx
  🟩 nvcc12.0           Pass: 100%/1   | Total: 10m 08s | Avg: 10m 08s | Max: 10m 08s | Hits:  61%/262   
  🟩 nvcc12.5           Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 34s | Hits:  96%/710   
  🟩 nvcc12.8           Pass: 100%/19  | Total:  1h 33m | Avg:  4m 55s | Max: 13m 52s | Hits:  98%/10292 
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/22  | Total:  1h 54m | Avg:  5m 13s | Max: 13m 52s | Hits:  97%/11264 
🟩 cxx
  🟩 Clang14            Pass: 100%/1   | Total:  3m 17s | Avg:  3m 17s | Max:  3m 17s | Hits: 100%/559   
  🟩 Clang15            Pass: 100%/1   | Total:  3m 34s | Avg:  3m 34s | Max:  3m 34s | Hits: 100%/557   
  🟩 Clang16            Pass: 100%/1   | Total:  3m 17s | Avg:  3m 17s | Max:  3m 17s | Hits: 100%/557   
  🟩 Clang17            Pass: 100%/1   | Total:  3m 28s | Avg:  3m 28s | Max:  3m 28s | Hits: 100%/557   
  🟩 Clang18            Pass: 100%/4   | Total: 20m 20s | Avg:  5m 05s | Max: 11m 36s | Hits: 100%/2228  
  🟩 GCC10              Pass: 100%/1   | Total:  3m 09s | Avg:  3m 09s | Max:  3m 09s | Hits:  99%/559   
  🟩 GCC11              Pass: 100%/1   | Total:  3m 09s | Avg:  3m 09s | Max:  3m 09s | Hits:  99%/557   
  🟩 GCC12              Pass: 100%/2   | Total: 15m 41s | Avg:  7m 50s | Max: 12m 16s | Hits:  99%/1114  
  🟩 GCC13              Pass: 100%/6   | Total: 28m 44s | Avg:  4m 47s | Max: 13m 52s | Hits:  99%/3342  
  🟩 MSVC14.39          Pass: 100%/1   | Total: 10m 08s | Avg: 10m 08s | Max: 10m 08s | Hits:  61%/262   
  🟩 MSVC14.42          Pass: 100%/1   | Total:  9m 01s | Avg:  9m 01s | Max:  9m 01s | Hits:  61%/262   
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 34s | Hits:  96%/710   
🟩 cxx_family
  🟩 Clang              Pass: 100%/8   | Total: 33m 56s | Avg:  4m 14s | Max: 11m 36s | Hits: 100%/4458  
  🟩 GCC                Pass: 100%/10  | Total: 50m 43s | Avg:  5m 04s | Max: 13m 52s | Hits:  99%/5572  
  🟩 MSVC               Pass: 100%/2   | Total: 19m 09s | Avg:  9m 34s | Max: 10m 08s | Hits:  61%/524   
  🟩 NVHPC              Pass: 100%/2   | Total: 11m 07s | Avg:  5m 33s | Max:  5m 34s | Hits:  96%/710   
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 17m 04s | Avg:  8m 32s | Max: 13m 52s | Hits:  99%/1114  
  🟩 rtx2080            Pass: 100%/20  | Total:  1h 37m | Avg:  4m 53s | Max: 12m 16s | Hits:  97%/10150 
🟩 jobs
  🟩 Build              Pass: 100%/19  | Total:  1h 17m | Avg:  4m 03s | Max: 10m 08s | Hits:  97%/9593  
  🟩 Test               Pass: 100%/3   | Total: 37m 44s | Avg: 12m 34s | Max: 13m 52s | Hits:  99%/1671  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 20m 05s | Avg:  6m 41s | Max: 13m 52s | Hits:  99%/1671  
  🟩 90a                Pass: 100%/1   | Total:  3m 03s | Avg:  3m 03s | Max:  3m 03s | Hits:  99%/557   
🟩 std
  🟩 17                 Pass: 100%/4   | Total: 14m 07s | Avg:  3m 31s | Max:  5m 33s | Hits:  99%/2026  
  🟩 20                 Pass: 100%/18  | Total:  1h 40m | Avg:  5m 36s | Max: 13m 52s | Hits:  97%/9238  
```

</details>

<li>
<details><summary><h3>🟩 cccl_c_parallel: Pass: 100%/2   | Total: 21m 17s | Avg: 10m 38s | Max: 19m 02s | Hits:  98%/308   </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/2   | Total: 21m 17s | Avg: 10m 38s | Max: 19m 02s | Hits:  98%/308   
🟩 ctk
  🟩 12.8               Pass: 100%/2   | Total: 21m 17s | Avg: 10m 38s | Max: 19m 02s | Hits:  98%/308   
🟩 cudacxx
  🟩 nvcc12.8           Pass: 100%/2   | Total: 21m 17s | Avg: 10m 38s | Max: 19m 02s | Hits:  98%/308   
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/2   | Total: 21m 17s | Avg: 10m 38s | Max: 19m 02s | Hits:  98%/308   
🟩 cxx
  🟩 GCC13              Pass: 100%/2   | Total: 21m 17s | Avg: 10m 38s | Max: 19m 02s | Hits:  98%/308   
🟩 cxx_family
  🟩 GCC                Pass: 100%/2   | Total: 21m 17s | Avg: 10m 38s | Max: 19m 02s | Hits:  98%/308   
🟩 gpu
  🟩 rtx2080            Pass: 100%/2   | Total: 21m 17s | Avg: 10m 38s | Max: 19m 02s | Hits:  98%/308   
🟩 jobs
  🟩 Build              Pass: 100%/1   | Total:  2m 15s | Avg:  2m 15s | Max:  2m 15s | Hits:  98%/154   
  🟩 Test               Pass: 100%/1   | Total: 19m 02s | Avg: 19m 02s | Max: 19m 02s | Hits:  98%/154   
```

</details>

<li>
<details><summary><h3>🟩 python: Pass: 100%/1   | Total: 41m 20s | Avg: 41m 20s | Max: 41m 20s</h3></summary>

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

</details>

</ul>

<details><summary><h3>👃 Inspect Changes</h3></summary>

### 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
</details>


<details><summary><h2>🏃‍ Runner counts (total jobs: 158)</h2></summary>

|  #   | Runner
|------|------
|  111 | `linux-amd64-cpu16`
|   15 | `windows-amd64-cpu16`
|   10 | `linux-arm64-cpu16`
|    8 | `linux-amd64-gpu-rtx2080-latest-1`
|    6 | `linux-amd64-gpu-rtxa6000-latest-1`
|    5 | `linux-amd64-gpu-h100-latest-1`
|    3 | `linux-amd64-gpu-rtx4090-latest-1`


</details>

</details>

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-04T20:41:53Z
body: <details><summary>🟨 CI finished in 1h 08m: Pass:  99%/158 | Total: 23h 30m | Avg:  8m 55s | Max: 40m 27s | Hits:  95%/248520</summary>

<ul>
<li>
<details><summary><h3>🟨 libcudacxx: Pass:  97%/43  | Total:  5h 46m | Avg:  8m 02s | Max: 28m 53s | Hits:  94%/103327</h3></summary>

```
🔍 cpu: amd64 🔍
  🔍 amd64              Pass:  97%/41  | Total:  5h 37m | Avg:  8m 14s | Max: 28m 53s | Hits:  94%/97658 
  🟩 arm64              Pass: 100%/2   | Total:  8m 15s | Avg:  4m 07s | Max:  4m 15s | Hits:  97%/5669  
🔍 ctk: 12.8 🔍
  🟩 12.0               Pass: 100%/5   | Total: 37m 57s | Avg:  7m 35s | Max: 23m 36s | Hits:  99%/13711 
  🟩 12.5               Pass: 100%/2   | Total: 16m 52s | Avg:  8m 26s | Max:  8m 56s | Hits:  97%/5614  
  🔍 12.8               Pass:  97%/36  | Total:  4h 51m | Avg:  8m 05s | Max: 28m 53s | Hits:  93%/84002 
🔍 cudacxx: nvcc12.8 🔍
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 41m 09s | Avg: 20m 34s | Max: 20m 52s | Hits:  27%/5630  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 37m 57s | Avg:  7m 35s | Max: 23m 36s | Hits:  99%/13711 
  🟩 nvcc12.5           Pass: 100%/2   | Total: 16m 52s | Avg:  8m 26s | Max:  8m 56s | Hits:  97%/5614  
  🔍 nvcc12.8           Pass:  97%/34  | Total:  4h 10m | Avg:  7m 21s | Max: 28m 53s | Hits:  98%/78372 
🔍 cudacxx_family: nvcc 🔍
  🟩 ClangCUDA          Pass: 100%/2   | Total: 41m 09s | Avg: 20m 34s | Max: 20m 52s | Hits:  27%/5630  
  🔍 nvcc               Pass:  97%/41  | Total:  5h 04m | Avg:  7m 26s | Max: 28m 53s | Hits:  98%/97697 
🔍 cxx: GCC13 🔍
  🟩 Clang14            Pass: 100%/4   | Total: 16m 59s | Avg:  4m 14s | Max:  4m 41s | Hits:  98%/11230 
  🟩 Clang15            Pass: 100%/2   | Total:  9m 12s | Avg:  4m 36s | Max:  4m 37s | Hits:  98%/5626  
  🟩 Clang16            Pass: 100%/2   | Total:  9m 08s | Avg:  4m 34s | Max:  4m 42s | Hits:  98%/5626  
  🟩 Clang17            Pass: 100%/2   | Total:  9m 11s | Avg:  4m 35s | Max:  4m 45s | Hits:  98%/5626  
  🟩 Clang18            Pass: 100%/6   | Total:  1h 03m | Avg: 10m 32s | Max: 20m 52s | Hits:  69%/14090 
  🟩 GCC7               Pass: 100%/2   | Total:  7m 11s | Avg:  3m 35s | Max:  3m 53s | Hits:  98%/5564  
  🟩 GCC8               Pass: 100%/1   | Total:  3m 41s | Avg:  3m 41s | Max:  3m 41s | Hits:  99%/2792  
  🟩 GCC9               Pass: 100%/2   | Total:  7m 13s | Avg:  3m 36s | Max:  3m 48s | Hits:  99%/5576  
  🟩 GCC10              Pass: 100%/2   | Total:  8m 28s | Avg:  4m 14s | Max:  4m 16s | Hits:  97%/5632  
  🟩 GCC11              Pass: 100%/2   | Total:  8m 04s | Avg:  4m 02s | Max:  4m 09s | Hits:  99%/5628  
  🟩 GCC12              Pass: 100%/2   | Total:  8m 40s | Avg:  4m 20s | Max:  4m 30s | Hits:  97%/5628  
  🔍 GCC13              Pass:  90%/10  | Total:  1h 16m | Avg:  7m 37s | Max: 15m 43s | Hits:  98%/14331 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 48m 29s | Avg: 24m 14s | Max: 24m 53s | Hits:  99%/5102  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 53m 17s | Avg: 26m 38s | Max: 28m 53s | Hits:  98%/5262  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 16m 52s | Avg:  8m 26s | Max:  8m 56s | Hits:  97%/5614  
🔍 cxx_family: GCC 🔍
  🟩 Clang              Pass: 100%/16  | Total:  1h 47m | Avg:  6m 44s | Max: 20m 52s | Hits:  88%/42198 
  🔍 GCC                Pass:  95%/21  | Total:  1h 59m | Avg:  5m 41s | Max: 15m 43s | Hits:  98%/45151 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 41m | Avg: 25m 26s | Max: 28m 53s | Hits:  98%/10364 
  🟩 NVHPC              Pass: 100%/2   | Total: 16m 52s | Avg:  8m 26s | Max:  8m 56s | Hits:  97%/5614  
🔍 gpu: rtx2080 🔍
  🟩 h100               Pass: 100%/2   | Total: 17m 25s | Avg:  8m 42s | Max: 13m 20s | Hits:  99%/2924  
  🔍 rtx2080            Pass:  97%/41  | Total:  5h 28m | Avg:  8m 00s | Max: 28m 53s | Hits:  94%/100403
🔍 jobs: NVRTC 🔍
  🟩 Build              Pass: 100%/37  | Total:  4h 42m | Avg:  7m 37s | Max: 28m 53s | Hits:  94%/103307
  🔍 NVRTC              Pass:  50%/2   | Total: 30m 26s | Avg: 15m 13s | Max: 15m 43s | Hits:  90%/20    
  🟩 Test               Pass: 100%/3   | Total: 31m 12s | Avg: 10m 24s | Max: 13m 20s
  🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 15s | Avg:  2m 15s | Max:  2m 15s
🔍 sm: 75 🔍
  🔍 75                 Pass:  50%/2   | Total: 30m 26s | Avg: 15m 13s | Max: 15m 43s | Hits:  90%/20    
  🟩 90                 Pass: 100%/2   | Total: 17m 25s | Avg:  8m 42s | Max: 13m 20s | Hits:  99%/2924  
  🟩 90;90a;100         Pass: 100%/1   | Total:  4m 45s | Avg:  4m 45s | Max:  4m 45s | Hits:  99%/2924  
🔍 std: 20 🔍
  🟩 17                 Pass: 100%/21  | Total:  2h 58m | Avg:  8m 28s | Max: 24m 53s | Hits:  95%/55106 
  🔍 20                 Pass:  95%/21  | Total:  2h 45m | Avg:  7m 53s | Max: 28m 53s | Hits:  94%/48221 
```

</details>

<li>
<details><summary><h3>🟩 cub: Pass: 100%/45  | Total:  8h 19m | Avg: 11m 06s | Max: 31m 18s | Hits:  93%/53485 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  8h 08m | Avg: 11m 22s | Max: 31m 18s | Hits:  92%/51055 
  🟩 arm64              Pass: 100%/2   | Total: 10m 52s | Avg:  5m 26s | Max:  5m 46s | Hits:  99%/2430  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 51m 57s | Avg: 10m 23s | Max: 29m 17s | Hits:  85%/5908  
  🟩 12.5               Pass: 100%/2   | Total: 19m 05s | Avg:  9m 32s | Max:  9m 42s | Hits:  98%/2248  
  🟩 12.8               Pass: 100%/38  | Total:  7h 08m | Avg: 11m 16s | Max: 31m 18s | Hits:  94%/45329 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 25s | Avg:  4m 42s | Max:  4m 47s | Hits: 100%/2100  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 51m 57s | Avg: 10m 23s | Max: 29m 17s | Hits:  85%/5908  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 19m 05s | Avg:  9m 32s | Max:  9m 42s | Hits:  98%/2248  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  6h 59m | Avg: 11m 38s | Max: 31m 18s | Hits:  93%/43229 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 25s | Avg:  4m 42s | Max:  4m 47s | Hits: 100%/2100  
  🟩 nvcc               Pass: 100%/43  | Total:  8h 10m | Avg: 11m 24s | Max: 31m 18s | Hits:  92%/51385 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 23m 21s | Avg:  5m 50s | Max:  6m 26s | Hits: 100%/4868  
  🟩 Clang15            Pass: 100%/2   | Total: 12m 23s | Avg:  6m 11s | Max:  6m 12s | Hits: 100%/2430  
  🟩 Clang16            Pass: 100%/2   | Total: 12m 09s | Avg:  6m 04s | Max:  6m 09s | Hits: 100%/2430  
  🟩 Clang17            Pass: 100%/2   | Total: 12m 35s | Avg:  6m 17s | Max:  6m 25s | Hits: 100%/2430  
  🟩 Clang18            Pass: 100%/7   | Total:  1h 09m | Avg:  9m 56s | Max: 22m 44s | Hits: 100%/8175  
  🟩 GCC7               Pass: 100%/2   | Total: 11m 24s | Avg:  5m 42s | Max:  5m 51s | Hits:  99%/2434  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 54s | Avg:  5m 54s | Max:  5m 54s | Hits:  99%/1217  
  🟩 GCC9               Pass: 100%/2   | Total: 12m 14s | Avg:  6m 07s | Max:  6m 08s | Hits:  99%/2434  
  🟩 GCC10              Pass: 100%/2   | Total: 12m 14s | Avg:  6m 07s | Max:  6m 09s | Hits:  99%/2434  
  🟩 GCC11              Pass: 100%/2   | Total: 12m 52s | Avg:  6m 26s | Max:  6m 40s | Hits:  99%/2430  
  🟩 GCC12              Pass: 100%/2   | Total: 13m 30s | Avg:  6m 45s | Max:  6m 58s | Hits:  99%/2430  
  🟩 GCC13              Pass: 100%/11  | Total:  2h 39m | Avg: 14m 31s | Max: 24m 49s | Hits:  99%/13365 
  🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 00m | Avg: 30m 02s | Max: 30m 47s | Hits:  15%/2080  
  🟩 MSVC14.42          Pass: 100%/2   | Total:  1h 02m | Avg: 31m 17s | Max: 31m 18s | Hits:  15%/2080  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 19m 05s | Avg:  9m 32s | Max:  9m 42s | Hits:  98%/2248  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  2h 10m | Avg:  7m 38s | Max: 22m 44s | Hits: 100%/20333 
  🟩 GCC                Pass: 100%/22  | Total:  3h 47m | Avg: 10m 21s | Max: 24m 49s | Hits:  99%/26744 
  🟩 MSVC               Pass: 100%/4   | Total:  2h 02m | Avg: 30m 39s | Max: 31m 18s | Hits:  15%/4160  
  🟩 NVHPC              Pass: 100%/2   | Total: 19m 05s | Avg:  9m 32s | Max:  9m 42s | Hits:  98%/2248  
🟩 gpu
  🟩 h100               Pass: 100%/3   | Total: 49m 26s | Avg: 16m 28s | Max: 22m 51s | Hits:  99%/3645  
  🟩 rtx2080            Pass: 100%/34  | Total:  5h 09m | Avg:  9m 06s | Max: 31m 18s | Hits:  91%/40120 
  🟩 rtxa6000           Pass: 100%/8   | Total:  2h 20m | Avg: 17m 32s | Max: 24m 49s | Hits:  99%/9720  
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  5h 27m | Avg:  8m 51s | Max: 31m 18s | Hits:  91%/43765 
  🟩 DeviceLaunch       Pass: 100%/1   | Total: 20m 51s | Avg: 20m 51s | Max: 20m 51s | Hits:  99%/1215  
  🟩 GraphCapture       Pass: 100%/1   | Total: 16m 44s | Avg: 16m 44s | Max: 16m 44s | Hits:  99%/1215  
  🟩 HostLaunch         Pass: 100%/3   | Total:  1h 10m | Avg: 23m 28s | Max: 24m 49s | Hits:  99%/3645  
  🟩 TestGPU            Pass: 100%/3   | Total:  1h 03m | Avg: 21m 14s | Max: 21m 53s | Hits:  99%/3645  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 49m 26s | Avg: 16m 28s | Max: 22m 51s | Hits:  99%/3645  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 40s | Avg:  6m 40s | Max:  6m 40s | Hits:  99%/1215  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  3h 17m | Avg:  9m 53s | Max: 31m 18s | Hits:  88%/23535 
  🟩 20                 Pass: 100%/25  | Total:  5h 01m | Avg: 12m 04s | Max: 31m 17s | Hits:  96%/29950 
```

</details>

<li>
<details><summary><h3>🟩 thrust: Pass: 100%/45  | Total:  6h 32m | Avg:  8m 43s | Max: 31m 27s | Hits:  96%/80136 </h3></summary>

```
🟩 cmake_options
  🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 16m 25s | Avg:  8m 12s | Max: 10m 39s | Hits:  99%/3564  
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  6h 23m | Avg:  8m 54s | Max: 31m 27s | Hits:  96%/76573 
  🟩 arm64              Pass: 100%/2   | Total:  9m 34s | Avg:  4m 47s | Max:  5m 06s | Hits:  99%/3563  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 45m 06s | Avg:  9m 01s | Max: 25m 48s | Hits:  94%/8901  
  🟩 12.5               Pass: 100%/2   | Total: 26m 45s | Avg: 13m 22s | Max: 13m 31s | Hits:  99%/3562  
  🟩 12.8               Pass: 100%/38  | Total:  5h 20m | Avg:  8m 26s | Max: 31m 27s | Hits:  96%/67673 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 53s | Avg:  4m 56s | Max:  5m 01s | Hits: 100%/3562  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 45m 06s | Avg:  9m 01s | Max: 25m 48s | Hits:  94%/8901  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 26m 45s | Avg: 13m 22s | Max: 13m 31s | Hits:  99%/3562  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  5h 10m | Avg:  8m 38s | Max: 31m 27s | Hits:  96%/64111 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 53s | Avg:  4m 56s | Max:  5m 01s | Hits: 100%/3562  
  🟩 nvcc               Pass: 100%/43  | Total:  6h 22m | Avg:  8m 54s | Max: 31m 27s | Hits:  96%/76574 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 19m 54s | Avg:  4m 58s | Max:  5m 30s | Hits: 100%/7124  
  🟩 Clang15            Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 26s | Hits: 100%/3562  
  🟩 Clang16            Pass: 100%/2   | Total: 10m 20s | Avg:  5m 10s | Max:  5m 17s | Hits: 100%/3562  
  🟩 Clang17            Pass: 100%/2   | Total: 10m 30s | Avg:  5m 15s | Max:  5m 18s | Hits: 100%/3562  
  🟩 Clang18            Pass: 100%/7   | Total: 43m 10s | Avg:  6m 10s | Max: 10m 13s | Hits: 100%/12467 
  🟩 GCC7               Pass: 100%/2   | Total: 10m 31s | Avg:  5m 15s | Max:  5m 41s | Hits:  99%/3564  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 40s | Avg:  5m 40s | Max:  5m 40s | Hits:  99%/1782  
  🟩 GCC9               Pass: 100%/2   | Total: 11m 01s | Avg:  5m 30s | Max:  5m 51s | Hits:  99%/3564  
  🟩 GCC10              Pass: 100%/2   | Total: 10m 27s | Avg:  5m 13s | Max:  5m 17s | Hits:  99%/3564  
  🟩 GCC11              Pass: 100%/2   | Total: 10m 48s | Avg:  5m 24s | Max:  5m 31s | Hits:  99%/3564  
  🟩 GCC12              Pass: 100%/2   | Total: 11m 11s | Avg:  5m 35s | Max:  5m 41s | Hits:  99%/3564  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 14m | Avg:  7m 27s | Max: 10m 57s | Hits:  99%/17820 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 52m 38s | Avg: 26m 19s | Max: 26m 50s | Hits:  70%/3550  
  🟩 MSVC14.42          Pass: 100%/3   | Total:  1h 24m | Avg: 28m 11s | Max: 31m 27s | Hits:  70%/5325  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 26m 45s | Avg: 13m 22s | Max: 13m 31s | Hits:  99%/3562  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  1h 34m | Avg:  5m 33s | Max: 10m 13s | Hits: 100%/30277 
  🟩 GCC                Pass: 100%/21  | Total:  2h 14m | Avg:  6m 23s | Max: 10m 57s | Hits:  99%/37422 
  🟩 MSVC               Pass: 100%/5   | Total:  2h 17m | Avg: 27m 26s | Max: 31m 27s | Hits:  70%/8875  
  🟩 NVHPC              Pass: 100%/2   | Total: 26m 45s | Avg: 13m 22s | Max: 13m 31s | Hits:  99%/3562  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 15m 22s | Avg:  7m 41s | Max: 10m 41s | Hits:  99%/3564  
  🟩 rtx2080            Pass: 100%/33  | Total:  4h 12m | Avg:  7m 39s | Max: 26m 50s | Hits:  97%/58769 
  🟩 rtx4090            Pass: 100%/10  | Total:  2h 04m | Avg: 12m 26s | Max: 31m 27s | Hits:  94%/17803 
🟩 jobs
  🟩 Build              Pass: 100%/38  | Total:  5h 03m | Avg:  7m 58s | Max: 28m 04s | Hits:  96%/67671 
  🟩 TestCPU            Pass: 100%/3   | Total: 47m 02s | Avg: 15m 40s | Max: 31m 27s | Hits:  90%/5338  
  🟩 TestGPU            Pass: 100%/4   | Total: 42m 30s | Avg: 10m 37s | Max: 10m 57s | Hits:  99%/7127  
🟩 sm
  🟩 90                 Pass: 100%/2   | Total: 15m 22s | Avg:  7m 41s | Max: 10m 41s | Hits:  99%/3564  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 18s | Avg:  6m 18s | Max:  6m 18s | Hits:  99%/1782  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  2h 55m | Avg:  8m 47s | Max: 26m 50s | Hits:  95%/35611 
  🟩 20                 Pass: 100%/23  | Total:  3h 20m | Avg:  8m 42s | Max: 31m 27s | Hits:  97%/40961 
```

</details>

<li>
<details><summary><h3>🟩 cudax: Pass: 100%/22  | Total:  1h 56m | Avg:  5m 16s | Max: 12m 17s | Hits:  97%/11264 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/18  | Total:  1h 45m | Avg:  5m 50s | Max: 12m 17s | Hits:  97%/9036  
  🟩 arm64              Pass: 100%/4   | Total: 11m 02s | Avg:  2m 45s | Max:  2m 50s | Hits:  99%/2228  
🟩 ctk
  🟩 12.0               Pass: 100%/1   | Total: 12m 17s | Avg: 12m 17s | Max: 12m 17s | Hits:  61%/262   
  🟩 12.5               Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 25s | Hits:  96%/710   
  🟩 12.8               Pass: 100%/19  | Total:  1h 33m | Avg:  4m 54s | Max: 12m 16s | Hits:  98%/10292 
🟩 cudacxx
  🟩 nvcc12.0           Pass: 100%/1   | Total: 12m 17s | Avg: 12m 17s | Max: 12m 17s | Hits:  61%/262   
  🟩 nvcc12.5           Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 25s | Hits:  96%/710   
  🟩 nvcc12.8           Pass: 100%/19  | Total:  1h 33m | Avg:  4m 54s | Max: 12m 16s | Hits:  98%/10292 
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/22  | Total:  1h 56m | Avg:  5m 16s | Max: 12m 17s | Hits:  97%/11264 
🟩 cxx
  🟩 Clang14            Pass: 100%/1   | Total:  3m 10s | Avg:  3m 10s | Max:  3m 10s | Hits: 100%/559   
  🟩 Clang15            Pass: 100%/1   | Total:  3m 24s | Avg:  3m 24s | Max:  3m 24s | Hits: 100%/557   
  🟩 Clang16            Pass: 100%/1   | Total:  3m 18s | Avg:  3m 18s | Max:  3m 18s | Hits: 100%/557   
  🟩 Clang17            Pass: 100%/1   | Total:  3m 29s | Avg:  3m 29s | Max:  3m 29s | Hits: 100%/557   
  🟩 Clang18            Pass: 100%/4   | Total: 20m 34s | Avg:  5m 08s | Max: 11m 50s | Hits: 100%/2228  
  🟩 GCC10              Pass: 100%/1   | Total:  3m 13s | Avg:  3m 13s | Max:  3m 13s | Hits:  99%/559   
  🟩 GCC11              Pass: 100%/1   | Total:  3m 22s | Avg:  3m 22s | Max:  3m 22s | Hits:  99%/557   
  🟩 GCC12              Pass: 100%/2   | Total: 15m 47s | Avg:  7m 53s | Max: 12m 16s | Hits:  99%/1114  
  🟩 GCC13              Pass: 100%/6   | Total: 26m 04s | Avg:  4m 20s | Max: 11m 14s | Hits:  99%/3342  
  🟩 MSVC14.39          Pass: 100%/1   | Total: 12m 17s | Avg: 12m 17s | Max: 12m 17s | Hits:  61%/262   
  🟩 MSVC14.42          Pass: 100%/1   | Total: 10m 53s | Avg: 10m 53s | Max: 10m 53s | Hits:  61%/262   
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 25s | Hits:  96%/710   
🟩 cxx_family
  🟩 Clang              Pass: 100%/8   | Total: 33m 55s | Avg:  4m 14s | Max: 11m 50s | Hits: 100%/4458  
  🟩 GCC                Pass: 100%/10  | Total: 48m 26s | Avg:  4m 50s | Max: 12m 16s | Hits:  99%/5572  
  🟩 MSVC               Pass: 100%/2   | Total: 23m 10s | Avg: 11m 35s | Max: 12m 17s | Hits:  61%/524   
  🟩 NVHPC              Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 25s | Hits:  96%/710   
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 14m 16s | Avg:  7m 08s | Max: 11m 14s | Hits:  99%/1114  
  🟩 rtx2080            Pass: 100%/20  | Total:  1h 41m | Avg:  5m 05s | Max: 12m 17s | Hits:  97%/10150 
🟩 jobs
  🟩 Build              Pass: 100%/19  | Total:  1h 20m | Avg:  4m 15s | Max: 12m 17s | Hits:  97%/9593  
  🟩 Test               Pass: 100%/3   | Total: 35m 20s | Avg: 11m 46s | Max: 12m 16s | Hits:  99%/1671  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 17m 30s | Avg:  5m 50s | Max: 11m 14s | Hits:  99%/1671  
  🟩 90a                Pass: 100%/1   | Total:  2m 57s | Avg:  2m 57s | Max:  2m 57s | Hits:  99%/557   
🟩 std
  🟩 17                 Pass: 100%/4   | Total: 14m 11s | Avg:  3m 32s | Max:  5m 25s | Hits:  99%/2026  
  🟩 20                 Pass: 100%/18  | Total:  1h 42m | Avg:  5m 40s | Max: 12m 17s | Hits:  97%/9238  
```

</details>

<li>
<details><summary><h3>🟩 cccl_c_parallel: Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 ctk
  🟩 12.8               Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 cudacxx
  🟩 nvcc12.8           Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 cxx
  🟩 GCC13              Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 cxx_family
  🟩 GCC                Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 gpu
  🟩 rtx2080            Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 jobs
  🟩 Build              Pass: 100%/1   | Total:  2m 13s | Avg:  2m 13s | Max:  2m 13s | Hits:  98%/154   
  🟩 Test               Pass: 100%/1   | Total: 12m 49s | Avg: 12m 49s | Max: 12m 49s | Hits:  98%/154   
```

</details>

<li>
<details><summary><h3>🟩 python: Pass: 100%/1   | Total: 40m 27s | Avg: 40m 27s | Max: 40m 27s</h3></summary>

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

</details>

</ul>

<details><summary><h3>👃 Inspect Changes</h3></summary>

### 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
</details>


<details><summary><h2>🏃‍ Runner counts (total jobs: 158)</h2></summary>

|  #   | Runner
|------|------
|  111 | `linux-amd64-cpu16`
|   15 | `windows-amd64-cpu16`
|   10 | `linux-arm64-cpu16`
|    8 | `linux-amd64-gpu-rtx2080-latest-1`
|    6 | `linux-amd64-gpu-rtxa6000-latest-1`
|    5 | `linux-amd64-gpu-h100-latest-1`
|    3 | `linux-amd64-gpu-rtx4090-latest-1`


</details>

</details>

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-04T23:26:29Z
body: <details><summary>🟩 CI finished in 3h 53m: Pass: 100%/158 | Total: 23h 30m | Avg:  8m 55s | Max: 40m 27s | Hits:  95%/248540</summary>

<ul>
<li>
<details><summary><h3>🟩 cub: Pass: 100%/45  | Total:  8h 19m | Avg: 11m 06s | Max: 31m 18s | Hits:  93%/53485 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  8h 08m | Avg: 11m 22s | Max: 31m 18s | Hits:  92%/51055 
  🟩 arm64              Pass: 100%/2   | Total: 10m 52s | Avg:  5m 26s | Max:  5m 46s | Hits:  99%/2430  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 51m 57s | Avg: 10m 23s | Max: 29m 17s | Hits:  85%/5908  
  🟩 12.5               Pass: 100%/2   | Total: 19m 05s | Avg:  9m 32s | Max:  9m 42s | Hits:  98%/2248  
  🟩 12.8               Pass: 100%/38  | Total:  7h 08m | Avg: 11m 16s | Max: 31m 18s | Hits:  94%/45329 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 25s | Avg:  4m 42s | Max:  4m 47s | Hits: 100%/2100  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 51m 57s | Avg: 10m 23s | Max: 29m 17s | Hits:  85%/5908  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 19m 05s | Avg:  9m 32s | Max:  9m 42s | Hits:  98%/2248  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  6h 59m | Avg: 11m 38s | Max: 31m 18s | Hits:  93%/43229 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 25s | Avg:  4m 42s | Max:  4m 47s | Hits: 100%/2100  
  🟩 nvcc               Pass: 100%/43  | Total:  8h 10m | Avg: 11m 24s | Max: 31m 18s | Hits:  92%/51385 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 23m 21s | Avg:  5m 50s | Max:  6m 26s | Hits: 100%/4868  
  🟩 Clang15            Pass: 100%/2   | Total: 12m 23s | Avg:  6m 11s | Max:  6m 12s | Hits: 100%/2430  
  🟩 Clang16            Pass: 100%/2   | Total: 12m 09s | Avg:  6m 04s | Max:  6m 09s | Hits: 100%/2430  
  🟩 Clang17            Pass: 100%/2   | Total: 12m 35s | Avg:  6m 17s | Max:  6m 25s | Hits: 100%/2430  
  🟩 Clang18            Pass: 100%/7   | Total:  1h 09m | Avg:  9m 56s | Max: 22m 44s | Hits: 100%/8175  
  🟩 GCC7               Pass: 100%/2   | Total: 11m 24s | Avg:  5m 42s | Max:  5m 51s | Hits:  99%/2434  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 54s | Avg:  5m 54s | Max:  5m 54s | Hits:  99%/1217  
  🟩 GCC9               Pass: 100%/2   | Total: 12m 14s | Avg:  6m 07s | Max:  6m 08s | Hits:  99%/2434  
  🟩 GCC10              Pass: 100%/2   | Total: 12m 14s | Avg:  6m 07s | Max:  6m 09s | Hits:  99%/2434  
  🟩 GCC11              Pass: 100%/2   | Total: 12m 52s | Avg:  6m 26s | Max:  6m 40s | Hits:  99%/2430  
  🟩 GCC12              Pass: 100%/2   | Total: 13m 30s | Avg:  6m 45s | Max:  6m 58s | Hits:  99%/2430  
  🟩 GCC13              Pass: 100%/11  | Total:  2h 39m | Avg: 14m 31s | Max: 24m 49s | Hits:  99%/13365 
  🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 00m | Avg: 30m 02s | Max: 30m 47s | Hits:  15%/2080  
  🟩 MSVC14.42          Pass: 100%/2   | Total:  1h 02m | Avg: 31m 17s | Max: 31m 18s | Hits:  15%/2080  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 19m 05s | Avg:  9m 32s | Max:  9m 42s | Hits:  98%/2248  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  2h 10m | Avg:  7m 38s | Max: 22m 44s | Hits: 100%/20333 
  🟩 GCC                Pass: 100%/22  | Total:  3h 47m | Avg: 10m 21s | Max: 24m 49s | Hits:  99%/26744 
  🟩 MSVC               Pass: 100%/4   | Total:  2h 02m | Avg: 30m 39s | Max: 31m 18s | Hits:  15%/4160  
  🟩 NVHPC              Pass: 100%/2   | Total: 19m 05s | Avg:  9m 32s | Max:  9m 42s | Hits:  98%/2248  
🟩 gpu
  🟩 h100               Pass: 100%/3   | Total: 49m 26s | Avg: 16m 28s | Max: 22m 51s | Hits:  99%/3645  
  🟩 rtx2080            Pass: 100%/34  | Total:  5h 09m | Avg:  9m 06s | Max: 31m 18s | Hits:  91%/40120 
  🟩 rtxa6000           Pass: 100%/8   | Total:  2h 20m | Avg: 17m 32s | Max: 24m 49s | Hits:  99%/9720  
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  5h 27m | Avg:  8m 51s | Max: 31m 18s | Hits:  91%/43765 
  🟩 DeviceLaunch       Pass: 100%/1   | Total: 20m 51s | Avg: 20m 51s | Max: 20m 51s | Hits:  99%/1215  
  🟩 GraphCapture       Pass: 100%/1   | Total: 16m 44s | Avg: 16m 44s | Max: 16m 44s | Hits:  99%/1215  
  🟩 HostLaunch         Pass: 100%/3   | Total:  1h 10m | Avg: 23m 28s | Max: 24m 49s | Hits:  99%/3645  
  🟩 TestGPU            Pass: 100%/3   | Total:  1h 03m | Avg: 21m 14s | Max: 21m 53s | Hits:  99%/3645  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 49m 26s | Avg: 16m 28s | Max: 22m 51s | Hits:  99%/3645  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 40s | Avg:  6m 40s | Max:  6m 40s | Hits:  99%/1215  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  3h 17m | Avg:  9m 53s | Max: 31m 18s | Hits:  88%/23535 
  🟩 20                 Pass: 100%/25  | Total:  5h 01m | Avg: 12m 04s | Max: 31m 17s | Hits:  96%/29950 
```

</details>

<li>
<details><summary><h3>🟩 thrust: Pass: 100%/45  | Total:  6h 32m | Avg:  8m 43s | Max: 31m 27s | Hits:  96%/80136 </h3></summary>

```
🟩 cmake_options
  🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 16m 25s | Avg:  8m 12s | Max: 10m 39s | Hits:  99%/3564  
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  6h 23m | Avg:  8m 54s | Max: 31m 27s | Hits:  96%/76573 
  🟩 arm64              Pass: 100%/2   | Total:  9m 34s | Avg:  4m 47s | Max:  5m 06s | Hits:  99%/3563  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 45m 06s | Avg:  9m 01s | Max: 25m 48s | Hits:  94%/8901  
  🟩 12.5               Pass: 100%/2   | Total: 26m 45s | Avg: 13m 22s | Max: 13m 31s | Hits:  99%/3562  
  🟩 12.8               Pass: 100%/38  | Total:  5h 20m | Avg:  8m 26s | Max: 31m 27s | Hits:  96%/67673 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 53s | Avg:  4m 56s | Max:  5m 01s | Hits: 100%/3562  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 45m 06s | Avg:  9m 01s | Max: 25m 48s | Hits:  94%/8901  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 26m 45s | Avg: 13m 22s | Max: 13m 31s | Hits:  99%/3562  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  5h 10m | Avg:  8m 38s | Max: 31m 27s | Hits:  96%/64111 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 53s | Avg:  4m 56s | Max:  5m 01s | Hits: 100%/3562  
  🟩 nvcc               Pass: 100%/43  | Total:  6h 22m | Avg:  8m 54s | Max: 31m 27s | Hits:  96%/76574 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 19m 54s | Avg:  4m 58s | Max:  5m 30s | Hits: 100%/7124  
  🟩 Clang15            Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 26s | Hits: 100%/3562  
  🟩 Clang16            Pass: 100%/2   | Total: 10m 20s | Avg:  5m 10s | Max:  5m 17s | Hits: 100%/3562  
  🟩 Clang17            Pass: 100%/2   | Total: 10m 30s | Avg:  5m 15s | Max:  5m 18s | Hits: 100%/3562  
  🟩 Clang18            Pass: 100%/7   | Total: 43m 10s | Avg:  6m 10s | Max: 10m 13s | Hits: 100%/12467 
  🟩 GCC7               Pass: 100%/2   | Total: 10m 31s | Avg:  5m 15s | Max:  5m 41s | Hits:  99%/3564  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 40s | Avg:  5m 40s | Max:  5m 40s | Hits:  99%/1782  
  🟩 GCC9               Pass: 100%/2   | Total: 11m 01s | Avg:  5m 30s | Max:  5m 51s | Hits:  99%/3564  
  🟩 GCC10              Pass: 100%/2   | Total: 10m 27s | Avg:  5m 13s | Max:  5m 17s | Hits:  99%/3564  
  🟩 GCC11              Pass: 100%/2   | Total: 10m 48s | Avg:  5m 24s | Max:  5m 31s | Hits:  99%/3564  
  🟩 GCC12              Pass: 100%/2   | Total: 11m 11s | Avg:  5m 35s | Max:  5m 41s | Hits:  99%/3564  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 14m | Avg:  7m 27s | Max: 10m 57s | Hits:  99%/17820 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 52m 38s | Avg: 26m 19s | Max: 26m 50s | Hits:  70%/3550  
  🟩 MSVC14.42          Pass: 100%/3   | Total:  1h 24m | Avg: 28m 11s | Max: 31m 27s | Hits:  70%/5325  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 26m 45s | Avg: 13m 22s | Max: 13m 31s | Hits:  99%/3562  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  1h 34m | Avg:  5m 33s | Max: 10m 13s | Hits: 100%/30277 
  🟩 GCC                Pass: 100%/21  | Total:  2h 14m | Avg:  6m 23s | Max: 10m 57s | Hits:  99%/37422 
  🟩 MSVC               Pass: 100%/5   | Total:  2h 17m | Avg: 27m 26s | Max: 31m 27s | Hits:  70%/8875  
  🟩 NVHPC              Pass: 100%/2   | Total: 26m 45s | Avg: 13m 22s | Max: 13m 31s | Hits:  99%/3562  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 15m 22s | Avg:  7m 41s | Max: 10m 41s | Hits:  99%/3564  
  🟩 rtx2080            Pass: 100%/33  | Total:  4h 12m | Avg:  7m 39s | Max: 26m 50s | Hits:  97%/58769 
  🟩 rtx4090            Pass: 100%/10  | Total:  2h 04m | Avg: 12m 26s | Max: 31m 27s | Hits:  94%/17803 
🟩 jobs
  🟩 Build              Pass: 100%/38  | Total:  5h 03m | Avg:  7m 58s | Max: 28m 04s | Hits:  96%/67671 
  🟩 TestCPU            Pass: 100%/3   | Total: 47m 02s | Avg: 15m 40s | Max: 31m 27s | Hits:  90%/5338  
  🟩 TestGPU            Pass: 100%/4   | Total: 42m 30s | Avg: 10m 37s | Max: 10m 57s | Hits:  99%/7127  
🟩 sm
  🟩 90                 Pass: 100%/2   | Total: 15m 22s | Avg:  7m 41s | Max: 10m 41s | Hits:  99%/3564  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 18s | Avg:  6m 18s | Max:  6m 18s | Hits:  99%/1782  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  2h 55m | Avg:  8m 47s | Max: 26m 50s | Hits:  95%/35611 
  🟩 20                 Pass: 100%/23  | Total:  3h 20m | Avg:  8m 42s | Max: 31m 27s | Hits:  97%/40961 
```

</details>

<li>
<details><summary><h3>🟩 libcudacxx: Pass: 100%/43  | Total:  5h 46m | Avg:  8m 03s | Max: 28m 53s | Hits:  94%/103347</h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/41  | Total:  5h 38m | Avg:  8m 15s | Max: 28m 53s | Hits:  94%/97678 
  🟩 arm64              Pass: 100%/2   | Total:  8m 15s | Avg:  4m 07s | Max:  4m 15s | Hits:  97%/5669  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 37m 57s | Avg:  7m 35s | Max: 23m 36s | Hits:  99%/13711 
  🟩 12.5               Pass: 100%/2   | Total: 16m 52s | Avg:  8m 26s | Max:  8m 56s | Hits:  97%/5614  
  🟩 12.8               Pass: 100%/36  | Total:  4h 51m | Avg:  8m 06s | Max: 28m 53s | Hits:  93%/84022 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 41m 09s | Avg: 20m 34s | Max: 20m 52s | Hits:  27%/5630  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 37m 57s | Avg:  7m 35s | Max: 23m 36s | Hits:  99%/13711 
  🟩 nvcc12.5           Pass: 100%/2   | Total: 16m 52s | Avg:  8m 26s | Max:  8m 56s | Hits:  97%/5614  
  🟩 nvcc12.8           Pass: 100%/34  | Total:  4h 10m | Avg:  7m 22s | Max: 28m 53s | Hits:  98%/78392 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 41m 09s | Avg: 20m 34s | Max: 20m 52s | Hits:  27%/5630  
  🟩 nvcc               Pass: 100%/41  | Total:  5h 05m | Avg:  7m 27s | Max: 28m 53s | Hits:  98%/97717 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 16m 59s | Avg:  4m 14s | Max:  4m 41s | Hits:  98%/11230 
  🟩 Clang15            Pass: 100%/2   | Total:  9m 12s | Avg:  4m 36s | Max:  4m 37s | Hits:  98%/5626  
  🟩 Clang16            Pass: 100%/2   | Total:  9m 08s | Avg:  4m 34s | Max:  4m 42s | Hits:  98%/5626  
  🟩 Clang17            Pass: 100%/2   | Total:  9m 11s | Avg:  4m 35s | Max:  4m 45s | Hits:  98%/5626  
  🟩 Clang18            Pass: 100%/6   | Total:  1h 03m | Avg: 10m 32s | Max: 20m 52s | Hits:  69%/14090 
  🟩 GCC7               Pass: 100%/2   | Total:  7m 11s | Avg:  3m 35s | Max:  3m 53s | Hits:  98%/5564  
  🟩 GCC8               Pass: 100%/1   | Total:  3m 41s | Avg:  3m 41s | Max:  3m 41s | Hits:  99%/2792  
  🟩 GCC9               Pass: 100%/2   | Total:  7m 13s | Avg:  3m 36s | Max:  3m 48s | Hits:  99%/5576  
  🟩 GCC10              Pass: 100%/2   | Total:  8m 28s | Avg:  4m 14s | Max:  4m 16s | Hits:  97%/5632  
  🟩 GCC11              Pass: 100%/2   | Total:  8m 04s | Avg:  4m 02s | Max:  4m 09s | Hits:  99%/5628  
  🟩 GCC12              Pass: 100%/2   | Total:  8m 40s | Avg:  4m 20s | Max:  4m 30s | Hits:  97%/5628  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 16m | Avg:  7m 41s | Max: 15m 43s | Hits:  98%/14351 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 48m 29s | Avg: 24m 14s | Max: 24m 53s | Hits:  99%/5102  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 53m 17s | Avg: 26m 38s | Max: 28m 53s | Hits:  98%/5262  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 16m 52s | Avg:  8m 26s | Max:  8m 56s | Hits:  97%/5614  
🟩 cxx_family
  🟩 Clang              Pass: 100%/16  | Total:  1h 47m | Avg:  6m 44s | Max: 20m 52s | Hits:  88%/42198 
  🟩 GCC                Pass: 100%/21  | Total:  2h 00m | Avg:  5m 43s | Max: 15m 43s | Hits:  98%/45171 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 41m | Avg: 25m 26s | Max: 28m 53s | Hits:  98%/10364 
  🟩 NVHPC              Pass: 100%/2   | Total: 16m 52s | Avg:  8m 26s | Max:  8m 56s | Hits:  97%/5614  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 17m 25s | Avg:  8m 42s | Max: 13m 20s | Hits:  99%/2924  
  🟩 rtx2080            Pass: 100%/41  | Total:  5h 29m | Avg:  8m 01s | Max: 28m 53s | Hits:  94%/100423
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  4h 42m | Avg:  7m 37s | Max: 28m 53s | Hits:  94%/103307
  🟩 NVRTC              Pass: 100%/2   | Total: 31m 07s | Avg: 15m 33s | Max: 15m 43s | Hits:  90%/40    
  🟩 Test               Pass: 100%/3   | Total: 31m 12s | Avg: 10m 24s | Max: 13m 20s
  🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 15s | Avg:  2m 15s | Max:  2m 15s
🟩 sm
  🟩 75                 Pass: 100%/2   | Total: 31m 07s | Avg: 15m 33s | Max: 15m 43s | Hits:  90%/40    
  🟩 90                 Pass: 100%/2   | Total: 17m 25s | Avg:  8m 42s | Max: 13m 20s | Hits:  99%/2924  
  🟩 90;90a;100         Pass: 100%/1   | Total:  4m 45s | Avg:  4m 45s | Max:  4m 45s | Hits:  99%/2924  
🟩 std
  🟩 17                 Pass: 100%/21  | Total:  2h 58m | Avg:  8m 28s | Max: 24m 53s | Hits:  95%/55106 
  🟩 20                 Pass: 100%/21  | Total:  2h 46m | Avg:  7m 55s | Max: 28m 53s | Hits:  94%/48241 
```

</details>

<li>
<details><summary><h3>🟩 cudax: Pass: 100%/22  | Total:  1h 56m | Avg:  5m 16s | Max: 12m 17s | Hits:  97%/11264 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/18  | Total:  1h 45m | Avg:  5m 50s | Max: 12m 17s | Hits:  97%/9036  
  🟩 arm64              Pass: 100%/4   | Total: 11m 02s | Avg:  2m 45s | Max:  2m 50s | Hits:  99%/2228  
🟩 ctk
  🟩 12.0               Pass: 100%/1   | Total: 12m 17s | Avg: 12m 17s | Max: 12m 17s | Hits:  61%/262   
  🟩 12.5               Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 25s | Hits:  96%/710   
  🟩 12.8               Pass: 100%/19  | Total:  1h 33m | Avg:  4m 54s | Max: 12m 16s | Hits:  98%/10292 
🟩 cudacxx
  🟩 nvcc12.0           Pass: 100%/1   | Total: 12m 17s | Avg: 12m 17s | Max: 12m 17s | Hits:  61%/262   
  🟩 nvcc12.5           Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 25s | Hits:  96%/710   
  🟩 nvcc12.8           Pass: 100%/19  | Total:  1h 33m | Avg:  4m 54s | Max: 12m 16s | Hits:  98%/10292 
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/22  | Total:  1h 56m | Avg:  5m 16s | Max: 12m 17s | Hits:  97%/11264 
🟩 cxx
  🟩 Clang14            Pass: 100%/1   | Total:  3m 10s | Avg:  3m 10s | Max:  3m 10s | Hits: 100%/559   
  🟩 Clang15            Pass: 100%/1   | Total:  3m 24s | Avg:  3m 24s | Max:  3m 24s | Hits: 100%/557   
  🟩 Clang16            Pass: 100%/1   | Total:  3m 18s | Avg:  3m 18s | Max:  3m 18s | Hits: 100%/557   
  🟩 Clang17            Pass: 100%/1   | Total:  3m 29s | Avg:  3m 29s | Max:  3m 29s | Hits: 100%/557   
  🟩 Clang18            Pass: 100%/4   | Total: 20m 34s | Avg:  5m 08s | Max: 11m 50s | Hits: 100%/2228  
  🟩 GCC10              Pass: 100%/1   | Total:  3m 13s | Avg:  3m 13s | Max:  3m 13s | Hits:  99%/559   
  🟩 GCC11              Pass: 100%/1   | Total:  3m 22s | Avg:  3m 22s | Max:  3m 22s | Hits:  99%/557   
  🟩 GCC12              Pass: 100%/2   | Total: 15m 47s | Avg:  7m 53s | Max: 12m 16s | Hits:  99%/1114  
  🟩 GCC13              Pass: 100%/6   | Total: 26m 04s | Avg:  4m 20s | Max: 11m 14s | Hits:  99%/3342  
  🟩 MSVC14.39          Pass: 100%/1   | Total: 12m 17s | Avg: 12m 17s | Max: 12m 17s | Hits:  61%/262   
  🟩 MSVC14.42          Pass: 100%/1   | Total: 10m 53s | Avg: 10m 53s | Max: 10m 53s | Hits:  61%/262   
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 25s | Hits:  96%/710   
🟩 cxx_family
  🟩 Clang              Pass: 100%/8   | Total: 33m 55s | Avg:  4m 14s | Max: 11m 50s | Hits: 100%/4458  
  🟩 GCC                Pass: 100%/10  | Total: 48m 26s | Avg:  4m 50s | Max: 12m 16s | Hits:  99%/5572  
  🟩 MSVC               Pass: 100%/2   | Total: 23m 10s | Avg: 11m 35s | Max: 12m 17s | Hits:  61%/524   
  🟩 NVHPC              Pass: 100%/2   | Total: 10m 41s | Avg:  5m 20s | Max:  5m 25s | Hits:  96%/710   
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 14m 16s | Avg:  7m 08s | Max: 11m 14s | Hits:  99%/1114  
  🟩 rtx2080            Pass: 100%/20  | Total:  1h 41m | Avg:  5m 05s | Max: 12m 17s | Hits:  97%/10150 
🟩 jobs
  🟩 Build              Pass: 100%/19  | Total:  1h 20m | Avg:  4m 15s | Max: 12m 17s | Hits:  97%/9593  
  🟩 Test               Pass: 100%/3   | Total: 35m 20s | Avg: 11m 46s | Max: 12m 16s | Hits:  99%/1671  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 17m 30s | Avg:  5m 50s | Max: 11m 14s | Hits:  99%/1671  
  🟩 90a                Pass: 100%/1   | Total:  2m 57s | Avg:  2m 57s | Max:  2m 57s | Hits:  99%/557   
🟩 std
  🟩 17                 Pass: 100%/4   | Total: 14m 11s | Avg:  3m 32s | Max:  5m 25s | Hits:  99%/2026  
  🟩 20                 Pass: 100%/18  | Total:  1h 42m | Avg:  5m 40s | Max: 12m 17s | Hits:  97%/9238  
```

</details>

<li>
<details><summary><h3>🟩 cccl_c_parallel: Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 ctk
  🟩 12.8               Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 cudacxx
  🟩 nvcc12.8           Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 cxx
  🟩 GCC13              Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 cxx_family
  🟩 GCC                Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 gpu
  🟩 rtx2080            Pass: 100%/2   | Total: 15m 02s | Avg:  7m 31s | Max: 12m 49s | Hits:  98%/308   
🟩 jobs
  🟩 Build              Pass: 100%/1   | Total:  2m 13s | Avg:  2m 13s | Max:  2m 13s | Hits:  98%/154   
  🟩 Test               Pass: 100%/1   | Total: 12m 49s | Avg: 12m 49s | Max: 12m 49s | Hits:  98%/154   
```

</details>

<li>
<details><summary><h3>🟩 python: Pass: 100%/1   | Total: 40m 27s | Avg: 40m 27s | Max: 40m 27s</h3></summary>

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

</details>

</ul>

<details><summary><h3>👃 Inspect Changes</h3></summary>

### 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
</details>


<details><summary><h2>🏃‍ Runner counts (total jobs: 158)</h2></summary>

|  #   | Runner
|------|------
|  111 | `linux-amd64-cpu16`
|   15 | `windows-amd64-cpu16`
|   10 | `linux-arm64-cpu16`
|    8 | `linux-amd64-gpu-rtx2080-latest-1`
|    6 | `linux-amd64-gpu-rtxa6000-latest-1`
|    5 | `linux-amd64-gpu-h100-latest-1`
|    3 | `linux-amd64-gpu-rtx4090-latest-1`


</details>

</details>

author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-06T23:54:55Z
body: <details><summary>🟩 CI finished in 1h 07m: Pass: 100%/158 | Total:  1d 00h | Avg:  9m 18s | Max: 40m 27s | Hits:  94%/248540</summary>

<ul>
<li>
<details><summary><h3>🟩 cub: Pass: 100%/45  | Total:  8h 26m | Avg: 11m 15s | Max: 32m 54s | Hits:  93%/53485 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  8h 15m | Avg: 11m 31s | Max: 32m 54s | Hits:  92%/51055 
  🟩 arm64              Pass: 100%/2   | Total: 10m 55s | Avg:  5m 27s | Max:  5m 41s | Hits:  99%/2430  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 52m 32s | Avg: 10m 30s | Max: 30m 12s | Hits:  85%/5908  
  🟩 12.5               Pass: 100%/2   | Total: 21m 01s | Avg: 10m 30s | Max: 10m 36s | Hits:  98%/2248  
  🟩 12.8               Pass: 100%/38  | Total:  7h 13m | Avg: 11m 24s | Max: 32m 54s | Hits:  94%/45329 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total:  9m 55s | Avg:  4m 57s | Max:  4m 59s | Hits: 100%/2100  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 52m 32s | Avg: 10m 30s | Max: 30m 12s | Hits:  85%/5908  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 21m 01s | Avg: 10m 30s | Max: 10m 36s | Hits:  98%/2248  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  7h 03m | Avg: 11m 45s | Max: 32m 54s | Hits:  93%/43229 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total:  9m 55s | Avg:  4m 57s | Max:  4m 59s | Hits: 100%/2100  
  🟩 nvcc               Pass: 100%/43  | Total:  8h 16m | Avg: 11m 33s | Max: 32m 54s | Hits:  92%/51385 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 23m 20s | Avg:  5m 50s | Max:  6m 25s | Hits: 100%/4868  
  🟩 Clang15            Pass: 100%/2   | Total: 12m 14s | Avg:  6m 07s | Max:  6m 11s | Hits: 100%/2430  
  🟩 Clang16            Pass: 100%/2   | Total: 12m 41s | Avg:  6m 20s | Max:  6m 25s | Hits: 100%/2430  
  🟩 Clang17            Pass: 100%/2   | Total: 12m 12s | Avg:  6m 06s | Max:  6m 11s | Hits: 100%/2430  
  🟩 Clang18            Pass: 100%/7   | Total:  1h 12m | Avg: 10m 17s | Max: 24m 13s | Hits: 100%/8175  
  🟩 GCC7               Pass: 100%/2   | Total: 11m 26s | Avg:  5m 43s | Max:  5m 59s | Hits:  99%/2434  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 56s | Avg:  5m 56s | Max:  5m 56s | Hits:  99%/1217  
  🟩 GCC9               Pass: 100%/2   | Total: 12m 19s | Avg:  6m 09s | Max:  6m 37s | Hits:  99%/2434  
  🟩 GCC10              Pass: 100%/2   | Total: 12m 44s | Avg:  6m 22s | Max:  6m 30s | Hits:  99%/2434  
  🟩 GCC11              Pass: 100%/2   | Total: 12m 35s | Avg:  6m 17s | Max:  6m 26s | Hits:  99%/2430  
  🟩 GCC12              Pass: 100%/2   | Total: 13m 20s | Avg:  6m 40s | Max:  6m 45s | Hits:  99%/2430  
  🟩 GCC13              Pass: 100%/11  | Total:  2h 41m | Avg: 14m 39s | Max: 25m 01s | Hits:  99%/13365 
  🟩 MSVC14.29          Pass: 100%/2   | Total:  1h 00m | Avg: 30m 04s | Max: 30m 12s | Hits:  15%/2080  
  🟩 MSVC14.42          Pass: 100%/2   | Total:  1h 03m | Avg: 31m 46s | Max: 32m 54s | Hits:  15%/2080  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 21m 01s | Avg: 10m 30s | Max: 10m 36s | Hits:  98%/2248  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  2h 12m | Avg:  7m 47s | Max: 24m 13s | Hits: 100%/20333 
  🟩 GCC                Pass: 100%/22  | Total:  3h 49m | Avg: 10m 26s | Max: 25m 01s | Hits:  99%/26744 
  🟩 MSVC               Pass: 100%/4   | Total:  2h 03m | Avg: 30m 55s | Max: 32m 54s | Hits:  15%/4160  
  🟩 NVHPC              Pass: 100%/2   | Total: 21m 01s | Avg: 10m 30s | Max: 10m 36s | Hits:  98%/2248  
🟩 gpu
  🟩 h100               Pass: 100%/3   | Total: 50m 14s | Avg: 16m 44s | Max: 23m 13s | Hits:  99%/3645  
  🟩 rtx2080            Pass: 100%/34  | Total:  5h 15m | Avg:  9m 15s | Max: 32m 54s | Hits:  91%/40120 
  🟩 rtxa6000           Pass: 100%/8   | Total:  2h 21m | Avg: 17m 41s | Max: 25m 01s | Hits:  99%/9720  
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  5h 33m | Avg:  9m 00s | Max: 32m 54s | Hits:  91%/43765 
  🟩 DeviceLaunch       Pass: 100%/1   | Total: 20m 40s | Avg: 20m 40s | Max: 20m 40s | Hits:  99%/1215  
  🟩 GraphCapture       Pass: 100%/1   | Total: 16m 45s | Avg: 16m 45s | Max: 16m 45s | Hits:  99%/1215  
  🟩 HostLaunch         Pass: 100%/3   | Total:  1h 12m | Avg: 24m 09s | Max: 25m 01s | Hits:  99%/3645  
  🟩 TestGPU            Pass: 100%/3   | Total:  1h 03m | Avg: 21m 11s | Max: 21m 44s | Hits:  99%/3645  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 50m 14s | Avg: 16m 44s | Max: 23m 13s | Hits:  99%/3645  
  🟩 90;90a;100         Pass: 100%/1   | Total:  7m 09s | Avg:  7m 09s | Max:  7m 09s | Hits:  99%/1215  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  3h 19m | Avg:  9m 58s | Max: 30m 38s | Hits:  88%/23535 
  🟩 20                 Pass: 100%/25  | Total:  5h 07m | Avg: 12m 17s | Max: 32m 54s | Hits:  96%/29950 
```

</details>

<li>
<details><summary><h3>🟩 thrust: Pass: 100%/45  | Total:  7h 12m | Avg:  9m 36s | Max: 39m 06s | Hits:  95%/80136 </h3></summary>

```
🟩 cmake_options
  🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 16m 44s | Avg:  8m 22s | Max: 11m 03s | Hits:  99%/3564  
🟩 cpu
  🟩 amd64              Pass: 100%/43  | Total:  7h 02m | Avg:  9m 50s | Max: 39m 06s | Hits:  95%/76573 
  🟩 arm64              Pass: 100%/2   | Total:  9m 35s | Avg:  4m 47s | Max:  5m 06s | Hits:  99%/3563  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 44m 12s | Avg:  8m 50s | Max: 25m 01s | Hits:  94%/8901  
  🟩 12.5               Pass: 100%/2   | Total: 27m 59s | Avg: 13m 59s | Max: 14m 08s | Hits:  99%/3562  
  🟩 12.8               Pass: 100%/38  | Total:  6h 00m | Avg:  9m 28s | Max: 39m 06s | Hits:  95%/67673 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 10m 31s | Avg:  5m 15s | Max:  5m 24s | Hits: 100%/3562  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 44m 12s | Avg:  8m 50s | Max: 25m 01s | Hits:  94%/8901  
  🟩 nvcc12.5           Pass: 100%/2   | Total: 27m 59s | Avg: 13m 59s | Max: 14m 08s | Hits:  99%/3562  
  🟩 nvcc12.8           Pass: 100%/36  | Total:  5h 49m | Avg:  9m 42s | Max: 39m 06s | Hits:  95%/64111 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 10m 31s | Avg:  5m 15s | Max:  5m 24s | Hits: 100%/3562  
  🟩 nvcc               Pass: 100%/43  | Total:  7h 01m | Avg:  9m 48s | Max: 39m 06s | Hits:  95%/76574 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 19m 49s | Avg:  4m 57s | Max:  5m 18s | Hits: 100%/7124  
  🟩 Clang15            Pass: 100%/2   | Total: 11m 02s | Avg:  5m 31s | Max:  5m 44s | Hits: 100%/3562  
  🟩 Clang16            Pass: 100%/2   | Total: 10m 51s | Avg:  5m 25s | Max:  5m 33s | Hits: 100%/3562  
  🟩 Clang17            Pass: 100%/2   | Total: 10m 59s | Avg:  5m 29s | Max:  5m 46s | Hits: 100%/3562  
  🟩 Clang18            Pass: 100%/7   | Total: 43m 23s | Avg:  6m 11s | Max: 10m 11s | Hits: 100%/12467 
  🟩 GCC7               Pass: 100%/2   | Total: 10m 54s | Avg:  5m 27s | Max:  6m 02s | Hits:  99%/3564  
  🟩 GCC8               Pass: 100%/1   | Total:  5m 31s | Avg:  5m 31s | Max:  5m 31s | Hits:  99%/1782  
  🟩 GCC9               Pass: 100%/2   | Total: 10m 28s | Avg:  5m 14s | Max:  5m 33s | Hits:  99%/3564  
  🟩 GCC10              Pass: 100%/2   | Total: 10m 55s | Avg:  5m 27s | Max:  5m 29s | Hits:  99%/3564  
  🟩 GCC11              Pass: 100%/2   | Total: 11m 43s | Avg:  5m 51s | Max:  6m 00s | Hits:  99%/3564  
  🟩 GCC12              Pass: 100%/2   | Total: 44m 41s | Avg: 22m 20s | Max: 39m 06s | Hits:  74%/3564  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 17m | Avg:  7m 43s | Max: 11m 47s | Hits:  99%/17820 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 50m 52s | Avg: 25m 26s | Max: 25m 51s | Hits:  70%/3550  
  🟩 MSVC14.42          Pass: 100%/3   | Total:  1h 26m | Avg: 28m 43s | Max: 33m 00s | Hits:  70%/5325  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 27m 59s | Avg: 13m 59s | Max: 14m 08s | Hits:  99%/3562  
🟩 cxx_family
  🟩 Clang              Pass: 100%/17  | Total:  1h 36m | Avg:  5m 39s | Max: 10m 11s | Hits: 100%/30277 
  🟩 GCC                Pass: 100%/21  | Total:  2h 51m | Avg:  8m 09s | Max: 39m 06s | Hits:  97%/37422 
  🟩 MSVC               Pass: 100%/5   | Total:  2h 17m | Avg: 27m 24s | Max: 33m 00s | Hits:  70%/8875  
  🟩 NVHPC              Pass: 100%/2   | Total: 27m 59s | Avg: 13m 59s | Max: 14m 08s | Hits:  99%/3562  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 16m 39s | Avg:  8m 19s | Max: 11m 47s | Hits:  99%/3564  
  🟩 rtx2080            Pass: 100%/33  | Total:  4h 50m | Avg:  8m 48s | Max: 39m 06s | Hits:  95%/58769 
  🟩 rtx4090            Pass: 100%/10  | Total:  2h 05m | Avg: 12m 30s | Max: 33m 00s | Hits:  94%/17803 
🟩 jobs
  🟩 Build              Pass: 100%/38  | Total:  5h 39m | Avg:  8m 56s | Max: 39m 06s | Hits:  95%/67671 
  🟩 TestCPU            Pass: 100%/3   | Total: 48m 11s | Avg: 16m 03s | Max: 33m 00s | Hits:  90%/5338  
  🟩 TestGPU            Pass: 100%/4   | Total: 44m 21s | Avg: 11m 05s | Max: 11m 47s | Hits:  99%/7127  
🟩 sm
  🟩 90                 Pass: 100%/2   | Total: 16m 39s | Avg:  8m 19s | Max: 11m 47s | Hits:  99%/3564  
  🟩 90;90a;100         Pass: 100%/1   | Total:  6m 51s | Avg:  6m 51s | Max:  6m 51s | Hits:  99%/1782  
🟩 std
  🟩 17                 Pass: 100%/20  | Total:  3h 31m | Avg: 10m 35s | Max: 39m 06s | Hits:  92%/35611 
  🟩 20                 Pass: 100%/23  | Total:  3h 23m | Avg:  8m 51s | Max: 33m 00s | Hits:  97%/40961 
```

</details>

<li>
<details><summary><h3>🟩 libcudacxx: Pass: 100%/43  | Total:  5h 56m | Avg:  8m 16s | Max: 28m 23s | Hits:  94%/103347</h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/41  | Total:  5h 48m | Avg:  8m 29s | Max: 28m 23s | Hits:  94%/97678 
  🟩 arm64              Pass: 100%/2   | Total:  7m 39s | Avg:  3m 49s | Max:  3m 57s | Hits:  98%/5669  
🟩 ctk
  🟩 12.0               Pass: 100%/5   | Total: 39m 32s | Avg:  7m 54s | Max: 24m 42s | Hits:  99%/13711 
  🟩 12.5               Pass: 100%/2   | Total: 17m 23s | Avg:  8m 41s | Max:  9m 05s | Hits:  98%/5614  
  🟩 12.8               Pass: 100%/36  | Total:  4h 59m | Avg:  8m 18s | Max: 28m 23s | Hits:  94%/84022 
🟩 cudacxx
  🟩 ClangCUDA18        Pass: 100%/2   | Total: 44m 43s | Avg: 22m 21s | Max: 24m 06s | Hits:  26%/5630  
  🟩 nvcc12.0           Pass: 100%/5   | Total: 39m 32s | Avg:  7m 54s | Max: 24m 42s | Hits:  99%/13711 
  🟩 nvcc12.5           Pass: 100%/2   | Total: 17m 23s | Avg:  8m 41s | Max:  9m 05s | Hits:  98%/5614  
  🟩 nvcc12.8           Pass: 100%/34  | Total:  4h 14m | Avg:  7m 28s | Max: 28m 23s | Hits:  98%/78392 
🟩 cudacxx_family
  🟩 ClangCUDA          Pass: 100%/2   | Total: 44m 43s | Avg: 22m 21s | Max: 24m 06s | Hits:  26%/5630  
  🟩 nvcc               Pass: 100%/41  | Total:  5h 11m | Avg:  7m 35s | Max: 28m 23s | Hits:  98%/97717 
🟩 cxx
  🟩 Clang14            Pass: 100%/4   | Total: 16m 28s | Avg:  4m 07s | Max:  4m 28s | Hits:  99%/11230 
  🟩 Clang15            Pass: 100%/2   | Total:  9m 24s | Avg:  4m 42s | Max:  4m 50s | Hits:  98%/5626  
  🟩 Clang16            Pass: 100%/2   | Total:  9m 12s | Avg:  4m 36s | Max:  4m 37s | Hits:  99%/5626  
  🟩 Clang17            Pass: 100%/2   | Total:  8m 44s | Avg:  4m 22s | Max:  4m 34s | Hits:  99%/5626  
  🟩 Clang18            Pass: 100%/6   | Total:  1h 07m | Avg: 11m 15s | Max: 24m 06s | Hits:  70%/14090 
  🟩 GCC7               Pass: 100%/2   | Total:  7m 27s | Avg:  3m 43s | Max:  4m 00s | Hits:  99%/5564  
  🟩 GCC8               Pass: 100%/1   | Total:  3m 58s | Avg:  3m 58s | Max:  3m 58s | Hits:  99%/2792  
  🟩 GCC9               Pass: 100%/2   | Total:  7m 30s | Avg:  3m 45s | Max:  3m 51s | Hits:  99%/5576  
  🟩 GCC10              Pass: 100%/2   | Total:  8m 26s | Avg:  4m 13s | Max:  4m 19s | Hits:  99%/5632  
  🟩 GCC11              Pass: 100%/2   | Total:  7m 56s | Avg:  3m 58s | Max:  4m 00s | Hits:  99%/5628  
  🟩 GCC12              Pass: 100%/2   | Total:  8m 27s | Avg:  4m 13s | Max:  4m 15s | Hits:  99%/5628  
  🟩 GCC13              Pass: 100%/10  | Total:  1h 17m | Avg:  7m 47s | Max: 16m 51s | Hits:  98%/14351 
  🟩 MSVC14.29          Pass: 100%/2   | Total: 53m 05s | Avg: 26m 32s | Max: 28m 23s | Hits:  98%/5102  
  🟩 MSVC14.42          Pass: 100%/2   | Total: 52m 38s | Avg: 26m 19s | Max: 27m 07s | Hits:  98%/5262  
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 17m 23s | Avg:  8m 41s | Max:  9m 05s | Hits:  98%/5614  
🟩 cxx_family
  🟩 Clang              Pass: 100%/16  | Total:  1h 51m | Avg:  6m 57s | Max: 24m 06s | Hits:  89%/42198 
  🟩 GCC                Pass: 100%/21  | Total:  2h 01m | Avg:  5m 47s | Max: 16m 51s | Hits:  98%/45171 
  🟩 MSVC               Pass: 100%/4   | Total:  1h 45m | Avg: 26m 25s | Max: 28m 23s | Hits:  98%/10364 
  🟩 NVHPC              Pass: 100%/2   | Total: 17m 23s | Avg:  8m 41s | Max:  9m 05s | Hits:  98%/5614  
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 17m 43s | Avg:  8m 51s | Max: 13m 36s | Hits:  98%/2924  
  🟩 rtx2080            Pass: 100%/41  | Total:  5h 38m | Avg:  8m 15s | Max: 28m 23s | Hits:  94%/100423
🟩 jobs
  🟩 Build              Pass: 100%/37  | Total:  4h 50m | Avg:  7m 51s | Max: 28m 23s | Hits:  94%/103307
  🟩 NVRTC              Pass: 100%/2   | Total: 31m 34s | Avg: 15m 47s | Max: 16m 51s | Hits:  90%/40    
  🟩 Test               Pass: 100%/3   | Total: 31m 24s | Avg: 10m 28s | Max: 13m 36s
  🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 19s | Avg:  2m 19s | Max:  2m 19s
🟩 sm
  🟩 75                 Pass: 100%/2   | Total: 31m 34s | Avg: 15m 47s | Max: 16m 51s | Hits:  90%/40    
  🟩 90                 Pass: 100%/2   | Total: 17m 43s | Avg:  8m 51s | Max: 13m 36s | Hits:  98%/2924  
  🟩 90;90a;100         Pass: 100%/1   | Total:  4m 47s | Avg:  4m 47s | Max:  4m 47s | Hits:  99%/2924  
🟩 std
  🟩 17                 Pass: 100%/21  | Total:  3h 06m | Avg:  8m 53s | Max: 28m 23s | Hits:  95%/55106 
  🟩 20                 Pass: 100%/21  | Total:  2h 46m | Avg:  7m 56s | Max: 27m 07s | Hits:  94%/48241 
```

</details>

<li>
<details><summary><h3>🟩 cudax: Pass: 100%/22  | Total:  1h 59m | Avg:  5m 25s | Max: 13m 38s | Hits:  97%/11264 </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/18  | Total:  1h 48m | Avg:  6m 01s | Max: 13m 38s | Hits:  97%/9036  
  🟩 arm64              Pass: 100%/4   | Total: 11m 01s | Avg:  2m 45s | Max:  2m 50s | Hits:  99%/2228  
🟩 ctk
  🟩 12.0               Pass: 100%/1   | Total: 11m 44s | Avg: 11m 44s | Max: 11m 44s | Hits:  61%/262   
  🟩 12.5               Pass: 100%/2   | Total: 10m 50s | Avg:  5m 25s | Max:  5m 28s | Hits:  96%/710   
  🟩 12.8               Pass: 100%/19  | Total:  1h 36m | Avg:  5m 05s | Max: 13m 38s | Hits:  98%/10292 
🟩 cudacxx
  🟩 nvcc12.0           Pass: 100%/1   | Total: 11m 44s | Avg: 11m 44s | Max: 11m 44s | Hits:  61%/262   
  🟩 nvcc12.5           Pass: 100%/2   | Total: 10m 50s | Avg:  5m 25s | Max:  5m 28s | Hits:  96%/710   
  🟩 nvcc12.8           Pass: 100%/19  | Total:  1h 36m | Avg:  5m 05s | Max: 13m 38s | Hits:  98%/10292 
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/22  | Total:  1h 59m | Avg:  5m 25s | Max: 13m 38s | Hits:  97%/11264 
🟩 cxx
  🟩 Clang14            Pass: 100%/1   | Total:  3m 16s | Avg:  3m 16s | Max:  3m 16s | Hits: 100%/559   
  🟩 Clang15            Pass: 100%/1   | Total:  3m 23s | Avg:  3m 23s | Max:  3m 23s | Hits: 100%/557   
  🟩 Clang16            Pass: 100%/1   | Total:  3m 24s | Avg:  3m 24s | Max:  3m 24s | Hits: 100%/557   
  🟩 Clang17            Pass: 100%/1   | Total:  3m 26s | Avg:  3m 26s | Max:  3m 26s | Hits: 100%/557   
  🟩 Clang18            Pass: 100%/4   | Total: 20m 38s | Avg:  5m 09s | Max: 11m 49s | Hits: 100%/2228  
  🟩 GCC10              Pass: 100%/1   | Total:  3m 20s | Avg:  3m 20s | Max:  3m 20s | Hits:  99%/559   
  🟩 GCC11              Pass: 100%/1   | Total:  3m 11s | Avg:  3m 11s | Max:  3m 11s | Hits:  99%/557   
  🟩 GCC12              Pass: 100%/2   | Total: 15m 50s | Avg:  7m 55s | Max: 12m 15s | Hits:  99%/1114  
  🟩 GCC13              Pass: 100%/6   | Total: 28m 39s | Avg:  4m 46s | Max: 13m 38s | Hits:  99%/3342  
  🟩 MSVC14.39          Pass: 100%/1   | Total: 11m 44s | Avg: 11m 44s | Max: 11m 44s | Hits:  61%/262   
  🟩 MSVC14.42          Pass: 100%/1   | Total: 11m 40s | Avg: 11m 40s | Max: 11m 40s | Hits:  61%/262   
  🟩 NVHPC24.7          Pass: 100%/2   | Total: 10m 50s | Avg:  5m 25s | Max:  5m 28s | Hits:  96%/710   
🟩 cxx_family
  🟩 Clang              Pass: 100%/8   | Total: 34m 07s | Avg:  4m 15s | Max: 11m 49s | Hits: 100%/4458  
  🟩 GCC                Pass: 100%/10  | Total: 51m 00s | Avg:  5m 06s | Max: 13m 38s | Hits:  99%/5572  
  🟩 MSVC               Pass: 100%/2   | Total: 23m 24s | Avg: 11m 42s | Max: 11m 44s | Hits:  61%/524   
  🟩 NVHPC              Pass: 100%/2   | Total: 10m 50s | Avg:  5m 25s | Max:  5m 28s | Hits:  96%/710   
🟩 gpu
  🟩 h100               Pass: 100%/2   | Total: 16m 47s | Avg:  8m 23s | Max: 13m 38s | Hits:  99%/1114  
  🟩 rtx2080            Pass: 100%/20  | Total:  1h 42m | Avg:  5m 07s | Max: 12m 15s | Hits:  97%/10150 
🟩 jobs
  🟩 Build              Pass: 100%/19  | Total:  1h 21m | Avg:  4m 17s | Max: 11m 44s | Hits:  97%/9593  
  🟩 Test               Pass: 100%/3   | Total: 37m 42s | Avg: 12m 34s | Max: 13m 38s | Hits:  99%/1671  
🟩 sm
  🟩 90                 Pass: 100%/3   | Total: 19m 56s | Avg:  6m 38s | Max: 13m 38s | Hits:  99%/1671  
  🟩 90a                Pass: 100%/1   | Total:  3m 08s | Avg:  3m 08s | Max:  3m 08s | Hits:  99%/557   
🟩 std
  🟩 17                 Pass: 100%/4   | Total: 13m 53s | Avg:  3m 28s | Max:  5m 22s | Hits:  99%/2026  
  🟩 20                 Pass: 100%/18  | Total:  1h 45m | Avg:  5m 51s | Max: 13m 38s | Hits:  97%/9238  
```

</details>

<li>
<details><summary><h3>🟩 cccl_c_parallel: Pass: 100%/2   | Total: 15m 33s | Avg:  7m 46s | Max: 13m 19s | Hits:  98%/308   </h3></summary>

```
🟩 cpu
  🟩 amd64              Pass: 100%/2   | Total: 15m 33s | Avg:  7m 46s | Max: 13m 19s | Hits:  98%/308   
🟩 ctk
  🟩 12.8               Pass: 100%/2   | Total: 15m 33s | Avg:  7m 46s | Max: 13m 19s | Hits:  98%/308   
🟩 cudacxx
  🟩 nvcc12.8           Pass: 100%/2   | Total: 15m 33s | Avg:  7m 46s | Max: 13m 19s | Hits:  98%/308   
🟩 cudacxx_family
  🟩 nvcc               Pass: 100%/2   | Total: 15m 33s | Avg:  7m 46s | Max: 13m 19s | Hits:  98%/308   
🟩 cxx
  🟩 GCC13              Pass: 100%/2   | Total: 15m 33s | Avg:  7m 46s | Max: 13m 19s | Hits:  98%/308   
🟩 cxx_family
  🟩 GCC                Pass: 100%/2   | Total: 15m 33s | Avg:  7m 46s | Max: 13m 19s | Hits:  98%/308   
🟩 gpu
  🟩 rtx2080            Pass: 100%/2   | Total: 15m 33s | Avg:  7m 46s | Max: 13m 19s | Hits:  98%/308   
🟩 jobs
  🟩 Build              Pass: 100%/1   | Total:  2m 14s | Avg:  2m 14s | Max:  2m 14s | Hits:  98%/154   
  🟩 Test               Pass: 100%/1   | Total: 13m 19s | Avg: 13m 19s | Max: 13m 19s | Hits:  98%/154   
```

</details>

<li>
<details><summary><h3>🟩 python: Pass: 100%/1   | Total: 40m 27s | Avg: 40m 27s | Max: 40m 27s</h3></summary>

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

</details>

</ul>

<details><summary><h3>👃 Inspect Changes</h3></summary>

### 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
</details>


<details><summary><h2>🏃‍ Runner counts (total jobs: 158)</h2></summary>

|  #   | Runner
|------|------
|  111 | `linux-amd64-cpu16`
|   15 | `windows-amd64-cpu16`
|   10 | `linux-arm64-cpu16`
|    8 | `linux-amd64-gpu-rtx2080-latest-1`
|    6 | `linux-amd64-gpu-rtxa6000-latest-1`
|    5 | `linux-amd64-gpu-h100-latest-1`
|    3 | `linux-amd64-gpu-rtx4090-latest-1`


</details>

</details>

author_association: CONTRIBUTOR