[FEA] New storage class concept
Nobody has claimed this yet.
- Dominant language
- Cuda
- Stars
- 667
- Forks
- 120
- Avg merge
- 7d 5h
- Merged PRs (30d)
- 4
Description
Part of #110 (Refactor of open address data structures)
Development branch: NVIDIA/cuCollections/refactor
Synopsis
A conceptual list of <key,payload> elements that need not necessarily be contiguous in memory. For example, vector< pair<key,value> > or vector<key> and vector<value> (i.e., AoS vs SoA) could be valid implementations of storage.
TODOs
- Implement classes
cuco::storage::array_of_structsandcuco::storage::struct_of_arraysand (optionally)cuco::storage::array_of_structs_of_arrays(closes #103) - Own the mechanism of atomically updating a given slot using
cuda::atomic_ref(closes #183) - It should provide some mechanism for loading an immutable "window" of slots. The intention is to provide a standard way of using vector load/store operations
-
Enable querying if concurrent insert/find operations are possibleNo longer desired due to operator mixins
References
- https://godbolt.org/z/9bosKoW4v (distinct "ProbingScheme" and "Storage" concepts)
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 with the refactor development branch and read the issue's Godbolt reference for the distinct ProbingScheme and Storage concepts. Define the scope of cuco::storage::array_of_structs and struct_of_arrays, and optionally array_of_structs_of_arrays, then verify that the resulting abstractions support the listed slot-update and immutable-window requirements.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100