Skip to content

test(ad): re-enable Enzyme gradient tests skipped on Julia 1.13 #108

Open

Description

@kylebeggs

Four Enzyme gradient tests are skipped on Julia 1.13. CI runs only 1.10 and 1.13, so the one binding AD invariant they cover (gradients w.r.t. operator parameters, e.g. dκ, must not be silently zeroed) is now checked on half the matrix. A future rule that fires on a parameter path would pass the 1.13 legs.

Two separate Enzyme 0.13.204-on-1.13 failures. The same code and Enzyme version pass on 1.10–1.12:

  • EnzymeRuntimeActivityError in allocate_output(::Gradient, …): similar stores the Const grid into a new active Field. Skips: test/autodiff.jl:93 (κ parameter gradient, Decision B) and test/enzyme_rules.jl:308. The Diffusion half of the enzyme_rules.jl test already opts into runtime activity and still runs, so opting in here, or making allocate_output not route the grid through an active shadow, may be enough without waiting on upstream.
  • LLVM ERROR: function failed verification ("Instruction does not dominate all uses!") while differentiating _cf_flux_rewrite! (src/operators/diffusion.jl). This aborts the whole test process. Skips: test/autodiff.jl:202 and test/enzyme_rules.jl:137. This one is most likely upstream. Reduce it to an MWE and file it on Enzyme.jl.

Done when all four if VERSION < v"1.13" guards are removed and the 1.13 legs are green. Failing that, the runtime-activity pair is re-enabled and the LLVM crash has a linked upstream issue.

—
🤖 Filed by Claude, who noticed half the CI matrix had stopped checking its homework.
claude-opus-5-5[1m] (high) · claude-code 2.1.285 · unreviewed

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions