-
Notifications
You must be signed in to change notification settings - Fork 927
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
Remove cuda::proclaim_return_type
from nested lambda
#14607
Conversation
Signed-off-by: Nghia Truong <[email protected]>
Signed-off-by: Nghia Truong <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I confirmed that #14576 builds with this change. I noted in #14610 that we should file an issue with CCCL that documents the compiler versions / etc. used to trigger this error, with a minimal reproduction (especially since RAPIDS CI doesn't complain). The proclaim_return_type
wrapper should not break normal device lambda compilation.
/merge |
This removes `cuda::proclaim_return_type` from a device lambda because that lambda is going to be nested inside another device lambda, which is in turn enclosed by `cuda::proclaim_return_type`. This PR is to fix a compile issue that we encountered: ``` /usr/local/cuda/include/cuda/std/detail/libcxx/include/__functional/invoke.h(402): error: calling a __device__ function("cudf::tdigest::detail::_NV_ANON_NAMESPACE::build_output_column(int, ::std::unique_ptr< ::cudf::column, ::std::default_delete< ::cudf::column> > &&, ::std::unique_ptr< ::cudf::column, ::std::default_delete< ::cudf::column> > &&, ::std::unique_ptr< ::cudf::column, ::std::default_delete< ::cudf::column> > &&, ::std::unique_ptr< ::cudf::column, ::std::default_delete< ::cudf::column> > &&, ::std::unique_ptr< ::cudf::column, ::std::default_delete< ::cudf::column> > &&, bool, ::rmm::cuda_stream_view, ::rmm::mr::device_memory_resource *) ::[lambda(int) (instance 2)]::operator ()(int) const") from a __host__ __device__ function("__invoke") is not allowed ``` Note: The issue is reproducible only in our build environment: ARM architecture, cuda 12 + rockylinux8. Closes rapidsai#14610. Authors: - Nghia Truong (https://github.com/ttnghia) Approvers: - Michael Schellenberger Costa (https://github.com/miscco) - Karthikeyan (https://github.com/karthikeyann) - https://github.com/nvdbaranec - Bradley Dice (https://github.com/bdice) URL: rapidsai#14607
This removes
cuda::proclaim_return_type
from a device lambda because that lambda is going to be nested inside another device lambda, which is in turn enclosed bycuda::proclaim_return_type
.This PR is to fix a compile issue that we encountered:
Note: The issue is reproducible only in our build environment: ARM architecture, cuda 12 + rockylinux8.
Closes #14610.