Skip to content

Always build with JIT+LTO#1923

Open
KyleFromNVIDIA wants to merge 27 commits intorapidsai:mainfrom
KyleFromNVIDIA:jit-lto-cuda-12
Open

Always build with JIT+LTO#1923
KyleFromNVIDIA wants to merge 27 commits intorapidsai:mainfrom
KyleFromNVIDIA:jit-lto-cuda-12

Conversation

@KyleFromNVIDIA
Copy link
Member

Since #1909, we've been able to use older versions of the CUDA driver, since we no longer rely on cudaLibraryEnumerateKernels(). Since #1918, we've been using static cudart, which allows us to run on platforms with versions of CUDA older than 12.8 installed, since the runtime library API is now bundled with cuvs. Always build with JIT+LTO so that we can get the full compile time and binary size benefits in CUDA 12 too.

Since rapidsai#1909, we've been able to use
older versions of the CUDA driver, since we no longer rely on
`cudaLibraryEnumerateKernels()`. Since
rapidsai#1918, we've been using static
cudart, which allows us to run on platforms with versions of CUDA older
than 12.8 installed, since the runtime library API is now bundled with
cuvs. Always build with JIT+LTO so that we can get the full compile time
and binary size benefits in CUDA 12 too.
@KyleFromNVIDIA KyleFromNVIDIA requested review from a team as code owners March 16, 2026 20:16
@KyleFromNVIDIA KyleFromNVIDIA requested a review from msarahan March 16, 2026 20:16
@KyleFromNVIDIA KyleFromNVIDIA added breaking Introduces a breaking change improvement Improves an existing functionality labels Mar 16, 2026
@KyleFromNVIDIA KyleFromNVIDIA changed the base branch from main to release/26.04 March 16, 2026 20:17
@KyleFromNVIDIA
Copy link
Member Author

KyleFromNVIDIA commented Mar 16, 2026

It seems that even after #1918, we're still not using cudart_static, since rmm forces us to use the shared version:

./../../..//bin/gtests/libcuvs/STATS_TEST: symbol lookup error: /opt/conda/envs/test/bin/gtests/libcuvs/../../../lib/libcuvs.so: undefined symbol: cudaLibraryGetKernel, version libcudart.so.12

We have to get rmm on cudart_static.

@KyleFromNVIDIA
Copy link
Member Author

We've decided to switch to the driver API instead, since rmm is blocked on rapidsai/cudf#20814, which in turn is also blocked.

@KyleFromNVIDIA KyleFromNVIDIA requested a review from a team as a code owner March 16, 2026 23:26
@KyleFromNVIDIA KyleFromNVIDIA requested a review from a team as a code owner March 17, 2026 00:05
bdice and others added 4 commits March 18, 2026 17:51
- Enable static linking of libcudart by default (`CUDA_STATIC_RUNTIME=ON`)
- Remove `cuda-cudart` from conda recipe run requirements (no longer needed when statically linked)

This is part of a RAPIDS-wide effort to switch to static CUDA runtime linking. See rapidsai/build-planning#235 for tracking.

- `cpp/CMakeLists.txt`: Change `CUDA_STATIC_RUNTIME` default from OFF to ON
- `conda/recipes/cuvs/recipe.yaml`: Remove `cuda-cudart` from run deps
- `conda/recipes/libcuvs/recipe.yaml`: Remove `cuda-cudart` from run deps (4 outputs)

Note: Python builds already use `CUDA_STATIC_RUNTIME=ON` (set in `python/libcuvs/CMakeLists.txt`).

Authors:
  - Bradley Dice (https://github.com/bdice)
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)

Approvers:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Robert Maynard (https://github.com/robertmaynard)
  - Ben Frederickson (https://github.com/benfred)

URL: rapidsai#1627
@KyleFromNVIDIA KyleFromNVIDIA changed the base branch from release/26.04 to main March 18, 2026 18:30
@aamijar aamijar moved this to In Progress in Unstructured Data Processing Mar 18, 2026
@KyleFromNVIDIA KyleFromNVIDIA requested review from a team as code owners March 23, 2026 13:54
Copy link
Member Author

@KyleFromNVIDIA KyleFromNVIDIA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the debug statement when finished

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking Introduces a breaking change improvement Improves an existing functionality

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

5 participants