Closed
Description
julia> g(x, y) = sum((x .* y).^2)
g (generic function with 1 method)
julia> f = let y = rand(10)
x -> g(x, y)
end
#57 (generic function with 1 method)
julia> hessian(f, AutoEnzyme(), rand(10))
ERROR: Enzyme execution failed.
Mismatched activity for: store {} addrspace(10)* %.fca.0.0.extract, {} addrspace(10)* addrspace(10)* %memcpy_refined_dst.i, align 8, !dbg !17, !tbaa !21, !alias.scope !25, !noalias !28 const val: %.fca.0.0.extract = extractvalue { [1 x {} addrspace(10)*] } %0, 0, 0, !dbg !8
Type tree: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]: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}
llvalue= %.fca.0.0.extract = extractvalue { [1 x {} addrspace(10)*] } %0, 0, 0, !dbg !8
You may be using a constant variable as temporary storage for active memory (https://enzyme.mit.edu/julia/stable/faq/#Activity-of-temporary-storage). If not, please open an issue, and either rewrite this variable to not be conditionally active or use Enzyme.API.runtimeActivity!(true) as a workaround for now
Stacktrace:
[1] gradient
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/first_order/gradient.jl:84
[2] inner_gradient_closure
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hvp.jl:99
[3] inner_gradient_closure
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hvp.jl:0
Stacktrace:
[1] throwerr(cstr::Cstring)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:1338
[2] gradient
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/first_order/gradient.jl:84 [inlined]
[3] inner_gradient_closure
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hvp.jl:99 [inlined]
[4] inner_gradient_closure
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hvp.jl:0 [inlined]
[5] fwddiffejulia_inner_gradient_closure_9648_inner_1wrap
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hvp.jl:0
[6] macro expansion
@ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5916 [inlined]
[7] enzyme_call
@ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5566 [inlined]
[8] ForwardModeThunk
@ ~/.julia/packages/Enzyme/F71IJ/src/compiler.jl:5446 [inlined]
[9] autodiff
@ ~/.julia/packages/Enzyme/F71IJ/src/Enzyme.jl:399 [inlined]
[10] pushforward
@ ~/.julia/packages/DifferentiationInterface/IH8L9/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:28 [inlined]
[11] hvp_aux
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hvp.jl:166 [inlined]
[12] hvp
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hvp.jl:154 [inlined]
[13] #31
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hessian.jl:67 [inlined]
[14] #186
@ ./none:0 [inlined]
[15] iterate
@ ./generator.jl:47 [inlined]
[16] _typed_stack(::Colon, ::Type{…}, ::Type{…}, A::Base.Generator{…}, Aax::Tuple{…})
@ Base ./abstractarray.jl:2817
[17] _typed_stack
@ ./abstractarray.jl:2817 [inlined]
[18] _stack
@ ./abstractarray.jl:2807 [inlined]
[19] _stack
@ ./abstractarray.jl:2799 [inlined]
[20] stack
@ ./abstractarray.jl:2796 [inlined]
[21] hessian
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hessian.jl:66 [inlined]
[22] hessian
@ ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hessian.jl:57 [inlined]
[23] hessian(f::var"#57#58"{Vector{Float64}}, backend::AutoEnzyme{Nothing}, x::Vector{Float64})
@ DifferentiationInterface ~/.julia/packages/DifferentiationInterface/IH8L9/src/second_order/hessian.jl:57
[24] top-level scope
@ REPL[123]:1
Some type information was truncated. Use `show(err)` to see complete types.