[FEA] libcudf should not rely on the ABI stability of Thrust types
- 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
Assessment
This issue has not been assessed yet.