NVIDIA / NVIDIA/cuCollections

Enable opt-out for bitwise comparable payload requirement

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

Nobody has claimed this yet.

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

Description

Background

We currently require payload types to be bitwise comparable, which is required when we use the "packed CAS" insertion strategy.

Discussion from #426:

we could consider skipping the packed-CAS code path when is_bitwise_comparable_v(Key) && !is_bitwise_comparable_v(Value)

I'd rather keep performance-related settings as an opt-out rather than opt-in, i.e., we could add a global flag CUCO_REQUIRE_BITWISE_COMPARABLE_PAYLOADS which is on by default but can be turned off by the user.

This, of course, should be documented with an example.

Originally posted by @sleeepyjack in https://github.com/NVIDIA/cuCollections/discussions/426#discussioncomment-8213879

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 packed-CAS insertion path and the is_bitwise_comparable_v check. Trace how payload requirements are enforced, then identify the documentation location for the requested example. Done means the default requirement remains enabled, users can opt out through CUCO_REQUIRE_BITWISE_COMPARABLE_PAYLOADS, and the opt-out is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.