NVIDIA / NVIDIA/cudf

[FEA] libcudf should not rely on the ABI stability of Thrust types

Open
#14,737 2 comments 0 reactions 0 assignees View on GitHub
feature request libcudf
Dominant language
C++
Stars
9.8k
Forks
1.1k
Avg merge
3d 6m
Merged PRs (30d)
278

Description

**Is your feature request related to a problem? Please describe.**

libcudf's public API currently includes use of Thrust types like `thrust::device_vector`. This means libcudf implicitly depends on the ABI of those Thrust types to be stable not only across Thrust versions, but even within the same version (e.g., host TUs vs device TUs).

This is problematic because [Thrust and CUB symbols make no ABI stability guarantees](https://github.com/nvidia/cccl?tab=readme-ov-file#application-binary-interface-abi).

**Describe the solution you'd like**
Thrust types in libcudf's public API should be replaced with types that have ABI guarantees. This likely means replacing with equivalent `cuda::std::` types.

**Additional context**

This is related to https://github.com/rapidsai/cudf/issues/14734 in a roundabout way that isn't worth going into the details.

See also:
https://github.com/NVIDIA/cccl/issues/1246
https://github.com/NVIDIA/cccl/issues/1262

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.