-
-
Notifications
You must be signed in to change notification settings - Fork 216
Open
JuliaDiff/ChainRules.jl
#325Description
The following throws an error on Zygote 0.5.10, but segfaults on Zygote 0.5.11 & beyond (with Julia 1.5.3 / ChainRules v0.7.33)
julia> using Zygote, StaticArrays, LinearAlgebra
julia> f = Diagonal([1,2])
2×2 Diagonal{Int64,Array{Int64,1}}:
1 ⋅
⋅ 2
julia> gradient(f -> sum(sum(@SMatrix[f f] * @SMatrix[f f; f f])), f)
Internal error: encountered unexpected error in runtime:
BoundsError(a=Array{Any, (2,)}[
Core.Compiler.VarState(typ=Zygote.Pullback{Tuple{typeof(StaticArrays.mul_unrolled), StaticArrays.Size{(1, 2)}, StaticArrays.Size{(2, 2)}, StaticArrays.SArray{Tuple{1, 2}, LinearAlgebra.Diagonal{Int64, Array{Int64, 1}}, 2, 2}, StaticArrays.SArray{Tuple{2, 2}, LinearAlgebra.Diagonal{Int64, Array{Int64, 1}}, 2, 4}}, Any}, undef=false),
Core.Compiler.VarState(typ=FillArrays.Fill{FillArrays.Fill{Int64, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, 2, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}}, undef=false)], i=(3,))From the v0.5.10...v0.5.11 diff, it seems likely its some difference in the ChainRules adjoint which was switched to there.
An edge-case no doubt and it wasn't even working before (but at least no segfault), but thought I'd point out in case its a sign of a more general thing that could be worth fixing.
Full stack trace
jl_bounds_error_ints at /home/marius/src/julia-1.5/src/rtutils.c:183
setindex! at ./essentials.jl:452 [inlined]
stupdate! at ./compiler/typelattice.jl:245
typeinf_local at ./compiler/abstractinterpretation.jl:1299
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1326
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:484
abstract_call_method at ./compiler/abstractinterpretation.jl:419
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:111
abstract_call at ./compiler/abstractinterpretation.jl:924
abstract_call at ./compiler/abstractinterpretation.jl:911
abstract_eval at ./compiler/abstractinterpretation.jl:1005
typeinf_local at ./compiler/abstractinterpretation.jl:1270
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1326
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:484
abstract_call_method at ./compiler/abstractinterpretation.jl:419
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:111
abstract_call at ./compiler/abstractinterpretation.jl:924
abstract_call at ./compiler/abstractinterpretation.jl:911
abstract_eval at ./compiler/abstractinterpretation.jl:1005
typeinf_local at ./compiler/abstractinterpretation.jl:1270
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1326
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:484
abstract_call_method at ./compiler/abstractinterpretation.jl:419
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:111
abstract_call at ./compiler/abstractinterpretation.jl:924
abstract_call at ./compiler/abstractinterpretation.jl:911
abstract_eval at ./compiler/abstractinterpretation.jl:1005
typeinf_local at ./compiler/abstractinterpretation.jl:1270
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1326
typeinf at ./compiler/typeinfer.jl:12
typeinf_edge at ./compiler/typeinfer.jl:484
abstract_call_method at ./compiler/abstractinterpretation.jl:419
abstract_call_gf_by_type at ./compiler/abstractinterpretation.jl:111
abstract_call at ./compiler/abstractinterpretation.jl:924
abstract_call at ./compiler/abstractinterpretation.jl:911
abstract_eval at ./compiler/abstractinterpretation.jl:1005
typeinf_local at ./compiler/abstractinterpretation.jl:1270
typeinf_nocycle at ./compiler/abstractinterpretation.jl:1326
typeinf at ./compiler/typeinfer.jl:12
typeinf_ext at ./compiler/typeinfer.jl:570
typeinf_ext at ./compiler/typeinfer.jl:601
jfptr_typeinf_ext_23397 at /home/marius/src/julia-1.5/usr/lib/julia/sys.so (unknown line)
jl_apply at /home/marius/src/julia-1.5/src/julia.h:1690 [inlined]
jl_type_infer at /home/marius/src/julia-1.5/src/gf.c:296
jl_generate_fptr at /home/marius/src/julia-1.5/src/jitlayers.cpp:290
jl_compile_method_internal at /home/marius/src/julia-1.5/src/gf.c:1964
jl_compile_method_internal at /home/marius/src/julia-1.5/src/gf.c:1931 [inlined]
_jl_invoke at /home/marius/src/julia-1.5/src/gf.c:2224 [inlined]
jl_apply_generic at /home/marius/src/julia-1.5/src/gf.c:2398
gradient at /home/marius/.julia/packages/Zygote/xBjHw/src/compiler/interface.jl:54
unknown function (ip: 0x7f7594a20e15)
jl_apply at /home/marius/src/julia-1.5/src/julia.h:1690 [inlined]
do_call at /home/marius/src/julia-1.5/src/interpreter.c:117
eval_value at /home/marius/src/julia-1.5/src/interpreter.c:206
eval_stmt_value at /home/marius/src/julia-1.5/src/interpreter.c:157 [inlined]
eval_body at /home/marius/src/julia-1.5/src/interpreter.c:548
jl_interpret_toplevel_thunk at /home/marius/src/julia-1.5/src/interpreter.c:660
top-level scope at REPL[3]:1
jl_toplevel_eval_flex at /home/marius/src/julia-1.5/src/toplevel.c:840
jl_toplevel_eval_flex at /home/marius/src/julia-1.5/src/toplevel.c:790
jl_toplevel_eval_in at /home/marius/src/julia-1.5/src/toplevel.c:883
eval at ./boot.jl:331
eval_user_input at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:134
repl_backend_loop at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:195
start_repl_backend at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:180
#run_repl#37 at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:292
run_repl at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:288
#806 at ./client.jl:399
jfptr_YY.806_48609 at /home/marius/src/julia-1.5/usr/lib/julia/sys.so (unknown line)
jl_apply at /home/marius/src/julia-1.5/src/julia.h:1690 [inlined]
do_apply at /home/marius/src/julia-1.5/src/builtins.c:655
jl_f__apply_latest at /home/marius/src/julia-1.5/src/builtins.c:705
#invokelatest#1 at ./essentials.jl:710 [inlined]
invokelatest at ./essentials.jl:709 [inlined]
run_main_repl at ./client.jl:383
exec_options at ./client.jl:313
_start at ./client.jl:506
jfptr__start_56184 at /home/marius/src/julia-1.5/usr/lib/julia/sys.so (unknown line)
unknown function (ip: 0x556eba3fe9d9)
unknown function (ip: 0x556eba3fe5a6)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x556eba3fe64d)
signal (11): Segmentation fault
in expression starting at REPL[3]:1
_ZN4llvm3Use3setEPNS_5ValueE at /home/marius/src/julia-1.5/usr/bin/../lib/libLLVM-9jl.so (unknown line)
_ZN4llvm9StoreInstC1EPNS_5ValueES2_bjNS_14AtomicOrderingEhPNS_11InstructionE at /home/marius/src/julia-1.5/usr/bin/../lib/libLLVM-9jl.so (unknown line)
_ZN4llvm9StoreInstC2EPNS_5ValueES2_bjPNS_11InstructionE at /home/marius/src/julia-1.5/usr/bin/../lib/libLLVM-9jl.so (unknown line)
CreateStore at /home/marius/src/julia-1.5/usr/include/llvm/IR/IRBuilder.h:1606
emit_varinfo_assign at /home/marius/src/julia-1.5/src/codegen.cpp:3402
emit_assignment at /home/marius/src/julia-1.5/src/codegen.cpp:3441 [inlined]
emit_expr at /home/marius/src/julia-1.5/src/codegen.cpp:3654
emit_ssaval_assign at /home/marius/src/julia-1.5/src/codegen.cpp:3339
emit_stmtpos at /home/marius/src/julia-1.5/src/codegen.cpp:3503
emit_function at /home/marius/src/julia-1.5/src/codegen.cpp:6085
jl_emit_code at /home/marius/src/julia-1.5/src/codegen.cpp:6431
jl_emit_codeinst at /home/marius/src/julia-1.5/src/codegen.cpp:6465
_jl_compile_codeinst at /home/marius/src/julia-1.5/src/jitlayers.cpp:97
jl_generate_fptr_for_unspecialized at /home/marius/src/julia-1.5/src/jitlayers.cpp:339
jl_compile_method_internal at /home/marius/src/julia-1.5/src/gf.c:1970
jl_compile_method_internal at /home/marius/src/julia-1.5/src/gf.c:1931 [inlined]
_jl_invoke at /home/marius/src/julia-1.5/src/gf.c:2224 [inlined]
jl_apply_generic at /home/marius/src/julia-1.5/src/gf.c:2398
macro expansion at /home/marius/.julia/packages/StaticArrays/LJQEe/src/matrix_multiply.jl:72 [inlined]
_mul at /home/marius/.julia/packages/StaticArrays/LJQEe/src/matrix_multiply.jl:67 [inlined]
Pullback at /home/marius/.julia/packages/Zygote/xBjHw/src/compiler/interface2.jl:0
* at /home/marius/.julia/packages/StaticArrays/LJQEe/src/matrix_multiply.jl:9 [inlined]
Pullback at /home/marius/.julia/packages/Zygote/xBjHw/src/compiler/interface2.jl:0
#1 at ./REPL[3]:1 [inlined]
Pullback at /home/marius/.julia/packages/Zygote/xBjHw/src/compiler/interface2.jl:0
#41 at /home/marius/.julia/packages/Zygote/xBjHw/src/compiler/interface.jl:45
gradient at /home/marius/.julia/packages/Zygote/xBjHw/src/compiler/interface.jl:54
unknown function (ip: 0x7f7594a20e15)
jl_apply at /home/marius/src/julia-1.5/src/julia.h:1690 [inlined]
do_call at /home/marius/src/julia-1.5/src/interpreter.c:117
eval_value at /home/marius/src/julia-1.5/src/interpreter.c:206
eval_stmt_value at /home/marius/src/julia-1.5/src/interpreter.c:157 [inlined]
eval_body at /home/marius/src/julia-1.5/src/interpreter.c:548
jl_interpret_toplevel_thunk at /home/marius/src/julia-1.5/src/interpreter.c:660
jl_toplevel_eval_flex at /home/marius/src/julia-1.5/src/toplevel.c:840
jl_toplevel_eval_flex at /home/marius/src/julia-1.5/src/toplevel.c:790
jl_toplevel_eval_in at /home/marius/src/julia-1.5/src/toplevel.c:883
eval at ./boot.jl:331
eval_user_input at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:134
repl_backend_loop at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:195
start_repl_backend at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:180
#run_repl#37 at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:292
run_repl at /home/marius/src/julia-1.5/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:288
#806 at ./client.jl:399
jfptr_YY.806_48609 at /home/marius/src/julia-1.5/usr/lib/julia/sys.so (unknown line)
jl_apply at /home/marius/src/julia-1.5/src/julia.h:1690 [inlined]
do_apply at /home/marius/src/julia-1.5/src/builtins.c:655
jl_f__apply_latest at /home/marius/src/julia-1.5/src/builtins.c:705
#invokelatest#1 at ./essentials.jl:710 [inlined]
invokelatest at ./essentials.jl:709 [inlined]
run_main_repl at ./client.jl:383
exec_options at ./client.jl:313
_start at ./client.jl:506
jfptr__start_56184 at /home/marius/src/julia-1.5/usr/lib/julia/sys.so (unknown line)
unknown function (ip: 0x556eba3fe9d9)
unknown function (ip: 0x556eba3fe5a6)
__libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x556eba3fe64d)
Allocations: 79488667 (Pool: 79474354; Big: 14313); GC: 62
Segmentation fault (core dumped)
Metadata
Metadata
Assignees
Labels
No labels