Skip to content

Implement operator<< for cuda::std::string_view #4736

New issue

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

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

Already on GitHub? Sign in to your account

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

Conversation

davebayer
Copy link
Contributor

This PR implements operator<< for cuda::std::string_view. This is the final piece of <cuda/std/string_view> implementation, so I've also updated the version macro.

@davebayer davebayer requested a review from a team as a code owner May 19, 2025 09:01
@davebayer davebayer requested a review from wmaxey May 19, 2025 09:01
@github-project-automation github-project-automation bot moved this to Todo in CCCL May 19, 2025
Copy link

copy-pr-bot bot commented May 19, 2025

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

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@cccl-authenticator-app cccl-authenticator-app bot moved this from Todo to In Review in CCCL May 19, 2025
Comment on lines 34 to 36

_CCCL_EXEC_CHECK_DISABLE
template <class _CharT, class _SizeT, class _Traits, _SizeT __npos>
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Adding _CCCL_EXEC_CHECK_DISABLE is necessary to allow using e. g. host only char_traits

Copy link
Contributor

Choose a reason for hiding this comment

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

I am a bit torn here, we should use host only char_traits as they will crash.

I believe the solution with just casting to ::std::string_view is the better solution

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The problem is that the user can pass any type traits he wants, they might be host only, or device only..

Comment on lines 754 to 766
template <class _CharT, class _Traits>
_LIBCUDACXX_HIDE_FROM_ABI ::std::basic_ostream<_CharT, _Traits>&
_CCCL_HIDE_FROM_ABI _CCCL_HOST ::std::basic_ostream<_CharT, _Traits>&
operator<<(::std::basic_ostream<_CharT, _Traits>& __os, basic_string_view<_CharT, _Traits> __str)
{
return __os.write(__str.data(), static_cast<::std::streamsize>(__str.size()));
return __os << ::std::basic_string_view<_CharT, _Traits>{__str.data(), __str.size()};
}

