Skip to content

FIRK AD tests fail on Julia prerelease with EnzymeNoDerivativeError in BLAS gemv #554

Description

@ChrisRackauckas-Claude

Summary

lib/BoundaryValueDiffEqFIRK AD tests fail on clean master with Julia prerelease 1.13.0-rc1. This is a separate master/dependency failure from the nested NLLS LobattoIIIa issue.

Observed on clean master commit:

906ff8948661c8a917111db3e3e5a4e7b1185ae0

The same failure appears in PR CI here:

Local Reproduction

From a clean checkout of master at 906ff8948661c8a917111db3e3e5a4e7b1185ae0:

set -o pipefail
export JULIA_DEPOT_PATH="$PWD/../julia_depot_firk_adpre_master_20260711:"
timeout 3600 env BOUNDARYVALUEDIFFEQ_TEST_GROUP=AD \
  /usr/bin/time -p /home/crackauc/.juliaup/bin/julia +1.13 --startup-file=no \
  --project=lib/BoundaryValueDiffEqFIRK \
  -e 'using Pkg; Pkg.test(; coverage=true, julia_args=["--check-bounds=auto", "--compiled-modules=yes", "--depwarn=yes"], force_latest_compatible_version=false, allow_reresolve=true)' \
  2>&1 | tee ../firk_adpre_pkgtest_master_906ff894.log

Result:

FIRK Expanded AD Tests                                         |    3      3      6  4m06.8s
  Different AD compatibility                                   |    3      3      6  3m59.4s
    Test different AD on multipoint BVP                        |    1      1      2  1m51.2s
    Test different AD on multipoint BVP using Interpolation BC |    1      1      2  1m03.7s
    Test different AD on twopoint BVP                          |    1      1      2  1m01.8s
ERROR: LoadError: Some tests did not pass: 3 passed, 0 failed, 3 errored, 0 broken.
real 787.25

Error

Each failing case errors in the Enzyme-backed AD solve:

EnzymeNoDerivativeError:
No forward mode derivative found for ijl_lazy_load_and_lookup
 at context: %35 = call ptr @ijl_lazy_load_and_lookup(...)

Stacktrace:
 [1] gemv!
   @ LinearAlgebra.BLAS .../LinearAlgebra/src/blas.jl:678
 [6] __maybe_matmul!
   @ BoundaryValueDiffEqCore/src/utils.jl:100
 [7] Φ!
   @ BoundaryValueDiffEqFIRK/src/collocation.jl:121

The log also emits repeated Enzyme/LLVM verifier output like:

Invalid bitcast
  %118 = bitcast [2 x ptr] %92 to ptr

Resolver State

The local clean-master run used:

Julia 1.13.0-rc1
Enzyme v0.13.181
Enzyme_jll v0.0.281+0
EnzymeCore v0.8.21
DifferentiationInterface v0.7.19
SciMLBase v3.35.0
LinearSolve v3.87.0 in the main test env, and v4.2.1 in the AD test env
ForwardDiff v1.4.1
Mooncake v0.5.37

Notes

This reproduces on unmodified master, so it is not caused by PR-local FIRK source edits. It appears tied to Julia 1.13.0-rc1 plus the current Enzyme stack differentiating through BLAS gemv! from the FIRK collocation residual.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions