NVIDIA / NVIDIA/cuvs

[BUG] CUVS_EXPLICIT_INSTANTIATE_ONLY & RAFT_COMPILED used but never defined

Open
#242 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.