Skip to content

fix(dl): route compression-off through ggml's own knob (3.1.1)#46

Merged
lloyal-research merged 3 commits into
mainfrom
fix/dl-compression-ggml-knob
Jul 6, 2026
Merged

fix(dl): route compression-off through ggml's own knob (3.1.1)#46
lloyal-research merged 3 commits into
mainfrom
fix/dl-compression-ggml-knob

Conversation

@lloyal-research

@lloyal-research lloyal-research commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Supersedes the 3.1.1 attempt, whose fix was silently ineffective: it passed --compress-mode=none as a raw base CUDA flag, but ggml-cuda appends its own -compress-mode=${GGML_CUDA_COMPRESSION_MODE} (ggml/src/ggml-cuda/CMakeLists.txt:210, knob default "size" at ggml/CMakeLists.txt:211) after base flags — and nvcc takes the last value. The v3.1.1 build emitted nvcc warning : incompatible redefinition for option 'compress-mode', the last value of this option was used, meaning the pack would have shipped driver-incompatible again. The run was cancelled before anything published or uploaded (npm 3.1.1 does not exist; the 3.1.1 binaries slot is empty; the tag points at a run that produced nothing).

This also sharpens the root cause one final step: the compression was never nvcc's implicit default — ggml explicitly opts into size compression via its knob. The knob accepts none, which is the setting this flavor needs: NVIDIA documents the new compress modes as incompatible with pre-CUDA-12.4 drivers (r550), and old-driver fleets (Cloud Run L4 = 535/12.2) are the DL pack's primary audience — proven fatal on the v3.1.0 rig run ("device kernel image is invalid" on every kernel load).

Stays on 3.1.1: the tag produced zero artifacts (cancelled pre-publish), so the ref is recreated on this merge commit instead of burning the number. Carries the version + optionalDependencies sync + lockfile reconcile. After merge: tag v3.1.2 → pipeline → the L4 gate proves the fix (a correct build shows no compress-mode redefinition warning) → publish-dl signs.

🤖 Generated with Claude Code

….1.2

The 3.1.1 fix passed --compress-mode=none as a raw base CUDA flag, but
ggml-cuda appends -compress-mode=${GGML_CUDA_COMPRESSION_MODE} (default
"size") AFTER base flags, and nvcc takes the last value — the v3.1.1
build's 'incompatible redefinition' warning proved our flag was being
silently overridden and the pack would ship driver-incompatible anyway.
ggml's own knob is the only effective lever; it accepts "none".
Copilot AI review requested due to automatic review settings July 6, 2026 16:30

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes the CUDA fatbin compression setting for the BACKEND_DL build flavor by routing “compression off” through ggml’s dedicated CMake knob (so it can’t be overridden by ggml-cuda’s later-appended nvcc flags), and bumps the release version to 3.1.2 with dependency metadata kept in sync.

Changes:

  • Switch BACKEND_DL builds from using base CMAKE_CUDA_FLAGS to GGML_CUDA_COMPRESSION_MODE=none.
  • Bump package version from 3.1.1 → 3.1.2.
  • Sync optionalDependencies and package-lock.json to 3.1.2.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.

File Description
scripts/build.js Uses ggml’s compression-mode knob for BACKEND_DL to reliably disable fatbin compression.
package.json Bumps root package version to 3.1.2 and updates optional dependency versions to match.
package-lock.json Reconciles lockfile package version and optional dependency versions to 3.1.2.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

nvcc treats a colliding option (passed twice, last wins) as a warning
and proceeds — which is how the v3.1.1 compress-mode fix shipped
silently overridden by ggml's own -compress-mode=size. Any redefinition
means a CUDA build flag is not what we think it is; catch it at minute
~3 of the build instead of at the L4 gate two hours later.
The v3.1.1 tag produced zero artifacts (run cancelled pre-publish, no
npm packages, no binaries, no release); the tag ref will be recreated
on this fix's merge commit rather than burning the version number.
@lloyal-research lloyal-research changed the title fix(dl): route compression-off through ggml's own knob (3.1.2) fix(dl): route compression-off through ggml's own knob (3.1.1) Jul 6, 2026
@lloyal-research lloyal-research merged commit 017e427 into main Jul 6, 2026
4 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.

2 participants