Skip to content

Failing Enzyme tests #855

@gdalle

Description

@gdalle

An issue to list some failing Enzyme tests which I deactivated.

Common setup:

using DifferentiationInterface
import DifferentiationInterfaceTest as DIT
using SparseConnectivityTracer
using SparseMatrixColorings
import Enzyme

function MyAutoSparse(backend)
    return AutoSparse(
        backend;
        sparsity_detector=TracerSparsityDetector(),
        coloring_algorithm=GreedyColoringAlgorithm(),
    )
end

Forward-over-forward HVP (see also EnzymeAD/Enzyme.jl#2437):

Details
julia> hvp(
           sum,
           SecondOrder(AutoEnzyme(; mode=Enzyme.Forward), AutoEnzyme(; mode=Enzyme.Forward)),
           [1.0],
           ([1.0],),
       )
ERROR: 
No forward mode derivative found for jl_get_builtin_fptr
 at context:   %10 = call {} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* @jl_get_builtin_fptr({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 4725148592 to {}*) to {} addrspace(10)*)) #14, !dbg !38

Stacktrace:
 [1] make_context_shadows
   @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/utils.jl:99
 [2] prepare_gradient_nokwarg
   @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:151


Stacktrace:
  [1] make_context_shadows
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/utils.jl:99 [inlined]
  [2] prepare_gradient_nokwarg
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:151
  [3] gradient
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/gradient.jl:62
  [4] shuffled_gradient
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/gradient.jl:160 [inlined]
  [5] fwddiffejulia_shuffled_gradient_360996wrap
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/gradient.jl:0
  [6] macro expansion
    @ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5717 [inlined]
  [7] enzyme_call
    @ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5251 [inlined]
  [8] ForwardModeThunk
    @ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5153 [inlined]
  [9] autodiff
    @ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:669 [inlined]
 [10] autodiff
    @ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:558 [inlined]
 [11] autodiff
    @ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:530 [inlined]
 [12] pushforward
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:76 [inlined]
 [13] hvp
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/second_order/hvp.jl:331 [inlined]
 [14] hvp(::typeof(sum), ::SecondOrder{AutoEnzyme{…}, AutoEnzyme{…}}, ::Vector{Float64}, ::Tuple{Vector{…}})
    @ DifferentiationInterface ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/second_order/hvp.jl:75
 [15] top-level scope
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/test/Back/Enzyme/playground.jl:37
Some type information was truncated. Use `show(err)` to see complete types.

Forward-over-reverse second derivative with matrix output (doesn't happen with vector output) (see EnzymeAD/Enzyme.jl#2635):

Details
julia> second_derivative(
           DIT.num_to_mat,
           SecondOrder(AutoEnzyme(; mode=Enzyme.Forward), AutoEnzyme(; mode=Enzyme.Reverse)),
           1.0,
       )
ERROR: AssertionError: ; Function Attrs: mustprogress willreturn
define internal fastcc { { { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* addrspace(10)*, i64*, i64*, i1*, i64* }, {} addrspace(10)*, {} addrspace(10)* }, { { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* addrspace(10)*, i64*, i64*, i1*, i64* }, {} addrspace(10)*, {} addrspace(10)* } } @fwddiffeaugmented_julia_collect_304589({ [1 x [2 x {} addrspace(10)*]], [1 x [2 x [2 x i64]]] } addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(48) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer, [-1,40]:Integer, [-1,41]:Integer, [-1,42]:Integer, [-1,43]:Integer, [-1,44]:Integer, [-1,45]:Integer, [-1,46]:Integer, [-1,47]:Integer}" "enzymejl_parmtype"="13174803792" "enzymejl_parmtype_ref"="1" %0, { [1 x [2 x {} addrspace(10)*]], [1 x [2 x [2 x i64]]] } addrspace(11)* nocapture align 8 "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer, [-1,40]:Integer, [-1,41]:Integer, [-1,42]:Integer, [-1,43]:Integer, [-1,44]:Integer, [-1,45]:Integer, [-1,46]:Integer, [-1,47]:Integer}" "enzymejl_parmtype"="13174803792" "enzymejl_parmtype_ref"="1" %"'", { [1 x [2 x {} addrspace(10)*]], [1 x [2 x [2 x i64]]] } addrspace(11)* nocapture readonly align 8 "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer, [-1,40]:Integer, [-1,41]:Integer, [-1,42]:Integer, [-1,43]:Integer, [-1,44]:Integer, [-1,45]:Integer, [-1,46]:Integer, [-1,47]:Integer}" "enzymejl_parmtype"="13174803792" "enzymejl_parmtype_ref"="1" %"'1", { [1 x [2 x {} addrspace(10)*]], [1 x [2 x [2 x i64]]] } addrspace(11)* nocapture align 8 "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer, [-1,40]:Integer, [-1,41]:Integer, [-1,42]:Integer, [-1,43]:Integer, [-1,44]:Integer, [-1,45]:Integer, [-1,46]:Integer, [-1,47]:Integer}" "enzymejl_parmtype"="13174803792" "enzymejl_parmtype_ref"="1" %"''") unnamed_addr #30 !dbg !5104 {
top:
  %1 = call {}*** @julia.get_pgcstack() #53
  %2 = alloca [1 x i64], align 8
  %3 = alloca [1 x i64], align 8
  %4 = alloca [1 x i64], align 8
 ...

 Allocation could not have its type statically determined   %226 = call noalias nonnull "enzyme_ReadOnlyOrThrow" "enzyme_type"="{[-1]:Pointer}" {} addrspace(10)* @julia.gc_alloc_obj({}* nonnull %17, i64 %197, {} addrspace(10)* %224) #60, !dbg !272
