Skip to content

CUDA: promote opt-in exact bitmap join plans - #92

Merged
StarGazerM merged 1 commit into
mainfrom
feat/doop-bitmap-plan
Sep 24, 2026
Merged

StarGazerM merged 1 commit into
mainfrom
feat/doop-bitmap-plan

Conversation

@StarGazerM

@StarGazerM StarGazerM commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

Promote the reusable opt-in exact bitmap join implementation, not the DOOP research archive or generated query variants.

  • Expose with_plan(dedup_bitmap=True) through DSL, HIR/MIR, index planning, and full CUDA runner emission.
  • Maintain dictionary indexes across producer strata and recursive iterations; support either recursive source role and physical column order.
  • Preserve exact set projection semantics. Reject filters, negation, constants, provenance, count-only/conflicting strategies, unsupported shapes/indexes and unmatched recursive variants instead of approximating them.
  • Require complete runner emission; standalone kernel compilation cannot provide dictionary lifecycle management.
  • Leave examples/doop.py and default planning unchanged. No automatic optimizer selection or end-to-end speedup claim.

Verification

  • Complete integration Python suite: 1,110 passed, 5 skipped.
  • Real bounded CUDA smoke: exact exported tuples for 10 relations / 37 tuples, including existing NEW seeds, reversed physical column order, and both recursive source roles; normal process exit. Initial/max RMM pools were 64/256 MiB to avoid disturbing the running vLLM workload.
  • Additional native boundary smoke: baseline and bitmap each matched the expected 77,874 tuples exactly, across multiple bitmap words, negative int32 values, overlapping join-key projections and the 65,536-row export-chunk boundary; normal process exit with a 256 MiB pool cap.
  • The complete canonical DOOP query compiled successfully in both baseline and bitmap modes with clang++-20/CUDA 12.9.
  • Added rejection regressions for specializations that would discard rule semantics and public compilation API coverage.

Full twelve-dataset GPU timing/correctness is not claimed: an existing vLLM process occupies most of the 48 GB GPU. The next stacked PR supplies CPU/GPU execution and exact cross-backend comparison.

Stack

Depends on #91 for review ordering; merge after that PR. This commit contains only compiler/runtime bitmap support and its documentation/tests.

@StarGazerM
StarGazerM changed the base branch from feat/doop-twelve-datasets to main September 24, 2026 02:44
@StarGazerM
StarGazerM merged commit ebfdfdf into main Sep 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant