Skip to content
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

Add libcudacxx as dependency #1606

Open
tarang-jain opened this issue Jun 22, 2023 · 1 comment
Open

Add libcudacxx as dependency #1606

tarang-jain opened this issue Jun 22, 2023 · 1 comment
Labels
feature request New feature or request

Comments

@tarang-jain
Copy link
Contributor

There are some places in the codebase where the return type of __device__ functions is queried from host code. One such example is the use of std::result_of in cpp/include/raft/matrix/gather.cuh. The problem is that the return type of __device__ functions might not be correctly fetched from host code using such std headers. Some references to such concerns from the past are:

A fix therefore is to use cuda::std::result_of with cuda::proclaim_return_type to correctly obtain the return type of device functions (the corresponding headers are #include <cuda/std/type_traits> and #include <cuda/functional> respectively from libcudacxx), which indicates that this issue is a request to include libcudacxx as a raft dependency. This concern was raised in PR #1445.

@cjnolet
Copy link
Member

cjnolet commented Jun 22, 2023

Just a note- we are planning to add this as a top-level dependency of RAFT soon anyways since we eventually need to migrate our mdspan/mdarray implementations to use those already in libcu++. The main gripe with the changes referenced above is that the dependency was added in the middle of a release in a somewhat unrelated PR. When we do add this dependency, we should do it in intentionally, make an announcement to community, and have it on our roadmap to alleviate surprises downstream.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request
Projects
Development

No branches or pull requests

2 participants