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

Mark all cccl and cuco kernels with hidden visibility #523

Conversation

robertmaynard
Copy link
Contributor

Description

Patch both CCCL and CUCO to have only internal linkage.

For cuco I am working on upstreaming these changes ( NVIDIA/cuCollections#422 ). Once that is accepted and we have validated that moving cuco is stable ( e.g. changes around cuco::experimental::static_set ) we can drop this patch set.

For cccl the long term fix is to move to CCCL 2.3+, but due to issues ( NVIDIA/cccl#1249, maybe others ) that isn't viable for the 24.02 timeframe.
Since the CCCL changes mean C++ and CUDA sources have non compatible ABI's, we need to specify THRUST_DISABLE_ABI_NAMESPACE and THRUST_IGNORE_ABI_NAMESPACE_ERROR so that we don't change ABI in rapids-cmake consumers since they expect 2.2 behavior.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@robertmaynard robertmaynard added bug Something isn't working non-breaking Introduces a non-breaking change labels Jan 16, 2024
@robertmaynard robertmaynard force-pushed the bug/mark_cccl_cuco_kernels_as_hidden branch from 5ff3398 to 7eab859 Compare January 16, 2024 18:24
rapids-cmake/cpm/versions.json Show resolved Hide resolved
@bdice
Copy link
Contributor

bdice commented Jan 16, 2024

Looks good to me. We can merge this after testing at least a few of RAFT, cuML, cuGraph, etc.

@robertmaynard robertmaynard force-pushed the bug/mark_cccl_cuco_kernels_as_hidden branch 2 times, most recently from c04724c to 45c8ad8 Compare January 16, 2024 20:36
@robertmaynard
Copy link
Contributor Author

robertmaynard commented Jan 17, 2024

Looks good to me. We can merge this after testing at least a few of RAFT, cuML, cuGraph, etc.

RAFT PR: rapidsai/raft#2098 builds are good
cudf PR: rapidsai/cudf#14768 builds are good
cugraph PR: rapidsai/cugraph#4098 builds are good
cugraph-ops PR: https://github.com/rapidsai/cugraph-ops/pull/586 builds are good

@robertmaynard
Copy link
Contributor Author

I think the valid builds in raft/cudf/cugraph are sufficient that this PR won't break anything.
That will also unblock the cudf CI external linkage checks as well.

@robertmaynard
Copy link
Contributor Author

/merge

@robertmaynard robertmaynard marked this pull request as ready for review January 18, 2024 18:43
@robertmaynard robertmaynard requested a review from a team as a code owner January 18, 2024 18:43
@rapids-bot rapids-bot bot merged commit 40d1a96 into rapidsai:branch-24.02 Jan 18, 2024
16 checks passed
@robertmaynard robertmaynard deleted the bug/mark_cccl_cuco_kernels_as_hidden branch January 18, 2024 18:43
PointKernel pushed a commit to PointKernel/rapids-cmake that referenced this pull request Jan 23, 2024
Patch both CCCL and CUCO to have only internal linkage.

For cuco I am working on upstreaming these changes ( NVIDIA/cuCollections#422 ). Once that is accepted and we have validated that moving cuco is stable ( e.g. changes around `cuco::experimental::static_set` ) we can drop this patch set.

For cccl the long term fix is to move to CCCL 2.3+, but due to issues ( NVIDIA/cccl#1249, maybe others ) that isn't viable for the 24.02 timeframe.
Since the CCCL changes mean C++ and CUDA sources have non compatible ABI's, we need to specify `THRUST_DISABLE_ABI_NAMESPACE` and `THRUST_IGNORE_ABI_NAMESPACE_ERROR` so that we don't change ABI in rapids-cmake consumers since they expect 2.2 behavior.

Authors:
  - Robert Maynard (https://github.com/robertmaynard)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: rapidsai#523
rapids-bot bot pushed a commit to rapidsai/cudf that referenced this pull request Mar 5, 2024
This is to remove the row conversion code from libcudf. It was move from spark-rapids-jni (by #14664) to temporarily workaround the issue due to conflict of kernel names that causes invalid memory access when calling to `thrust::in(ex)clusive_scan` (NVIDIA/spark-rapids-jni#1567).

Now we have fixes for the namespace visibility issue (by marking all libcudf kenels private in rapidsai/rapids-cmake#523 and NVIDIA/cuCollections#422) and need to move back the code.

Closes #14853.

Authors:
  - Nghia Truong (https://github.com/ttnghia)

Approvers:
  - David Wendt (https://github.com/davidwendt)
  - Bradley Dice (https://github.com/bdice)

URL: #15234
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working non-breaking Introduces a non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants