You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CUB uses THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron for launching all of its kernels. Since all of Thrust kernels will migrate to cub (#26), there's no reason to keep the kernel launcher in Thrust. Unlike remaining tasks in #26, this one is not blocked on VSMem work (#548).
Regarding breaking API, we consider thrust::cuda_cub to be an implementation detail, so strictly speaking there should be no need in maintaining the API in the thrust namespace. Nevertheless, I can see people using thrust::cuda_cub directly, probably because there's no ::detail:: in the name. To be on the safe side, we can add using triple_chevron = cub::detail::triple_chevron.
On the CUB side, we'll need to make sure that triple_chevron header is placed in cccl/cub/cub/detail and the struct itself is in cub::detail:: namespace. Besides that, I'd like to see the test coverage for it. The test should use cdp_launch (example is in /cccl/cub/test/catch2_test_cdp_wrapper.cu) and check that triple_chevron is able to launch kernels from both host and device code. Launching a wrong configuration to validate the return code (example in /cccl/cub/test/catch2_test_debug.cu) would also be helpful.
The text was updated successfully, but these errors were encountered:
CUB uses
THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron
for launching all of its kernels. Since all of Thrust kernels will migrate to cub (#26), there's no reason to keep the kernel launcher in Thrust. Unlike remaining tasks in #26, this one is not blocked on VSMem work (#548).Regarding breaking API, we consider
thrust::cuda_cub
to be an implementation detail, so strictly speaking there should be no need in maintaining the API in the thrust namespace. Nevertheless, I can see people usingthrust::cuda_cub
directly, probably because there's no::detail::
in the name. To be on the safe side, we can addusing triple_chevron = cub::detail::triple_chevron
.On the CUB side, we'll need to make sure that
triple_chevron
header is placed incccl/cub/cub/detail
and the struct itself is incub::detail::
namespace. Besides that, I'd like to see the test coverage for it. The test should usecdp_launch
(example is in /cccl/cub/test/catch2_test_cdp_wrapper.cu) and check thattriple_chevron
is able to launch kernels from both host and device code. Launching a wrong configuration to validate the return code (example in /cccl/cub/test/catch2_test_debug.cu) would also be helpful.The text was updated successfully, but these errors were encountered: