Reliability of Enzyme.jl

I read in this post that Enzyme.jl can be a very promising autodiff option for certain cases.

However in the same link, it is also mentioned that:

Enzyme … doesn’t have general support for higher level Julia functionality

Does this mean that I will get loud errors in certain functions passed to Enzyme, or I might also get silent incorrect results?

I am asking because in solving some ODEs with DifferentialEquations.jl using the option:

sensealg=SciMLSensitivity.InterpolatingAdjoint(; autojacvec=EnzymeVJP())

I frequently get “Instability detected. Aborting”, while when using

sensealg=SciMLSensitivity.InterpolatingAdjoint(; autojacvec=ReverseDiffVJP())

I get no instability.

1 Like

You get loud errors.

For your issue, I’d need to have code to look into what’s going on. I assume you tried different tolerances and such?

Thanks, I played a bit with different tolerances, solvers, and options of sensealg without success so far. I will experiment more and write back if I get more success.

What surprises me is that I would expect that just changing the autojacvec argument (to something excluding finite differences) would give e.g. almost identical iterates on the ODE solver, and only affect timings. Is this reasonable to assume?

It seems reasonable at face value. Without more information it’s not clear what is going on.

Unfortunately I don’t have permission to share the actual code :expressionless:

I might start by directly comparing the “outputs” of EnzymeVJP and ReverseDiffVJP at various points, and work through a minimal example, assuming that they indeed give different results.

Is there a quick way to get direct access of VJP callbacks given the f function passed to the ODEProblem?

Use the ref trick as I show in

Try to create an MWE without the solver involved.

1 Like

Playing around with Enzyme.jl on my differential equation, I started getting failures, which I reduced to the following MWE:

using Enzyme
using ComponentArrays

function f(x, y)
    return [g(x[1], x[2] * y[1] + (1 - x[2]), y[2], y[3], y[4])]
end

function g(a, b, c, d, e)
    return (a > 0) * b * (d * h(a))
end

function h(a)
    return cos(deg2rad(a))
end

const x_ = [1.0, 2.0]
const y_ = ComponentVector(; a=1.0, b=1.0, c=1.0, d=1.0)  # Using a normal vector works
jacobian(Enzyme.ReverseMode(), y -> f(x_, y), y_, Val(1))  # Works
jacobian(Enzyme.ForwardMode(), y -> f(x_, y), y_)  # Breaks

which gives:

Assertion failed: (Tracked.size() == BaseNumbers.size()), function NumberAllBase, file /Users/julia/buildbot/worker/package_macos64/build/src/llvm-late-gc-lowering.cpp, line 870.

signal (6): Abort trap: 6
in expression starting at ~/tmp.jl:19
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
pthread_kill at /usr/lib/system/libsystem_pthread.dylib (unknown line)
abort at /usr/lib/system/libsystem_c.dylib (unknown line)
__assert_rtn at /usr/lib/system/libsystem_c.dylib (unknown line)
_ZN16LateLowerGCFrame13NumberAllBaseER5StatePN4llvm5ValueE.cold.16 at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_ZN16LateLowerGCFrame13NumberAllBaseER5StatePN4llvm5ValueE at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_ZN16LateLowerGCFrame10NumberBaseER5StatePN4llvm5ValueE at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_ZN16LateLowerGCFrame6NumberER5StatePN4llvm5ValueE at /Applications/julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_ZN16LateLowerGCFrame9LocalScanERN4llvm8FunctionE at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_ZN16LateLowerGCFrame13runOnFunctionERN4llvm8FunctionE at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libLLVM.dylib (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libLLVM.dylib (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libLLVM.dylib (unknown line)
LLVMRunPassManager at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libLLVM.dylib (unknown line)
LLVMRunPassManager at ~/.julia/packages/LLVM/WjSQG/lib/12/libLLVM_h.jl:4741 [inlined]
run! at ~/.julia/packages/LLVM/WjSQG/src/passmanager.jl:39 [inlined]
#109 at ~/.julia/packages/Enzyme/7ekWs/src/compiler/optimize.jl:501
#ModulePassManager#64 at ~/.julia/packages/LLVM/WjSQG/src/passmanager.jl:33
unknown function (ip: 0x115c995ea)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
ModulePassManager at ~/.julia/packages/LLVM/WjSQG/src/passmanager.jl:31
post_optimze! at ~/.julia/packages/Enzyme/7ekWs/src/compiler/optimize.jl:498 [inlined]
post_optimze! at ~/.julia/packages/Enzyme/7ekWs/src/compiler/optimize.jl:492 [inlined]
_thunk at ~/.julia/packages/Enzyme/7ekWs/src/compiler.jl:6339 [inlined]
_thunk at ~/.julia/packages/Enzyme/7ekWs/src/compiler.jl:6315
unknown function (ip: 0x115cc6a19)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
cached_compilation at ~/.julia/packages/Enzyme/7ekWs/src/compiler.jl:6359
unknown function (ip: 0x1159b74e1)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
#s836#163 at ~/.julia/packages/Enzyme/7ekWs/src/compiler.jl:6419 [inlined]
#s836#163 at ./none:0
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
GeneratedFunctionStub at ./boot.jl:580
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_call_staged at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_code_for_staged at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
get_staged at ./compiler/utilities.jl:111
retrieve_code_info at ./compiler/utilities.jl:123 [inlined]
InferenceState at ./compiler/inferencestate.jl:234
typeinf_edge at ./compiler/typeinfer.jl:814 [inlined]
abstract_call_method at ./compiler/abstractinterpretation.jl:504
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:105
abstract_call_known at ./compiler/abstractinterpretation.jl:1342
abstract_call at ./compiler/abstractinterpretation.jl:1397
abstract_call at ./compiler/abstractinterpretation.jl:1382
abstract_eval_statement at ./compiler/abstractinterpretation.jl:1534
typeinf_local at ./compiler/abstractinterpretation.jl:1918
typeinf_nocycle at ./compiler/abstractinterpretation.jl:2014
_typeinf at ./compiler/typeinfer.jl:226
typeinf at ./compiler/typeinfer.jl:209
typeinf_edge at ./compiler/typeinfer.jl:823 [inlined]
abstract_call_method at ./compiler/abstractinterpretation.jl:504
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:105
abstract_call_known at ./compiler/abstractinterpretation.jl:1342
abstract_call at ./compiler/abstractinterpretation.jl:1397
abstract_call at ./compiler/abstractinterpretation.jl:1382
abstract_eval_statement at ./compiler/abstractinterpretation.jl:1534
typeinf_local at ./compiler/abstractinterpretation.jl:1900
typeinf_nocycle at ./compiler/abstractinterpretation.jl:2014
_typeinf at ./compiler/typeinfer.jl:226
typeinf at ./compiler/typeinfer.jl:209
typeinf_ext at ./compiler/typeinfer.jl:909
typeinf_ext_toplevel at ./compiler/typeinfer.jl:942
typeinf_ext_toplevel at ./compiler/typeinfer.jl:938
jfptr_typeinf_ext_toplevel_10353.clone_1 at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_type_infer at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_generate_fptr at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_compile_method_internal at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
#gradient#30 at ~/.julia/packages/Enzyme/7ekWs/src/Enzyme.jl:582
unknown function (ip: 0x115caafb8)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
gradient at ~/.julia/packages/Enzyme/7ekWs/src/Enzyme.jl:579
#jacobian#39 at ~/.julia/packages/Enzyme/7ekWs/src/Enzyme.jl:656 [inlined]
jacobian at ~/.julia/packages/Enzyme/7ekWs/src/Enzyme.jl:656
unknown function (ip: 0x115caa5de)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
do_call at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval_body at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_interpret_toplevel_thunk at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_toplevel_eval_in at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
eval at ./boot.jl:373 [inlined]
include_string at ./loading.jl:1196
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
_include at ./loading.jl:1253
include at ./Base.jl:418
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
exec_options at ./client.jl:292
_start at ./client.jl:495
jfptr__start_33485.clone_1 at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
jl_apply_generic at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
true_main at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
jl_repl_entrypoint at /Applications/Julia-1.7.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.7.dylib (unknown line)
Allocations: 40781947 (Pool: 40764621; Big: 17326); GC: 47
fish: Job 1, 'julia tmp.jl' terminated by signal SIGABRT (Abort)

I am on Intel based MacOS, Julia 1.7.3, Enzyme v0.10.12, ComponentArrays v0.13.3

Hmm, on a fresh installation of Julia 1.8.2, the above MWE works.

Update: But using Enzyme.jl to get jacobioan of my full ODE now segfaults. I can try to reduceagain to MWE but I wonder what’s the best path here? Looks like a bug of Enzyme as far as I understand?

2 Likes

Okay cool, scared me for a bit.

Yes, try to get an MWE of that to @wsmoses . Enzyme.jl often has the issue that there’s an LLVM assertion that isn’t caught at the Julia level, and so then it throws an error in the LLVM level that looks like a segfault to Julia. While this MWE won’t necessarily mean your case will be easy to make differentiable, I am trying to find all of the cases where this occurs because it’s a bit nasty in SciMLSensitivity to have this happens because you get a non-recoverable Julia closing error.

With an MWE though, it’s relatively quick and easy for Enzyme.jl to catch the error and turn it into a Julia error. It’s getting a lot better coverage of this but it’s not 100% there yet.

Here is a MWE that segfaults @wsmoses

using Enzyme
using ComponentArrays

const x = ComponentVector(; a=1.0)
const u = ComponentVector(; a=1.0, b=1.0)

Enzyme.gradient(Enzyme.ForwardMode(), p -> sum(copy(x)), u)

Environment: Intel MacOS 12.6, Julia 1.8.2, Enzyme v0.10.12, ComponentArrays v0.13.4

Stacktrace:


signal (11): Segmentation fault: 11
in expression starting at ~/mwe.jl:7
_ZN16LateLowerGCFrame13NumberAllBaseER5StatePN4llvm5ValueE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-codegen.1.8.dylib (unknown line)
_ZN16LateLowerGCFrame10NumberBaseER5StatePN4llvm5ValueE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-codegen.1.8.dylib (unknown line)
_ZN16LateLowerGCFrame6NumberER5StatePN4llvm5ValueE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-codegen.1.8.dylib (unknown line)
_ZN16LateLowerGCFrame9LocalScanERN4llvm8FunctionE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-codegen.1.8.dylib (unknown line)
_ZN16LateLowerGCFrame13runOnFunctionERN4llvm8FunctionE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-codegen.1.8.dylib (unknown line)
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libLLVM.dylib (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libLLVM.dylib (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libLLVM.dylib (unknown line)
LLVMRunPassManager at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libLLVM.dylib (unknown line)
LLVMRunPassManager at ~/.julia/packages/LLVM/WjSQG/lib/13/libLLVM_h.jl:4898 [inlined]
run! at ~/.julia/packages/LLVM/WjSQG/src/passmanager.jl:39 [inlined]
#109 at ~/.julia/packages/Enzyme/7ekWs/src/compiler/optimize.jl:501
#ModulePassManager#64 at ~/.julia/packages/LLVM/WjSQG/src/passmanager.jl:33
unknown function (ip: 0x10a16eafa)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
ModulePassManager at ~/.julia/packages/LLVM/WjSQG/src/passmanager.jl:30
post_optimze! at ~/.julia/packages/Enzyme/7ekWs/src/compiler/optimize.jl:498 [inlined]
post_optimze! at ~/.julia/packages/Enzyme/7ekWs/src/compiler/optimize.jl:492 [inlined]
_thunk at ~/.julia/packages/Enzyme/7ekWs/src/compiler.jl:6339 [inlined]
_thunk at ~/.julia/packages/Enzyme/7ekWs/src/compiler.jl:6315
unknown function (ip: 0x108f9c1a9)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
cached_compilation at ~/.julia/packages/Enzyme/7ekWs/src/compiler.jl:6359
unknown function (ip: 0x108f74ea1)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
#s836#163 at ~/.julia/packages/Enzyme/7ekWs/src/compiler.jl:6419 [inlined]
#s836#163 at ./none:0
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
GeneratedFunctionStub at ./boot.jl:582
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
jl_call_staged at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
ijl_code_for_staged at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
get_staged at ./compiler/utilities.jl:114
retrieve_code_info at ./compiler/utilities.jl:126 [inlined]
InferenceState at ./compiler/inferencestate.jl:284
typeinf_edge at ./compiler/typeinfer.jl:868
abstract_call_method at ./compiler/abstractinterpretation.jl:647
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:139
abstract_call_known at ./compiler/abstractinterpretation.jl:1716
abstract_call at ./compiler/abstractinterpretation.jl:1786
abstract_call at ./compiler/abstractinterpretation.jl:1753
abstract_eval_statement at ./compiler/abstractinterpretation.jl:1910
typeinf_local at ./compiler/abstractinterpretation.jl:2386
typeinf_nocycle at ./compiler/abstractinterpretation.jl:2482
_typeinf at ./compiler/typeinfer.jl:230
typeinf at ./compiler/typeinfer.jl:213
typeinf_edge at ./compiler/typeinfer.jl:877
abstract_call_method at ./compiler/abstractinterpretation.jl:647
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:139
abstract_call_known at ./compiler/abstractinterpretation.jl:1716
abstract_call at ./compiler/abstractinterpretation.jl:1786
abstract_call at ./compiler/abstractinterpretation.jl:1753
abstract_eval_statement at ./compiler/abstractinterpretation.jl:1910
typeinf_local at ./compiler/abstractinterpretation.jl:2360
typeinf_nocycle at ./compiler/abstractinterpretation.jl:2482
_typeinf at ./compiler/typeinfer.jl:230
typeinf at ./compiler/typeinfer.jl:213
typeinf_ext at ./compiler/typeinfer.jl:967
typeinf_ext_toplevel at ./compiler/typeinfer.jl:1000
typeinf_ext_toplevel at ./compiler/typeinfer.jl:996
jfptr_typeinf_ext_toplevel_18218.clone_1 at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
jl_type_infer at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
jl_generate_fptr_impl at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-codegen.1.8.dylib (unknown line)
jl_compile_method_internal at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
#gradient#30 at ~/.julia/packages/Enzyme/7ekWs/src/Enzyme.jl:582
unknown function (ip: 0x108f4f968)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
gradient at ~/.julia/packages/Enzyme/7ekWs/src/Enzyme.jl:578
unknown function (ip: 0x108f4f20e)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
do_call at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
eval_body at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
jl_interpret_toplevel_thunk at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
jl_toplevel_eval_flex at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
ijl_toplevel_eval_in at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
eval at ./boot.jl:368 [inlined]
include_string at ./loading.jl:1428
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
_include at ./loading.jl:1488
include at ./Base.jl:419
jfptr_include_45928.clone_1 at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
exec_options at ./client.jl:303
_start at ./client.jl:522
jfptr__start_36967.clone_1 at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
ijl_apply_generic at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
true_main at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
jl_repl_entrypoint at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-internal.1.8.dylib (unknown line)
Allocations: 33356866 (Pool: 33318358; Big: 38508); GC: 34
1 Like

That’s perfect. Post it to Issues · EnzymeAD/Enzyme.jl · GitHub

Done :raised_hands:Julia LateLowerGCFrame Assertion · Issue #525 · EnzymeAD/Enzyme.jl · GitHub

1 Like