Closed sethaxen closed 3 months ago
That’s an error in Julia itself for its GC that was subsequently fixed upstream (by us iirc).
The test should be marked expected failure probably for that version
On Sat, Apr 20, 2024 at 9:18 AM Seth Axen @.***> wrote:
This error occurs on main on Julia v1.7.3. It doesn't occur if the batch size is only 1.
julia> using Enzyme, LinearAlgebra
julia> function f_structured_array(x::Hermitian) UpperTriangular(x.data) .*= 2 return x end;
julia> x = Hermitian(randn(10, 10));
julia> autodiff(Forward, f_structured_array, BatchDuplicated, BatchDuplicated(x, (zero(x),zero(x)))) julia: /buildworker/worker/package_linux64/build/src/llvm-late-gc-lowering.cpp:870: std::vector<int, std::allocator
> LateLowerGCFrame::NumberAllBase(State&, llvm::Value*): Assertion `Tracked.size() == BaseNumbers.size()' failed.signal (6): Abortedin expression starting at REPL[12]:1pthread_kill at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)raise at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)unknown function (ip: 0x74d8eac2871a)assert_fail at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)NumberAllBase at /buildworker/worker/package_linux64/build/src/llvm-late-gc-lowering.cpp:870NumberBase at /buildworker/worker/package_linux64/build/src/llvm-late-gc-lowering.cpp:787Number at /buildworker/worker/package_linux64/build/src/llvm-late-gc-lowering.cpp:804LocalScan at /buildworker/worker/package_linux64/build/src/llvm-late-gc-lowering.cpp:1590runOnFunction at /buildworker/worker/package_linux64/build/src/llvm-late-gc-lowering.cpp:2675_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /home/sethaxen/.julia/juliaup/julia-1.7.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-12jl.so (unknown line)_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /home/sethaxen/.julia/juliaup/julia-1.7.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-12jl.so (unknown line)_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /home/sethaxen/.julia/juliaup/julia-1.7.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-12jl.so (unknown line)LLVMRunPassManager at /home/sethaxen/.julia/juliaup/julia-1.7.3+0.x64.linux.gnu/bin/../lib/julia/libLLVM-12jl.so (unknown line)LLVMRunPassManager at /home/sethaxen/.julia/packages/LLVM/Od0DH/lib/12/libLLVM_h.jl:4741 [inlined]run! at /home/sethaxen/.julia/packages/LLVM/Od0DH/src/passmanager.jl:39 [inlined]#433 at /home/sethaxen/.julia/packages/Enzyme/q7XFM/src/compiler/optimize.jl:1709#ModulePassManager#47 at /home/sethaxen/.julia/packages/LLVM/Od0DH/src/passmanager.jl:33ModulePassManager at /home/sethaxen/.julia/packages/LLVM/Od0DH/src/passmanager.jl:31 [inlined]post_optimze! at /home/sethaxen/.julia/packages/Enzyme/q7XFM/src/compiler/optimize.jl:1706post_optimze! at /home/sethaxen/.julia/packages/Enzyme/q7XFM/src/compiler/optimize.jl:1685unknown function (ip: 0x74d8e3c9decd)_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429_thunk at /home/sethaxen/.julia/packages/Enzyme/q7XFM/src/compiler.jl:5664_thunk at /home/sethaxen/.julia/packages/Enzyme/q7XFM/src/compiler.jl:5646 [inlined]cached_compilation at /home/sethaxen/.julia/packages/Enzyme/q7XFM/src/compiler.jl:5680 [inlined]#532 at /home/sethaxen/.julia/packages/Enzyme/q7XFM/src/compiler.jl:5746JuliaContext at /home/sethaxen/.julia/packages/GPUCompiler/kwkKA/src/driver.jl:58unknown function (ip: 0x74d8e3dbd9cd)_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429#s1760#531 at /home/sethaxen/.julia/packages/Enzyme/q7XFM/src/compiler.jl:5698 [inlined]#s1760#531 at ./none:0_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429GeneratedFunctionStub at ./boot.jl:580_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]jl_call_staged at /buildworker/worker/package_linux64/build/src/method.c:431jl_code_for_staged at /buildworker/worker/package_linux64/build/src/method.c:482get_staged at ./compiler/utilities.jl:111retrieve_code_info at ./compiler/utilities.jl:123 [inlined]InferenceState at ./compiler/inferencestate.jl:234typeinf_edge at ./compiler/typeinfer.jl:814 [inlined]abstract_call_method at ./compiler/abstractinterpretation.jl:504abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:105abstract_call_known at ./compiler/abstractinterpretation.jl:1342abstract_call at ./compiler/abstractinterpretation.jl:1397abstract_call at ./compiler/abstractinterpretation.jl:1382abstract_eval_statement at ./compiler/abstractinterpretation.jl:1534typeinf_local at ./compiler/abstractinterpretation.jl:1900typeinf_nocycle at ./compiler/abstractinterpretation.jl:2014_typeinf at ./compiler/typeinfer.jl:226typeinf at ./compiler/typeinfer.jl:209typeinf_edge at ./compiler/typeinfer.jl:823 [inlined]abstract_call_method at ./compiler/abstractinterpretation.jl:504abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:105abstract_call_known at ./compiler/abstractinterpretation.jl:1342abstract_call at ./compiler/abstractinterpretation.jl:1397abstract_apply at ./compiler/abstractinterpretation.jl:987abstract_call_known at ./compiler/abstractinterpretation.jl:1249abstract_call at ./compiler/abstractinterpretation.jl:1397abstract_call at ./compiler/abstractinterpretation.jl:1382abstract_eval_statement at ./compiler/abstractinterpretation.jl:1534typeinf_local at ./compiler/abstractinterpretation.jl:1918typeinf_nocycle at ./compiler/abstractinterpretation.jl:2014_typeinf at ./compiler/typeinfer.jl:226typeinf at ./compiler/typeinfer.jl:209typeinf_ext at ./compiler/typeinfer.jl:909typeinf_ext_toplevel at ./compiler/typeinfer.jl:942typeinf_ext_toplevel at ./compiler/typeinfer.jl:938jfptr_typeinf_ext_toplevel_11534.clone_1 at /home/sethaxen/.julia/juliaup/julia-1.7.3+0.x64.linux.gnu/lib/julia/sys.so (unknown line)_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]jl_type_infer at /buildworker/worker/package_linux64/build/src/gf.c:295jl_generate_fptr at /buildworker/worker/package_linux64/build/src/jitlayers.cpp:338jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:1980jl_compile_method_internal at /buildworker/worker/package_linux64/build/src/gf.c:2246 [inlined]_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2239 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:126eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:215eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:166 [inlined]eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:587jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:731jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:885jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:830jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:944eval at ./boot.jl:373 [inlined]eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:150repl_backend_loop at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:246start_repl_backend at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:231#run_repl#47 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:364run_repl at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.7/REPL/src/REPL.jl:351_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429#936 at ./client.jl:394jfptr_YY.936_35454.clone_1 at /home/sethaxen/.julia/juliaup/julia-1.7.3+0.x64.linux.gnu/lib/julia/sys.so (unknown line)_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]jl_fcall_latest at /buildworker/worker/package_linux64/build/src/builtins.c:757#invokelatest#2 at ./essentials.jl:716 [inlined]invokelatest at ./essentials.jl:714 [inlined]run_main_repl at ./client.jl:379exec_options at ./client.jl:309_start at ./client.jl:495jfptrstart_22567.clone_1 at /home/sethaxen/.julia/juliaup/julia-1.7.3+0.x64.linux.gnu/lib/julia/sys.so (unknown line)_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2247 [inlined]jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2429jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1788 [inlined]true_main at /buildworker/worker/package_linux64/build/src/jlapi.c:559jl_repl_entrypoint at /buildworker/worker/package_linux64/build/src/jlapi.c:701main at /buildworker/worker/package_linux64/build/cli/loader_exe.c:42unknown function (ip: 0x74d8eac29d8f)libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)_start at /home/sethaxen/.julia/juliaup/julia-1.7.3+0.x64.linux.gnu/bin/julia (unknown line)Allocations: 88258894 (Pool: 88203466; Big: 55428); GC: 70Aborted (core dumped) — Reply to this email directly, view it on GitHub https://github.com/EnzymeAD/Enzyme.jl/issues/1394, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJTUXEWL7XCC5FT5FDQ22DY6JTLLAVCNFSM6AAAAABGQPZPFKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI2TINJUHEZTGMY . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Okay great!
This error occurs on main on Julia v1.7.3. It doesn't occur if the batch size is only 1.