Stacktrace:
  [1] shadow_alloc_rewrite(V::Ptr{…}, gutils::Ptr{…}, Orig::Ptr{…}, idx::UInt64, prev::Ptr{…}, used::UInt8)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:1516
  [2] EnzymeCreateForwardDiff(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{…}, TA::Enzyme.TypeAnalysis, returnValue::Bool, mode::Enzyme.API.CDerivativeMode, runtimeActivity::Bool, strongZero::Bool, width::Int64, additionalArg::Ptr{…}, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{…})
    @ Enzyme.API ~/.julia/packages/Enzyme/HWLY7/src/api.jl:342
  [3] enzyme!(job::GPUCompiler.CompilerJob{…}, interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::NTuple{…} where N, returnPrimal::Bool, expectedTapeType::Type, loweredArgs::Set{…}, boxedArgs::Set{…})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:2553
  [4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{…})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:4936
  [5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
    @ GPUCompiler ~/.julia/packages/GPUCompiler/Ecaql/src/driver.jl:67
  [6] compile
    @ ~/.julia/packages/GPUCompiler/Ecaql/src/driver.jl:55 [inlined]
  [7] _thunk(job::GPUCompiler.CompilerJob{…}, postopt::Bool)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5790
  [8] _thunk
    @ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5788 [inlined]
  [9] cached_compilation
    @ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5845 [inlined]
 [10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{…}, A::Type{…}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{…} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{…})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5959
 [11] thunk_generator(world::UInt64, source::Union{…}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{…} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:6152
 [12] autodiff
    @ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:654 [inlined]
 [13] autodiff
    @ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:558 [inlined]
 [14] autodiff
    @ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:530 [inlined]
 [15] pushforward(::typeof(DifferentiationInterface.shuffled_derivative), ::DifferentiationInterfaceEnzymeExt.EnzymeOneArgPushforwardPrep{…}, ::AutoEnzyme{…}, ::Float64, ::Tuple{…}, ::DifferentiationInterface.FunctionContext{…}, ::Constant{…}, ::Constant{…})
    @ DifferentiationInterfaceEnzymeExt ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:76
 [16] derivative
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/derivative.jl:200 [inlined]
 [17] second_derivative
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/second_order/second_derivative.jl:126 [inlined]
 [18] second_derivative(::typeof(DifferentiationInterfaceTest.num_to_mat), ::SecondOrder{…}, ::Float64)
    @ DifferentiationInterface ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/second_order/second_derivative.jl:43
 [19] top-level scope
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/test/Back/Enzyme/playground.jl:45
Some type information was truncated. Use `show(err)` to see complete types.

Failing sparse example (see EnzymeAD/Enzyme.jl#2634)

Details
julia> jacobian(DIT.diffsquarecube_matvec!, zeros(10), AutoEnzyme(), rand(2, 3))
ERROR: Constant memory is stored (or returned) to a differentiable variable.
As a result, Enzyme cannot provably ensure correctness and throws this error.
This might be due to the use of a constant variable as temporary storage for active memory (https://enzyme.mit.edu/julia/stable/faq/#Runtime-Activity).
If Enzyme should be able to prove this use non-differentable, open an issue!
To work around this issue, either:
 a) rewrite this variable to not be conditionally active (fastest, but requires a code change), or
 b) set the Enzyme mode to turn on runtime activity (e.g. autodiff(set_runtime_activity(Reverse), ...) ). This will maintain correctness, but may slightly reduce performance.
 Failure within method: MethodInstance for Base.Broadcast.preprocess(::SubArray{…}, ::SubArray{…})
Hint: catch this exception as `err` and call `code_typed(err)` to inspect the errornous code.
If you have Cthulu.jl loaded you can also use `code_typed(err; interactive = true)` to interactively introspect the code.
Mismatched activity for:   %109 = insertvalue { { {} addrspace(10)*, [1 x [2 x i64]], i64, i64 }, [1 x i8], [1 x i64] } %108, [1 x i64] [i64 1], 2, !dbg !217 const val: [1 x i64] [i64 1]
Type tree: {[0]:Pointer, [0,0]:Pointer, [0,0,-1]:Float@double, [0,8]:Pointer, [0,8,0]:Integer, [0,8,1]:Integer, [0,8,2]:Integer, [0,8,3]:Integer, [0,8,4]:Integer, [0,8,5]:Integer, [0,8,6]:Integer, [0,8,7]:Integer, [0,8,8]:Pointer, [0,8,8,-1]:Float@double, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [8]:Integer, [9]:Integer, [10]:Integer, [11]:Integer, [12]:Integer, [13]:Integer, [14]:Integer, [15]:Integer, [16]:Integer, [17]:Integer, [18]:Integer, [19]:Integer, [20]:Integer, [21]:Integer, [22]:Integer, [23]:Integer, [24]:Integer, [25]:Integer, [26]:Integer, [27]:Integer, [28]:Integer, [29]:Integer, [30]:Integer, [31]:Integer, [32]:Integer, [33]:Integer, [34]:Integer, [35]:Integer, [36]:Integer, [37]:Integer, [38]:Integer, [39]:Integer, [40]:Integer, [41]:Integer, [42]:Integer, [43]:Integer, [44]:Integer, [45]:Integer, [46]:Integer, [47]:Integer, [48]:Anything, [49]:Anything, [50]:Anything, [51]:Anything, [52]:Anything, [53]:Anything, [54]:Anything, [55]:Anything}
 llvalue=[1 x i64] [i64 1]

Stacktrace:
 [1] Extruded
   @ ./broadcast.jl:639
 [2] extrude
   @ ./broadcast.jl:645
 [3] preprocess
   @ ./broadcast.jl:953

Stacktrace:
  [1] Extruded
    @ ./broadcast.jl:639 [inlined]
  [2] extrude
    @ ./broadcast.jl:645 [inlined]
  [3] preprocess
    @ ./broadcast.jl:953
  [4] preprocess_args
    @ ./broadcast.jl:955 [inlined]
  [5] preprocess
    @ ./broadcast.jl:952 [inlined]
  [6] copyto!
    @ ./broadcast.jl:969 [inlined]
  [7] copyto!
    @ ./broadcast.jl:925 [inlined]
  [8] materialize!
    @ ./broadcast.jl:883 [inlined]
  [9] materialize!
    @ ./broadcast.jl:880 [inlined]
 [10] diffsquare!
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterfaceTest/src/scenarios/sparse.jl:9
 [11] diffsquarecube_matvec!
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterfaceTest/src/scenarios/sparse.jl:64 [inlined]
 [12] fwddiffe6julia_diffsquarecube_matvec__96226wrap
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterfaceTest/src/scenarios/sparse.jl:0
 [13] macro expansion
    @ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5717 [inlined]
 [14] enzyme_call
    @ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5251 [inlined]
 [15] ForwardModeThunk
    @ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5153 [inlined]
 [16] autodiff
    @ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:669 [inlined]
 [17] autodiff
    @ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:538 [inlined]
 [18] value_and_pushforward(::typeof(DifferentiationInterfaceTest.diffsquarecube_matvec!), ::Vector{…}, ::DifferentiationInterfaceEnzymeExt.EnzymeTwoArgPushforwardPrep{…}, ::AutoEnzyme{…}, ::Matrix{…}, ::NTuple{…})
    @ DifferentiationInterfaceEnzymeExt ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_twoarg.jl:64
 [19] pushforward
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_twoarg.jl:78 [inlined]
 [20] _jacobian_aux
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/jacobian.jl:364 [inlined]
 [21] jacobian(::typeof(DifferentiationInterfaceTest.diffsquarecube_matvec!), ::Vector{…}, ::DifferentiationInterface.PushforwardJacobianPrep{…}, ::AutoEnzyme{…}, ::Matrix{…})
    @ DifferentiationInterface ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/jacobian.jl:313
 [22] jacobian(::typeof(DifferentiationInterfaceTest.diffsquarecube_matvec!), ::Vector{…}, ::AutoEnzyme{…}, ::Matrix{…})
    @ DifferentiationInterface ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/jacobian.jl:107
 [23] top-level scope
    @ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/test/Back/Enzyme/playground.jl:24
Some type information was truncated. Use `show(err)` to see complete types.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backendRelated to one or more autodiff backends

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions