NVIDIA / NVIDIA/cuCollections

[FEA] dynamic_map device-side API

Open
#29 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: feature request
Dominant language
Cuda
Stars
667
Forks
120
Avg merge
7d 5h
Merged PRs (30d)
4

Description

Currently, the dynamic_map has only a host-side API, which supports insert, find, contains. It would be useful to have an additional, advanced-usage API supporting __device__ versions of insert, find, and contains.

There are some important considerations in designing this API:

  1. The map will not be able to dynamically resize when using the device-side API. This is because control must be returned to the host to resize. There is no preventing the user from inserting too many keys for the capacity of the map.
  2. The size field of the dynamic_map as well as its constituent static_map objects needs to be updated as the device-side insert is used. This could potentially be done automatically, such as with an RAII wrapper around the device_mutable_view object. It could also be done manually by the user.

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 reading the existing dynamic_map host-side API for insert, find, and contains, then inspect the device_mutable_view mentioned in the issue. Define how the device operations handle fixed capacity and how size fields are updated after device-side inserts. Done means the device-side API and its size-update behavior are specified and implemented without device-side resizing.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.