template <class _CharT>
_CCCL_HIDE_FROM_ABI _CCCL_HOST ::std::basic_ostream<_CharT, ::std::char_traits<_CharT>>& operator<<(
::std::basic_ostream<_CharT, ::std::char_traits<_CharT>>& __os, basic_string_view<_CharT, char_traits<_CharT>> __str)
{
return __os << ::std::basic_string_view<_CharT, ::std::char_traits<_CharT>>{__str.data(), __str.size()};
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I've had to split the implementation to map the cuda::std::char_traits to std::char_traits

Comment on lines 34 to 36

_CCCL_EXEC_CHECK_DISABLE
template <class _CharT, class _SizeT, class _Traits, _SizeT __npos>
Copy link
Contributor

Choose a reason for hiding this comment

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

I am a bit torn here, we should use host only char_traits as they will crash.

I believe the solution with just casting to ::std::string_view is the better solution

@github-project-automation github-project-automation bot moved this from In Review to In Progress in CCCL May 19, 2025
@@ -147,6 +147,21 @@ public:
, __size_{_CUDA_VRANGES::size(__r)}
{}

#if !_CCCL_COMPILER(NVRTC)
_CCCL_HIDE_FROM_ABI constexpr basic_string_view(::std::basic_string_view<_CharT, _Traits> __sv) noexcept
Copy link
Contributor

Choose a reason for hiding this comment

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

This forces use of the same char_traits than this string_view is using. We should templatize this so that we can construct from a ::std::string_view

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is intentional, the idea is that both char traits types must match with an exception of std::char_traits that are mapped to cuda::std::char_traits. That means that:

  • cuda::std::basic_string_view<CharT, cuda::std::char_traits<CharT>> can be constructed (converted) from (to) both std::basic_string_view<CharT, std::char_traits<CharT>> and std::basic_string_view<CharT, cuda::std::char_traits<CharT>>
  • cuda::std::basic_string_view<CharT, Traits> can be constructed (converted) from (to) std::basic_string_view<CharT, Traits>

Do you think this is wrong?

Copy link
Contributor

Choose a reason for hiding this comment

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

I believe then should have 2 constructors,

  • basic_string_view(::std::basic_string_view<_CharT, _Traits> __sv)
  • basic_string_view(::std::basic_string_view<_CharT, ::std::char_traits<_CharT>> __sv)

We can then omit the constraint on the second constructor

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's what we have now. But I don't think we can omit the constraint, because we must ensure that the current type traits are cuda::std::char_traits, otherwise we would allow something like:

cuda::std::basic_string_view<my_char, my_char_traits>{std::basic_string_view<my_char, std::char_traits<my_char>>{...}};

which is wrong

Copy link
Contributor

Choose a reason for hiding this comment

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

I dont think so, the incoming type traits are correct and its the users responsibility to ensure that their char_traits are conforming.

Also no one writes their own char_traits, so I believe its more of a theoretical question

@davebayer davebayer force-pushed the string_view_ostream branch from 031d5fa to 576a28c Compare May 20, 2025 07:00
@miscco
Copy link
Contributor

miscco commented May 20, 2025

/ok to test 576a28c

@miscco
Copy link
Contributor

miscco commented May 20, 2025

/ok to test 12ebede

@miscco
Copy link
Contributor

miscco commented May 20, 2025

/ok to test d8346ae

@miscco
Copy link
Contributor

miscco commented May 20, 2025

/ok to test 2974a4f

Copy link
Contributor

🟨 CI finished in 4h 38m: Pass: 94%/183 | Total: 1d 09h | Avg: 10m 52s | Max: 41m 07s | Hits: 95%/270797
  • 🟨 libcudacxx: Pass: 86%/45 | Total: 9h 37m | Avg: 12m 49s | Max: 41m 07s | Hits: 88%/114327

    🔍 cpu: amd64 🔍
      🔍 amd64              Pass:  86%/43  | Total:  9h 20m | Avg: 13m 01s | Max: 41m 07s | Hits:  88%/107758
      🟩 arm64              Pass: 100%/2   | Total: 17m 09s | Avg:  8m 34s | Max:  8m 36s | Hits:  95%/6569  
    🔍 cudacxx_family: nvcc 🔍
      🟩 ClangCUDA          Pass: 100%/2   | Total: 48m 52s | Avg: 24m 26s | Max: 25m 34s | Hits:  26%/6533  
      🔍 nvcc               Pass:  86%/43  | Total:  8h 48m | Avg: 12m 17s | Max: 41m 07s | Hits:  92%/107794
    🔍 gpu: rtx2080 🔍
      🟩 h100               Pass: 100%/2   | Total: 20m 55s | Avg: 10m 27s | Max: 15m 01s | Hits:  96%/3367  
      🔍 rtx2080            Pass:  86%/43  | Total:  9h 16m | Avg: 12m 56s | Max: 41m 07s | Hits:  88%/110960
    🚨 sm: 75 🚨
      🔥 75                 Pass:   0%/2   | Total: 37m 13s | Avg: 18m 36s | Max: 19m 51s
      🟩 90                 Pass: 100%/2   | Total: 20m 55s | Avg: 10m 27s | Max: 15m 01s | Hits:  96%/3367  
      🟩 90;90a;100         Pass: 100%/1   | Total:  7m 53s | Avg:  7m 53s | Max:  7m 53s | Hits:  96%/3367  
    🟨 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 48m 52s | Avg: 24m 26s | Max: 25m 34s | Hits:  26%/6533  
      🟨 nvcc12.0           Pass:  80%/5   | Total:  1h 00m | Avg: 12m 07s | Max: 32m 20s | Hits:  96%/12960 
      🟨 nvcc12.8           Pass:  86%/38  | Total:  7h 47m | Avg: 12m 18s | Max: 41m 07s | Hits:  92%/94834 
    🟨 cxx
      🟩 Clang14            Pass: 100%/4   | Total: 30m 57s | Avg:  7m 44s | Max:  9m 04s | Hits:  96%/13022 
      🟩 Clang15            Pass: 100%/2   | Total: 16m 25s | Avg:  8m 12s | Max:  8m 52s | Hits:  96%/6529  
      🟩 Clang16            Pass: 100%/2   | Total: 15m 36s | Avg:  7m 48s | Max:  8m 34s | Hits:  96%/6529  
      🟩 Clang17            Pass: 100%/2   | Total: 14m 48s | Avg:  7m 24s | Max:  8m 02s | Hits:  97%/6529  
      🟩 Clang18            Pass: 100%/2   | Total: 15m 22s | Avg:  7m 41s | Max:  8m 01s | Hits:  96%/6529  
      🟩 Clang19            Pass: 100%/6   | Total:  1h 30m | Avg: 15m 03s | Max: 25m 34s | Hits:  68%/16346 
      🟩 GCC7               Pass: 100%/2   | Total: 10m 12s | Avg:  5m 06s | Max:  5m 18s | Hits:  97%/6465  
      🟩 GCC8               Pass: 100%/1   | Total:  5m 46s | Avg:  5m 46s | Max:  5m 46s | Hits:  97%/3243  
      🟩 GCC9               Pass: 100%/2   | Total: 14m 02s | Avg:  7m 01s | Max:  7m 29s | Hits:  96%/6477  
      🟩 GCC10              Pass: 100%/2   | Total: 15m 45s | Avg:  7m 52s | Max:  8m 24s | Hits:  96%/6531  
      🟩 GCC11              Pass: 100%/2   | Total: 15m 34s | Avg:  7m 47s | Max:  8m 14s | Hits:  96%/6527  
      🟩 GCC12              Pass: 100%/2   | Total: 16m 00s | Avg:  8m 00s | Max:  9m 01s | Hits:  95%/6531  
      🟨 GCC13              Pass:  80%/10  | Total:  1h 51m | Avg: 11m 07s | Max: 19m 51s | Hits:  96%/16550 
      🟥 MSVC14.29          Pass:   0%/2   | Total:  1h 02m | Avg: 31m 24s | Max: 32m 20s
      🟥 MSVC14.42          Pass:   0%/2   | Total:  1h 04m | Avg: 32m 11s | Max: 33m 06s
      🟩 NVHPC25.3          Pass: 100%/2   | Total:  1h 18m | Avg: 39m 03s | Max: 41m 07s | Hits:  35%/6519  
    🟨 cxx_family
      🟩 Clang              Pass: 100%/18  | Total:  3h 03m | Avg: 10m 11s | Max: 25m 34s | Hits:  88%/55484 
      🟨 GCC                Pass:  90%/21  | Total:  3h 08m | Avg:  8m 58s | Max: 19m 51s | Hits:  96%/52324 
      🟥 MSVC               Pass:   0%/4   | Total:  2h 07m | Avg: 31m 47s | Max: 33m 06s
      🟩 NVHPC              Pass: 100%/2   | Total:  1h 18m | Avg: 39m 03s | Max: 41m 07s | Hits:  35%/6519  
    🟨 jobs
      🟨 Build              Pass:  89%/39  | Total:  8h 06m | Avg: 12m 28s | Max: 41m 07s | Hits:  88%/114327
      🟥 NVRTC              Pass:   0%/2   | Total: 37m 13s | Avg: 18m 36s | Max: 19m 51s
      🟩 Test               Pass: 100%/3   | Total: 51m 02s | Avg: 17m 00s | Max: 18m 38s
      🟩 VerifyCodegen      Pass: 100%/1   | Total:  2m 32s | Avg:  2m 32s | Max:  2m 32s
    🟨 ctk
      🟨 12.0               Pass:  80%/5   | Total:  1h 00m | Avg: 12m 07s | Max: 32m 20s | Hits:  96%/12960 
      🟨 12.8               Pass:  87%/40  | Total:  8h 36m | Avg: 12m 55s | Max: 41m 07s | Hits:  87%/101367
    🟨 std
      🟨 17                 Pass:  81%/22  | Total:  4h 44m | Avg: 12m 54s | Max: 41m 07s | Hits:  88%/58352 
      🟨 20                 Pass:  90%/22  | Total:  4h 50m | Avg: 13m 12s | Max: 37m 00s | Hits:  89%/55975 
    
  • 🟨 python: Pass: 66%/12 | Total: 58m 22s | Avg: 4m 51s | Max: 9m 55s

    🟨 jobs
      🟩 Build cuda.cccl    Pass: 100%/2   | Total:  6m 43s | Avg:  3m 21s | Max:  3m 31s
      🟩 Build cuda.cooperative Pass: 100%/2   | Total:  7m 01s | Avg:  3m 30s | Max:  3m 31s
      🟩 Build cuda.parallel Pass: 100%/2   | Total: 19m 26s | Avg:  9m 43s | Max:  9m 55s
      🟨 Test cuda.cccl     Pass:  50%/2   | Total:  7m 26s | Avg:  3m 43s | Max:  4m 28s
      🟥 Test cuda.cooperative Pass:   0%/2   | Total:  5m 47s | Avg:  2m 53s | Max:  2m 54s
      🟨 Test cuda.parallel Pass:  50%/2   | Total: 11m 59s | Avg:  5m 59s | Max:  8m 57s
    🟨 cpu
      🟨 amd64              Pass:  66%/12  | Total: 58m 22s | Avg:  4m 51s | Max:  9m 55s
    🟨 ctk
      🟨 12.8               Pass:  66%/12  | Total: 58m 22s | Avg:  4m 51s | Max:  9m 55s
    🟨 cudacxx
      🟨 nvcc12.8           Pass:  66%/12  | Total: 58m 22s | Avg:  4m 51s | Max:  9m 55s
    🟨 cudacxx_family
      🟨 nvcc               Pass:  66%/12  | Total: 58m 22s | Avg:  4m 51s | Max:  9m 55s
    🟨 cxx
      🟨 GCC13              Pass:  66%/12  | Total: 58m 22s | Avg:  4m 51s | Max:  9m 55s
    🟨 cxx_family
      🟨 GCC                Pass:  66%/12  | Total: 58m 22s | Avg:  4m 51s | Max:  9m 55s
    🟨 gpu
      🟨 rtxa6000           Pass:  66%/12  | Total: 58m 22s | Avg:  4m 51s | Max:  9m 55s
    🟨 py_version
      🟨 3.10               Pass:  66%/6   | Total: 31m 26s | Avg:  5m 14s | Max:  9m 55s
      🟨 3.13               Pass:  66%/6   | Total: 26m 56s | Avg:  4m 29s | Max:  9m 31s
    
  • 🟩 cub: Pass: 100%/47 | Total: 10h 47m | Avg: 13m 46s | Max: 36m 00s | Hits: 99%/57218

    🟩 cpu
      🟩 amd64              Pass: 100%/45  | Total: 10h 32m | Avg: 14m 02s | Max: 36m 00s | Hits:  99%/54728 
      🟩 arm64              Pass: 100%/2   | Total: 14m 57s | Avg:  7m 28s | Max:  8m 29s | Hits:  99%/2490  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total: 57m 31s | Avg: 11m 30s | Max: 28m 13s | Hits:  99%/6042  
      🟩 12.8               Pass: 100%/42  | Total:  9h 49m | Avg: 14m 02s | Max: 36m 00s | Hits:  99%/51176 
    🟩 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 11m 41s | Avg:  5m 50s | Max:  6m 03s | Hits:  99%/2143  
      🟩 nvcc12.0           Pass: 100%/5   | Total: 57m 31s | Avg: 11m 30s | Max: 28m 13s | Hits:  99%/6042  
      🟩 nvcc12.8           Pass: 100%/40  | Total:  9h 37m | Avg: 14m 26s | Max: 36m 00s | Hits:  99%/49033 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 11m 41s | Avg:  5m 50s | Max:  6m 03s | Hits:  99%/2143  
      🟩 nvcc               Pass: 100%/45  | Total: 10h 35m | Avg: 14m 07s | Max: 36m 00s | Hits:  99%/55075 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total: 27m 11s | Avg:  6m 47s | Max:  7m 10s | Hits:  99%/4982  
      🟩 Clang15            Pass: 100%/2   | Total: 14m 36s | Avg:  7m 18s | Max:  7m 21s | Hits:  99%/2487  
      🟩 Clang16            Pass: 100%/2   | Total: 14m 19s | Avg:  7m 09s | Max:  7m 19s | Hits:  99%/2487  
      🟩 Clang17            Pass: 100%/2   | Total: 14m 26s | Avg:  7m 13s | Max:  7m 15s | Hits:  99%/2487  
      🟩 Clang18            Pass: 100%/2   | Total: 13m 55s | Avg:  6m 57s | Max:  7m 04s | Hits:  99%/2487  
      🟩 Clang19            Pass: 100%/7   | Total:  1h 23m | Avg: 11m 57s | Max: 29m 06s | Hits:  99%/8362  
      🟩 GCC7               Pass: 100%/2   | Total: 17m 08s | Avg:  8m 34s | Max:  9m 14s | Hits:  99%/2490  
      🟩 GCC8               Pass: 100%/1   | Total:  8m 24s | Avg:  8m 24s | Max:  8m 24s | Hits:  99%/1245  
      🟩 GCC9               Pass: 100%/2   | Total: 17m 32s | Avg:  8m 46s | Max:  9m 03s | Hits:  99%/2490  
      🟩 GCC10              Pass: 100%/2   | Total: 17m 57s | Avg:  8m 58s | Max:  9m 05s | Hits:  99%/2491  
      🟩 GCC11              Pass: 100%/2   | Total: 17m 47s | Avg:  8m 53s | Max:  8m 54s | Hits:  99%/2487  
      🟩 GCC12              Pass: 100%/2   | Total: 18m 31s | Avg:  9m 15s | Max:  9m 31s | Hits:  99%/2487  
      🟩 GCC13              Pass: 100%/11  | Total:  3h 56m | Avg: 21m 30s | Max: 36m 00s | Hits:  99%/13703 
      🟩 MSVC14.29          Pass: 100%/2   | Total: 56m 52s | Avg: 28m 26s | Max: 28m 39s | Hits:  99%/2122  
      🟩 MSVC14.42          Pass: 100%/2   | Total: 59m 58s | Avg: 29m 59s | Max: 30m 37s | Hits:  99%/2122  
      🟩 NVHPC25.3          Pass: 100%/2   | Total: 28m 15s | Avg: 14m 07s | Max: 14m 23s | Hits:  98%/2289  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/19  | Total:  2h 48m | Avg:  8m 50s | Max: 29m 06s | Hits:  99%/23292 
      🟩 GCC                Pass: 100%/22  | Total:  5h 33m | Avg: 15m 10s | Max: 36m 00s | Hits:  99%/27393 
      🟩 MSVC               Pass: 100%/4   | Total:  1h 56m | Avg: 29m 12s | Max: 30m 37s | Hits:  99%/4244  
      🟩 NVHPC              Pass: 100%/2   | Total: 28m 15s | Avg: 14m 07s | Max: 14m 23s | Hits:  98%/2289  
    🟩 gpu
      🟩 h100               Pass: 100%/3   | Total:  1h 11m | Avg: 23m 51s | Max: 35m 27s | Hits:  99%/3738  
      🟩 rtx2080            Pass: 100%/36  | Total:  6h 19m | Avg: 10m 32s | Max: 30m 37s | Hits:  99%/43518 
      🟩 rtxa6000           Pass: 100%/8   | Total:  3h 15m | Avg: 24m 28s | Max: 36m 00s | Hits:  99%/9962  
    🟩 jobs
      🟩 Build              Pass: 100%/39  | Total:  6h 43m | Avg: 10m 21s | Max: 30m 37s | Hits:  99%/47254 
      🟩 DeviceLaunch       Pass: 100%/1   | Total: 33m 08s | Avg: 33m 08s | Max: 33m 08s | Hits:  99%/1246  
      🟩 GraphCapture       Pass: 100%/1   | Total: 27m 32s | Avg: 27m 32s | Max: 27m 32s | Hits:  99%/1246  
      🟩 HostLaunch         Pass: 100%/3   | Total:  1h 40m | Avg: 33m 31s | Max: 36m 00s | Hits:  99%/3736  
      🟩 TestGPU            Pass: 100%/3   | Total:  1h 22m | Avg: 27m 23s | Max: 31m 10s | Hits:  99%/3736  
    🟩 sm
      🟩 90                 Pass: 100%/3   | Total:  1h 11m | Avg: 23m 51s | Max: 35m 27s | Hits:  99%/3738  
      🟩 90;90a;100         Pass: 100%/1   | Total:  9m 29s | Avg:  9m 29s | Max:  9m 29s | Hits:  99%/1246  
    🟩 std
      🟩 17                 Pass: 100%/21  | Total:  3h 55m | Avg: 11m 12s | Max: 29m 21s | Hits:  99%/25302 
      🟩 20                 Pass: 100%/26  | Total:  6h 51m | Avg: 15m 49s | Max: 36m 00s | Hits:  99%/31916 
    
  • 🟩 thrust: Pass: 100%/47 | Total: 8h 46m | Avg: 11m 11s | Max: 34m 40s | Hits: 99%/84074

    🟩 cmake_options
      🟩 -DTHRUST_DISPATCH_TYPE=Force32bit Pass: 100%/2   | Total: 24m 39s | Avg: 12m 19s | Max: 16m 17s | Hits:  99%/3580  
    🟩 cpu
      🟩 amd64              Pass: 100%/45  | Total:  8h 33m | Avg: 11m 24s | Max: 34m 40s | Hits:  99%/80495 
      🟩 arm64              Pass: 100%/2   | Total: 12m 26s | Avg:  6m 13s | Max:  7m 01s | Hits:  99%/3579  
    🟩 ctk
      🟩 12.0               Pass: 100%/5   | Total: 53m 23s | Avg: 10m 40s | Max: 28m 53s | Hits:  99%/8941  
      🟩 12.8               Pass: 100%/42  | Total:  7h 52m | Avg: 11m 15s | Max: 34m 40s | Hits:  99%/75133 
    🟩 cudacxx
      🟩 ClangCUDA19        Pass: 100%/2   | Total: 11m 31s | Avg:  5m 45s | Max:  5m 50s | Hits: 100%/3578  
      🟩 nvcc12.0           Pass: 100%/5   | Total: 53m 23s | Avg: 10m 40s | Max: 28m 53s | Hits:  99%/8941  
      🟩 nvcc12.8           Pass: 100%/40  | Total:  7h 41m | Avg: 11m 31s | Max: 34m 40s | Hits:  99%/71555 
    🟩 cudacxx_family
      🟩 ClangCUDA          Pass: 100%/2   | Total: 11m 31s | Avg:  5m 45s | Max:  5m 50s | Hits: 100%/3578  
      🟩 nvcc               Pass: 100%/45  | Total:  8h 34m | Avg: 11m 26s | Max: 34m 40s | Hits:  99%/80496 
    🟩 cxx
      🟩 Clang14            Pass: 100%/4   | Total: 23m 11s | Avg:  5m 47s | Max:  6m 13s | Hits: 100%/7156  
      🟩 Clang15            Pass: 100%/2   | Total: 12m 30s | Avg:  6m 15s | Max:  6m 28s | Hits: 100%/3578  
      🟩 Clang16            Pass: 100%/2   | Total: 12m 38s | Avg:  6m 19s | Max:  6m 42s | Hits: 100%/3578  
      🟩 Clang17            Pass: 100%/2   | Total: 12m 21s | Avg:  6m 10s | Max:  6m 13s | Hits: 100%/3578  
      🟩 Clang18            Pass: 100%/2   | Total: 12m 39s | Avg:  6m 19s | Max:  6m 30s | Hits: 100%/3578  
      🟩 Clang19            Pass: 100%/7   | Total: 52m 40s | Avg:  7m 31s | Max: 14m 44s | Hits:  99%/12523 
      🟩 GCC7               Pass: 100%/2   | Total: 13m 34s | Avg:  6m 47s | Max:  7m 05s | Hits:  99%/3580  
      🟩 GCC8               Pass: 100%/1   | Total:  7m 30s | Avg:  7m 30s | Max:  7m 30s | Hits:  99%/1790  
      🟩 GCC9               Pass: 100%/2   | Total: 14m 17s | Avg:  7m 08s | Max:  7m 15s | Hits:  99%/3580  
      🟩 GCC10              Pass: 100%/2   | Total: 14m 39s | Avg:  7m 19s | Max:  7m 35s | Hits:  99%/3580  
      🟩 GCC11              Pass: 100%/2   | Total: 14m 55s | Avg:  7m 27s | Max:  7m 33s | Hits:  99%/3580  
      🟩 GCC12              Pass: 100%/2   | Total: 15m 24s | Avg:  7m 42s | Max:  7m 46s | Hits:  99%/3580  
      🟩 GCC13              Pass: 100%/10  | Total:  1h 43m | Avg: 10m 20s | Max: 17m 15s | Hits:  99%/17900 
      🟩 MSVC14.29          Pass: 100%/2   | Total: 57m 51s | Avg: 28m 55s | Max: 28m 58s | Hits:  99%/3566  
      🟩 MSVC14.42          Pass: 100%/3   | Total:  1h 39m | Avg: 33m 01s | Max: 34m 40s | Hits:  99%/5349  
      🟩 NVHPC25.3          Pass: 100%/2   | Total: 59m 29s | Avg: 29m 44s | Max: 30m 53s | Hits:  99%/3578  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/19  | Total:  2h 05m | Avg:  6m 37s | Max: 14m 44s | Hits:  99%/33991 
      🟩 GCC                Pass: 100%/21  | Total:  3h 03m | Avg:  8m 44s | Max: 17m 15s | Hits:  99%/37590 
      🟩 MSVC               Pass: 100%/5   | Total:  2h 36m | Avg: 31m 23s | Max: 34m 40s | Hits:  99%/8915  
      🟩 NVHPC              Pass: 100%/2   | Total: 59m 29s | Avg: 29m 44s | Max: 30m 53s | Hits:  99%/3578  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 20m 49s | Avg: 10m 24s | Max: 14m 53s | Hits:  99%/3580  
      🟩 rtx2080            Pass: 100%/35  | Total:  5h 47m | Avg:  9m 56s | Max: 31m 01s | Hits:  99%/62611 
      🟩 rtx4090            Pass: 100%/10  | Total:  2h 37m | Avg: 15m 45s | Max: 34m 40s | Hits:  99%/17883 
    🟩 jobs
      🟩 Build              Pass: 100%/40  | Total:  6h 50m | Avg: 10m 15s | Max: 33m 24s | Hits:  99%/71553 
      🟩 TestCPU            Pass: 100%/3   | Total: 52m 38s | Avg: 17m 32s | Max: 34m 40s | Hits:  99%/5362  
      🟩 TestGPU            Pass: 100%/4   | Total:  1h 03m | Avg: 15m 47s | Max: 17m 15s | Hits:  99%/7159  
    🟩 sm
      🟩 90                 Pass: 100%/2   | Total: 20m 49s | Avg: 10m 24s | Max: 14m 53s | Hits:  99%/3580  
      🟩 90;90a;100         Pass: 100%/1   | Total:  7m 37s | Avg:  7m 37s | Max:  7m 37s | Hits:  99%/1790  
    🟩 std
      🟩 17                 Pass: 100%/21  | Total:  3h 54m | Avg: 11m 11s | Max: 31m 01s | Hits:  99%/37560 
      🟩 20                 Pass: 100%/24  | Total:  4h 26m | Avg: 11m 06s | Max: 34m 40s | Hits:  99%/42934 
    
  • 🟩 cudax: Pass: 100%/26 | Total: 2h 25m | Avg: 5m 35s | Max: 13m 41s | Hits: 99%/14850

    🟩 cpu
      🟩 amd64              Pass: 100%/22  | Total:  2h 11m | Avg:  5m 57s | Max: 13m 41s | Hits:  99%/12474 
      🟩 arm64              Pass: 100%/4   | Total: 14m 15s | Avg:  3m 33s | Max:  3m 49s | Hits:  99%/2376  
    🟩 ctk
      🟩 12.0               Pass: 100%/3   | Total: 20m 41s | Avg:  6m 53s | Max: 13m 41s | Hits:  98%/1487  
      🟩 12.8               Pass: 100%/23  | Total:  2h 04m | Avg:  5m 25s | Max: 12m 59s | Hits:  99%/13363 
    🟩 cudacxx
      🟩 nvcc12.0           Pass: 100%/3   | Total: 20m 41s | Avg:  6m 53s | Max: 13m 41s | Hits:  98%/1487  
      🟩 nvcc12.8           Pass: 100%/23  | Total:  2h 04m | Avg:  5m 25s | Max: 12m 59s | Hits:  99%/13363 
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/26  | Total:  2h 25m | Avg:  5m 35s | Max: 13m 41s | Hits:  99%/14850 
    🟩 cxx
      🟩 Clang14            Pass: 100%/2   | Total:  7m 16s | Avg:  3m 38s | Max:  3m 55s | Hits: 100%/1192  
      🟩 Clang15            Pass: 100%/1   | Total:  3m 58s | Avg:  3m 58s | Max:  3m 58s | Hits: 100%/594   
      🟩 Clang16            Pass: 100%/1   | Total:  4m 04s | Avg:  4m 04s | Max:  4m 04s | Hits: 100%/594   
      🟩 Clang17            Pass: 100%/1   | Total:  4m 04s | Avg:  4m 04s | Max:  4m 04s | Hits: 100%/594   
      🟩 Clang18            Pass: 100%/1   | Total:  3m 53s | Avg:  3m 53s | Max:  3m 53s | Hits: 100%/594   
      🟩 Clang19            Pass: 100%/4   | Total: 18m 53s | Avg:  4m 43s | Max:  8m 30s | Hits: 100%/2376  
      🟩 GCC10              Pass: 100%/2   | Total:  7m 35s | Avg:  3m 47s | Max:  3m 56s | Hits:  99%/1192  
      🟩 GCC11              Pass: 100%/1   | Total:  4m 08s | Avg:  4m 08s | Max:  4m 08s | Hits:  99%/594   
      🟩 GCC12              Pass: 100%/1   | Total:  4m 26s | Avg:  4m 26s | Max:  4m 26s | Hits:  99%/594   
      🟩 GCC13              Pass: 100%/8   | Total: 42m 34s | Avg:  5m 19s | Max: 10m 28s | Hits:  99%/4752  
      🟩 MSVC14.39          Pass: 100%/1   | Total: 13m 41s | Avg: 13m 41s | Max: 13m 41s | Hits:  95%/295   
      🟩 MSVC14.42          Pass: 100%/1   | Total: 12m 59s | Avg: 12m 59s | Max: 12m 59s | Hits:  95%/295   
      🟩 NVHPC25.3          Pass: 100%/2   | Total: 17m 54s | Avg:  8m 57s | Max:  9m 11s | Hits:  97%/1184  
    🟩 cxx_family
      🟩 Clang              Pass: 100%/10  | Total: 42m 08s | Avg:  4m 12s | Max:  8m 30s | Hits: 100%/5944  
      🟩 GCC                Pass: 100%/12  | Total: 58m 43s | Avg:  4m 53s | Max: 10m 28s | Hits:  99%/7132  
      🟩 MSVC               Pass: 100%/2   | Total: 26m 40s | Avg: 13m 20s | Max: 13m 41s | Hits:  95%/590   
      🟩 NVHPC              Pass: 100%/2   | Total: 17m 54s | Avg:  8m 57s | Max:  9m 11s | Hits:  97%/1184  
    🟩 gpu
      🟩 h100               Pass: 100%/2   | Total: 12m 14s | Avg:  6m 07s | Max:  8m 37s | Hits:  99%/1188  
      🟩 rtx2080            Pass: 100%/24  | Total:  2h 13m | Avg:  5m 32s | Max: 13m 41s | Hits:  99%/13662 
    🟩 jobs
      🟩 Build              Pass: 100%/23  | Total:  1h 57m | Avg:  5m 07s | Max: 13m 41s | Hits:  99%/13068 
      🟩 Test               Pass: 100%/3   | Total: 27m 35s | Avg:  9m 11s | Max: 10m 28s | Hits:  99%/1782  
    🟩 sm
      🟩 90                 Pass: 100%/3   | Total: 16m 00s | Avg:  5m 20s | Max:  8m 37s | Hits:  99%/1782  
      🟩 90a                Pass: 100%/1   | Total:  3m 43s | Avg:  3m 43s | Max:  3m 43s | Hits:  99%/594   
    🟩 std
      🟩 17                 Pass: 100%/4   | Total: 19m 39s | Avg:  4m 54s | Max:  8m 43s | Hits:  99%/2374  
      🟩 20                 Pass: 100%/22  | Total:  2h 05m | Avg:  5m 43s | Max: 13m 41s | Hits:  99%/12476 
    
  • 🟩 stdpar: Pass: 100%/4 | Total: 19m 27s | Avg: 4m 51s | Max: 5m 34s

    🟩 cpu
      🟩 amd64              Pass: 100%/2   | Total: 10m 50s | Avg:  5m 25s | Max:  5m 34s
      🟩 arm64              Pass: 100%/2   | Total:  8m 37s | Avg:  4m 18s | Max:  4m 23s
    🟩 ctk
      🟩 12.8               Pass: 100%/4   | Total: 19m 27s | Avg:  4m 51s | Max:  5m 34s
    🟩 cudacxx
      🟩 nvcc12.8           Pass: 100%/4   | Total: 19m 27s | Avg:  4m 51s | Max:  5m 34s
    🟩 cudacxx_family
      🟩 nvcc               Pass: 100%/4   | Total: 19m 27s | Avg:  4m 51s | Max:  5m 34s
    🟩 cxx
      🟩 NVHPC25.3          Pass: 100%/4   | Total: 19m 27s | Avg:  4m 51s | Max:  5m 34s
    🟩 cxx_family
      🟩 NVHPC              Pass: 100%/4   | Total: 19m 27s | Avg:  4m 51s | Max:  5m 34s
    🟩 gpu
      🟩 rtx2080            Pass: 100%/4   | Total: 19m 27s | Avg:  4m 51s | Max:  5m 34s
    🟩 jobs
      🟩 Build              Pass: 100%/4   | Total: 19m 27s | Avg:  4m 51s | Max:  5m 34s
    🟩 std
      🟩 17                 Pass: 100%/2   | Total:  9m 39s | Avg:  4m 49s | Max:  5m 16s
      🟩 20                 Pass: 100%/2   | Total:  9m 48s | Avg:  4m 54s | Max:  5m 34s
    
  • 🟩 cccl_c_parallel: Pass: 100%/2 | Total: 15m 38s | Avg: 7m 49s | Max: 13m 07s | Hits: 98%/328

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

👃 Inspect Changes

Modifications in project?

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

Modifications in project or dependencies?

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

🏃‍ Runner counts (total jobs: 183)

# Runner
129 linux-amd64-cpu16
15 windows-amd64-cpu16
12 linux-arm64-cpu16
12 linux-amd64-gpu-rtxa6000-latest-1
7 linux-amd64-gpu-rtx2080-latest-1
5 linux-amd64-gpu-h100-latest-1
3 linux-amd64-gpu-rtx4090-latest-1

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

Successfully merging this pull request may close these issues.

2 participants