[BUG] CUVS_EXPLICIT_INSTANTIATE_ONLY & RAFT_COMPILED used but never defined
Nobody has claimed this yet.
- Dominant language
- Cuda
- Stars
- 854
- Forks
- 236
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 62
Description
The remnants of the RAFT->cuVS migration, the two definitions CUVS_EXPLICIT_INSTANTIATE_ONLY and RAFT_COMPILED are still used internally in cuVS, but never defined.
As a result, *-ext.cuh files are never touched by the compiler and the detection of implicit instantiation is broken.
I'm not sure if we still need this in cuVS though. On the one hand, since the public API is free of templates, the implicit instantiation on the user side is not possible. On the other hand, these checks still have a value internally in cuVS - to make sure all relevant kernel instances are compiled in separate files in parallel and get used by the calling templated code (rather than re-compiled at the call side).
In any case, we either should remove these constructs or fix and use them.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the definitions and internal uses of CUVS_EXPLICIT_INSTANTIATE_ONLY and RAFT_COMPILED, then inspect the *-ext.cuh files affected by compilation. Determine whether the constructs should be removed or restored; done means the chosen approach fixes the broken implicit-instantiation detection and ensures relevant kernel instances are compiled separately.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100