-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Persistent CAGRA kernel #2316
Changes from all commits
f8d25c1
cd012c4
a1a091c
e6ad7b6
0137dd4
25dda44
1d60ab5
efd7966
e7c35df
7089ed8
259e5ec
63f996a
3d1011d
8b19907
4d2b8d5
83355ab
f177a81
db5b002
c748160
d51729c
9dd3d32
4361a5e
e96cc0f
c86dfcf
aaba912
8a4ff2e
732072d
7450f6f
8920dfc
ba78957
304a864
0879955
affdcb2
56195f5
a48d8f8
6a1e5f1
c408dae
cf26a2b
6079cc9
8dd4714
fc2ac99
9580ac6
74d47c2
608e61d
22a77c2
c62644d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -124,6 +124,8 @@ struct search_params : ann::search_params { | |
uint32_t num_random_samplings = 1; | ||
/** Bit mask used for initial random seed node selection. */ | ||
uint64_t rand_xor_mask = 0x128394; | ||
/** Whether to use the persistent version of the kernel (only SINGLE_CTA is supported a.t.m.) */ | ||
bool persistent = false; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is this the only parameter that needs to be controlled? What about the temporary buffer size (queue for queries, or max number of threads)? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The buffer sizes are compile-time constants in the current design. I'd like to move some of the new constants to the parameters, but that conflicts with the implicit mechanics of running the kernel. They are not search parameters, but the "runner" parameters and should not be changed across calls to the kernel. |
||
}; | ||
|
||
static_assert(std::is_aggregate_v<index_params>); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to change this for all benchmarks?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That was a temporary change for testing, I've removed that in cuVS PR (cuVS doesn't support uint32_t indexes in the refinement step)