Skip to content

Raise KernelAbstractions and MuladdMacro downgrade floors to fix CPU downgrade resolution#464

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-cpu-floors
Draft

Raise KernelAbstractions and MuladdMacro downgrade floors to fix CPU downgrade resolution#464
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:fix-downgrade-cpu-floors

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Ignore until reviewed by @ChrisRackauckas.

Problem

The test (alldeps, lts, CPU) / Downgrade Tests - CPU master lane is RED. It fails at the Pkg.test sandbox resolution stage (before any test runs) with:

ERROR: LoadError: Unsatisfiable requirements detected for package PrettyTables [08abe8d2]:
 ...
 ├─restricted by compatibility requirements with CUDA [052768ef] to versions: 2.0.0-2.4.0
 └─restricted by compatibility requirements with SymbolicIndexingInterface ... to versions: 3.0.0-3.3.2 — no versions left

Root cause

The downgrade resolver (julia-downgrade-compat@v2 + Resolver.jl --min=@deps) pins the root deps to their minimal versions. At Pkg.test sandbox-resolution time (allow_reresolve=false), those pinned floors — Adapt 4.3.0, KernelAbstractions 0.9.36, LinearSolve 3.75.0, RecursiveArrayTools 4.0.0, EnzymeCore 0.8.20 — constrain CUDA (a test-only dep) into the range 5.5.1–5.8.2. Every CUDA in that range requires PrettyTables 2.x, while the rest of the SciML test stack pulls in PrettyTables 3.x → empty intersection.

CUDA 5.9.0 is the minimal CUDA that uses PrettyTables 3, but it requires KernelAbstractions ≥ 0.9.38. The floor KernelAbstractions = "0.9" minimal-resolves to 0.9.36, which caps CUDA at ≤ 5.8.2.

Bumping KernelAbstractions to 0.9.38 lets CUDA resolve to 5.9.0 (PrettyTables 3) and uncovered a second stale floor: StochasticDiffEq 7 pulls in StochasticDiffEqHighOrder 2, which requires MuladdMacro ≥ 0.2.4, but the floor MuladdMacro = "0.2" minimal-resolves to 0.2.1.

Fix

  • KernelAbstractions: 0.90.9.38 (root + test/Project.toml) — the minimum CUDA 5.9.0 needs.
  • MuladdMacro: 0.20.2.4 (root) — the minimum StochasticDiffEqHighOrder needs (also the latest 0.2.x).

Both are the exact registry minimums; no upper bounds touched.

Verification (local, Julia 1.10 / lts)

Reproduced the exact CI failure, then with the floor bumps:

  • Real julia-downgrade-compat@v2 + Resolver.jl --min=@deps resolution succeeds.
  • Pkg.test(; force_latest_compatible_version=false, allow_reresolve=false) sandbox resolves to CUDA v5.9.0, PrettyTables v3.3.2, KernelAbstractions v0.9.38, MuladdMacro v0.2.4, StochasticDiffEq v7.0.0.
  • The full GROUP=CPU test suite runs and passes on the downgraded environment (Pkg.test exit 0, "DiffEqGPU tests passed", zero failures/errors).

🤖 Generated with Claude Code

…downgrade resolution

The `test (alldeps, lts, CPU) / Downgrade Tests - CPU` lane failed at the
Pkg.test sandbox resolution stage with "Unsatisfiable requirements detected
for package PrettyTables".

Root cause: the minimal-resolved root deps pin a constraint set that forces
CUDA (a test-only dep) into 5.5.1-5.8.2, all of which require PrettyTables 2.x,
while the rest of the SciML test stack pulled in PrettyTables 3.x -> no overlap.
CUDA 5.9.0 is the minimal CUDA that uses PrettyTables 3, but it requires
KernelAbstractions >= 0.9.38; the floor `KernelAbstractions = "0.9"` resolved to
0.9.36, capping CUDA at <= 5.8.2.

Bumping KernelAbstractions to 0.9.38 lets CUDA resolve to 5.9.0 (PrettyTables 3),
which then uncovered a second stale floor: StochasticDiffEq 7 pulls in
StochasticDiffEqHighOrder 2, which requires MuladdMacro >= 0.2.4, but the floor
`MuladdMacro = "0.2"` resolved to 0.2.1.

Both bumps are the exact registry minimums needed. Verified locally on Julia
1.10 (lts): the real julia-downgrade-compat@v2 + Resolver.jl --min=@deps
resolution now succeeds (CUDA 5.9.0, PrettyTables 3.3.2, KernelAbstractions
0.9.38, MuladdMacro 0.2.4), and the full GROUP=CPU test suite passes on the
downgraded environment (Pkg.test exit 0, "DiffEqGPU tests passed").

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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