-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This PR separates out the libcudacxx update from #399. I am proposing to update only libcudacxx to 2.1.0, and leave thrust/cub pinned at 1.17.2 until all of RAPIDS is ready to update. Then we can move forward with #399 next. Separating the update for libcudacxx should allow RAPIDS to use some of the new features we want while giving more time to RAPIDS libraries to migrate to CCCL 2.1.0 (particularly for breaking changes in Thrust/CUB). **Immediate benefits of bumping only libcudacxx to 2.1.0:** - Enables migration to Thrust/CUB 2.1.0 to be done more incrementally, because we could merge PRs using `cuda::proclaim_return_type` into cudf/etc. which would reduce the amount of unmerged code we're maintaining in the "testing PRs" while waiting for all RAPIDS repos to be ready for Thrust/CUB 2.1.0. - Unblocks work in rmm (rapidsai/rmm#1095) and quite a few planned changes for cuCollections (such as NVIDIA/cuCollections#332, NVIDIA/cuCollections#331, NVIDIA/cuCollections#289) **Risk Assessment:** This should be fairly low risk because libcudacxx 2.1.0 is similar to our current pinning of 1.9.1 -- the major version bump was meant to align with Thrust/CUB and isn't indicative of major breaking changes. Authors: - Bradley Dice (https://github.com/bdice) Approvers: - Robert Maynard (https://github.com/robertmaynard) - Vyas Ramasubramani (https://github.com/vyasr) URL: #464
- Loading branch information
Showing
5 changed files
with
108 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
74 changes: 74 additions & 0 deletions
74
rapids-cmake/cpm/patches/libcudacxx/proclaim_return_type_nv_exec_check_disable.diff
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
diff --git a/include/cuda/std/detail/libcxx/include/__functional/invoke.h b/include/cuda/std/detail/libcxx/include/__functional/invoke.h | ||
index 1ab318d5..850d00a8 100644 | ||
--- a/include/cuda/std/detail/libcxx/include/__functional/invoke.h | ||
+++ b/include/cuda/std/detail/libcxx/include/__functional/invoke.h | ||
@@ -342,6 +342,9 @@ _LIBCUDACXX_INLINE_VISIBILITY __nat __invoke(__any, _Args&& ...__args); | ||
|
||
// bullets 1, 2 and 3 | ||
|
||
+#ifdef __CUDACC__ | ||
+#pragma nv_exec_check_disable | ||
+#endif | ||
template <class _Fp, class _A0, class ..._Args, | ||
class = __enable_if_bullet1<_Fp, _A0> > | ||
inline _LIBCUDACXX_INLINE_VISIBILITY | ||
@@ -350,6 +353,9 @@ __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | ||
_NOEXCEPT_(noexcept((static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...))) | ||
{ return (static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...); } | ||
|
||
+#ifdef __CUDACC__ | ||
+#pragma nv_exec_check_disable | ||
+#endif | ||
template <class _Fp, class _A0, class ..._Args, | ||
class = __enable_if_bullet2<_Fp, _A0> > | ||
inline _LIBCUDACXX_INLINE_VISIBILITY | ||
@@ -358,6 +364,9 @@ __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | ||
_NOEXCEPT_(noexcept((__a0.get().*__f)(static_cast<_Args&&>(__args)...))) | ||
{ return (__a0.get().*__f)(static_cast<_Args&&>(__args)...); } | ||
|
||
+#ifdef __CUDACC__ | ||
+#pragma nv_exec_check_disable | ||
+#endif | ||
template <class _Fp, class _A0, class ..._Args, | ||
class = __enable_if_bullet3<_Fp, _A0> > | ||
inline _LIBCUDACXX_INLINE_VISIBILITY | ||
@@ -368,6 +377,9 @@ __invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args) | ||
|
||
// bullets 4, 5 and 6 | ||
|
||
+#ifdef __CUDACC__ | ||
+#pragma nv_exec_check_disable | ||
+#endif | ||
template <class _Fp, class _A0, | ||
class = __enable_if_bullet4<_Fp, _A0> > | ||
inline _LIBCUDACXX_INLINE_VISIBILITY | ||
@@ -376,6 +388,9 @@ __invoke(_Fp&& __f, _A0&& __a0) | ||
_NOEXCEPT_(noexcept(static_cast<_A0&&>(__a0).*__f)) | ||
{ return static_cast<_A0&&>(__a0).*__f; } | ||
|
||
+#ifdef __CUDACC__ | ||
+#pragma nv_exec_check_disable | ||
+#endif | ||
template <class _Fp, class _A0, | ||
class = __enable_if_bullet5<_Fp, _A0> > | ||
inline _LIBCUDACXX_INLINE_VISIBILITY | ||
@@ -384,6 +399,9 @@ __invoke(_Fp&& __f, _A0&& __a0) | ||
_NOEXCEPT_(noexcept(__a0.get().*__f)) | ||
{ return __a0.get().*__f; } | ||
|
||
+#ifdef __CUDACC__ | ||
+#pragma nv_exec_check_disable | ||
+#endif | ||
template <class _Fp, class _A0, | ||
class = __enable_if_bullet6<_Fp, _A0> > | ||
inline _LIBCUDACXX_INLINE_VISIBILITY | ||
@@ -394,6 +412,9 @@ __invoke(_Fp&& __f, _A0&& __a0) | ||
|
||
// bullet 7 | ||
|
||
+#ifdef __CUDACC__ | ||
+#pragma nv_exec_check_disable | ||
+#endif | ||
template <class _Fp, class ..._Args> | ||
inline _LIBCUDACXX_INLINE_VISIBILITY | ||
_LIBCUDACXX_CONSTEXPR decltype(_CUDA_VSTD::declval<_Fp>()(_CUDA_VSTD::declval<_Args>()...)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters