You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Given a key k, a probing sequence provides a sequence of N potentially non-contiguous locations (or values) [i0, i1, i2, ... iN, EMPTY_SENTINEL] where if k exists it is present in [i0, iN].
TODOs
Implement classes cuco::probing_schemes::linear_probing and cuco::probing_schemes::double_hashing
Provide an option for windowed, i.e., vectorized probing via customization point object
for(auto slot_content : custom_range(Probe(key))){
...
if (match(slot_content, key)) returntrue;
}
returnfalse; // reach end() thus no match
CG custom range
for(auto&& slot : cooperative_slot_range(g, k){ // slot is unique on each threadif(g.any( equals(slot, k) )){ returntrue; }
// The evaluation against `end()` will involve another ballot to see if any thread in the group// hit an "EMPTY" slot that indicates the whole group should exit
}
returnfalse;
I find it to be a really helpful exercise to write the concept for a type as a way to really force you to think about what it's bare minimum requirements are.
Part of #110 (Refactor of open address data structures)
Development branch: NVIDIA/cuCollections/refactor
Synopsis
Given a key
k
, a probing sequence provides a sequence ofN
potentially non-contiguous locations (or values)[i0, i1, i2, ... iN, EMPTY_SENTINEL]
where ifk
exists it is present in[i0, iN]
.TODOs
cuco::probing_schemes::linear_probing
andcuco::probing_schemes::double_hashing
Backlog
References
The text was updated successfully, but these errors were encountered: