Skip to content

Remove the legacy gpu_processing execution path#1055

Draft
mbrobbel wants to merge 1 commit into
sirius-db:devfrom
mbrobbel:legacy-rm
Draft

Remove the legacy gpu_processing execution path#1055
mbrobbel wants to merge 1 commit into
sirius-db:devfrom
mbrobbel:legacy-rm

Conversation

@mbrobbel

@mbrobbel mbrobbel commented Jul 2, 2026

Copy link
Copy Markdown
Member

Removes the dead legacy Sirius execution path (the gpu_processing engine) entirely, keeping only Super Sirius. Legacy was already gated OFF by default (ENABLE_LEGACY_SIRIUS / SIRIUS_ENABLE_LEGACY), so this deletes code and support that no longer runs.

Removed

  • Code: src/legacy/ and src/include/legacy/ (the gpu_processing / gpu_buffer_init engine, buffer manager, legacy expression executor, plan generator, operators, CUDA kernels), plus every #ifdef SIRIUS_ENABLE_LEGACY block in sirius_extension.{cpp,hpp}.
  • Build / CI: the ENABLE_LEGACY_SIRIUS option and SIRIUS_LEGACY_* CMake wiring, the legacy-release Makefile target and CMake preset, and the variant: legacy CI build (the now single-valued variant matrix dimension is dropped).
  • Config: the use_pin_memory / use_pin_memory_for_caching SET options and USE_PIN_MEM_FOR_* flags, whose only consumer was the legacy buffer manager.
  • Scripts / tests / docs: legacy benchmark + SQL runners, the ClickBench harness, the legacy SQLLogic tests, the cpu_cache test, orphaned legacy-coupled C++ tests (with orphan_test_allowlist.txt reconciled), docs/gpu_processing.md, and stale doc/comment references.

Behavior change

The gpu_processing and gpu_buffer_init table functions and the use_pin_memory* SET options no longer exist — gpu_execution (transparent SQL interception) is the sole entry point.

Validation

  • Release build (extension + DuckDB + sirius_unittest) clean.
  • sirius_unittest: all 1469 cases pass on GPU.
  • pre-commit run -a green, including the check-orphan-tests gate.

Not included (possible follow-ups)

  • Stale parquet_scan_task references left by an earlier scan-manager cleanup — unrelated to this removal.
  • Re-adding a Super-Sirius ClickBench harness / porting the bugfix.test regression cases, if that coverage is still wanted.

🤖 Generated with Claude Code

Delete the dead legacy Sirius engine (src/legacy/, src/include/legacy/)
and everything that referenced it, keeping only Super Sirius.

- Drop the ENABLE_LEGACY_SIRIUS build option and the SIRIUS_ENABLE_LEGACY
  code paths: legacy CMake wiring, the legacy-release Makefile target and
  CMake preset, and the variant: legacy CI matrix (now single-valued).
- Remove the gpu_processing / gpu_buffer_init table functions and the
  now-dead use_pin_memory / use_pin_memory_for_caching config flags whose
  only consumer was the legacy buffer manager.
- Delete legacy benchmark/SQL scripts, the ClickBench harness, the legacy
  SQLLogic tests, the cpu_cache test, and the orphaned legacy-coupled
  tests, reconciling test/cpp/orphan_test_allowlist.txt.
- Strip the SIRIUS_ENABLE_LEGACY blocks from the shared test utils and
  scrub docs/comments that named the removed path.

Verified: full release build, sirius_unittest (all cases pass on GPU),
and pre-commit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mbrobbel
mbrobbel marked this pull request as ready for review July 2, 2026 12:01
@mbrobbel
mbrobbel requested a review from mike-wendt as a code owner July 2, 2026 12:01
@bwyogatama

Copy link
Copy Markdown
Collaborator

I dont think we can do this yet as our ClickBench #1 result is using this, and if someone wants to reproduce it it will break if we do this

@mbrobbel
mbrobbel marked this pull request as draft July 2, 2026 15:10
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.

2 participants