-
-
Couldn't load subscription status.
- Fork 615
Open
Description
The example:
using Flux
using Enzyme
model = Chain(Dense(28^2 => 32, sigmoid), Dense(32 => 10), softmax);
dup_model = Duplicated(model);
x1 = randn32(28 * 28, 1) ;
y1 = [i == 3 for i in 0:9];
grads_f = Flux.gradient((m, x, y) -> sum(abs2, m(x) .- y), dup_model, Const(x1), Const(y1))output this text and return this error:
Internal error: during type inference of
(::Type{EnzymeCore.Duplicated{T} where T})(Flux.Chain{Tuple{Flux.Dense{typeof(NNlib.σ), Array{Float32, 2}, Array{Float32, 1}}, Flux.Dense{typeof(Base.identity), Array{Float32, 2}, Array{Float32, 1}}, typeof(NNlib.softmax)}})
Encountered unexpected error in runtime:
AssertionError(msg="invalid `given_argtypes` for `mi`")
va_process_argtypes at ./../usr/share/julia/Compiler/src/inferenceresult.jl:123
InferenceState at ./../usr/share/julia/Compiler/src/inferencestate.jl:352
jfptr_InferenceState_44820.1 at /home/aquaresi/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
tojlinvoke122185.1 at /home/aquaresi/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
j_InferenceState_114514.1 at /home/aquaresi/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
InferenceState at ./../usr/share/julia/Compiler/src/inferencestate.jl:605
typeinf_edge at ./../usr/share/julia/Compiler/src/typeinfer.jl:963
abstract_call_method at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:735
infercalls at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:167
abstract_call_gf_by_type at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:338
abstract_call_known at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:2782
abstract_call at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:2889
abstract_call at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:2882 [inlined]
abstract_call at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3042
abstract_eval_call at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3060 [inlined]
abstract_eval_statement_expr at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3389
abstract_eval_basic_statement at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3830 [inlined]
abstract_eval_basic_statement at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3787 [inlined]
typeinf_local at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:4337
jfptr_typeinf_local_116659.1 at /home/aquaresi/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
typeinf at ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:4495
typeinf_ext at ./../usr/share/julia/Compiler/src/typeinfer.jl:1259
typeinf_ext_toplevel at ./../usr/share/julia/Compiler/src/typeinfer.jl:1442 [inlined]
typeinf_ext_toplevel at ./../usr/share/julia/Compiler/src/typeinfer.jl:1451
jfptr_typeinf_ext_toplevel_117555.1 at /home/aquaresi/.julia/juliaup/julia-1.12.0+0.x64.linux.gnu/lib/julia/sys.so (unknown line)
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
jl_type_infer at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:462
jl_compile_method_internal at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:3512
_jl_invoke at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:4002 [inlined]
ijl_apply_generic at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/gf.c:4210
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
do_call at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:123
eval_value at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:243
eval_stmt_value at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:194 [inlined]
eval_body at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:707
jl_interpret_toplevel_thunk at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/interpreter.c:898
top-level scope at /home/aquaresi/mnt/helix/User_folders/aquaresi/network_models/src/SNNML.jl/learning/test_enzyme.jl:5
jl_toplevel_eval_flex at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/toplevel.c:1035
jl_toplevel_eval_flex at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/toplevel.c:975
jl_toplevel_eval_flex at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/toplevel.c:975
ijl_toplevel_eval at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/toplevel.c:1047
ijl_toplevel_eval_in at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/toplevel.c:1092
eval at ./boot.jl:489
include_string at ./loading.jl:2843
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
jl_f_invokelatest at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:881
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
jl_f__apply_iterate at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:868
#inlineeval#57 at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:271
inlineeval at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:268
#repl_runcode_request##6 at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:181
withpath at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/repl.jl:276
#repl_runcode_request##4 at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:179
hideprompt at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/repl.jl:38
#repl_runcode_request##2 at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:150 [inlined]
with_logstate at ./logging/logging.jl:540
with_logger at ./logging/logging.jl:651 [inlined]
#repl_runcode_request##0 at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:263
unknown function (ip: 0x75476f33f70d) at (unknown file)
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
jl_f_invokelatest at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:881
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
jl_f__apply_iterate at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/builtins.c:868
#start_eval_backend##0 at /home/aquaresi/.vscode-server/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:34
unknown function (ip: 0x7547cdb3a93f) at (unknown file)
jl_apply at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/julia.h:2387 [inlined]
start_task at /cache/build/builder-amdci4-0/julialang/julia-release-1-dot-12/src/task.c:1249
Error
ERROR: TypeError: non-boolean (Compiler.IRCode) used in boolean context
Stacktrace:
[1] semiconcrete_result_item(result::Compiler.SemiConcreteResult, info::Compiler.CallInfo, flag::UInt32, state::Compiler.InliningState{…})
@ Compiler ./../usr/share/julia/Compiler/src/ssair/inlining.jl:1449
[2] handle_semi_concrete_result!(cases::Vector{…}, result::Compiler.SemiConcreteResult, match::Core.MethodMatch, info::Compiler.CallInfo, flag::UInt32, state::Compiler.InliningState{…})
@ Compiler ./../usr/share/julia/Compiler/src/ssair/inlining.jl:1462
[3] handle_any_const_result!(cases::Vector{…}, result::Any, match::Core.MethodMatch, argtypes::Vector{…}, info::Compiler.CallInfo, flag::UInt32, state::Compiler.InliningState{…}; allow_typevars::Bool)
@ Compiler ./../usr/share/julia/Compiler/src/ssair/inlining.jl:1304
[4] handle_any_const_result!
@ ./../usr/share/julia/Compiler/src/ssair/inlining.jl:1297 [inlined]
[5] compute_inlining_cases(info::Compiler.CallInfo, flag::UInt32, sig::Compiler.Signature, state::Compiler.InliningState{…})
@ Compiler ./../usr/share/julia/Compiler/src/ssair/inlining.jl:1369
[6] handle_call!
@ ./../usr/share/julia/Compiler/src/ssair/inlining.jl:1401 [inlined]
[7] assemble_inline_todo!(ir::Compiler.IRCode, state::Compiler.InliningState{…})
@ Compiler ./../usr/share/julia/Compiler/src/ssair/inlining.jl:1652
[8] ssa_inlining_pass!
@ ./../usr/share/julia/Compiler/src/ssair/inlining.jl:76 [inlined]
[9] run_passes_ipo_safe(ci::Core.CodeInfo, sv::Compiler.OptimizationState{…}, optimize_until::Nothing)
@ Compiler ./../usr/share/julia/Compiler/src/optimize.jl:1013
[10] run_passes_ipo_safe
@ ./../usr/share/julia/Compiler/src/optimize.jl:1027 [inlined]
[11] optimize(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, opt::Compiler.OptimizationState{…}, caller::Compiler.InferenceResult)
@ Compiler ./../usr/share/julia/Compiler/src/optimize.jl:1002
[12] finish_nocycle(::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, frame::Compiler.InferenceState, time_before::UInt64)
@ Compiler ./../usr/share/julia/Compiler/src/typeinfer.jl:202
[13] typeinf(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, frame::Compiler.InferenceState)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:4502
[14] const_prop_call(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, mi::Core.MethodInstance, result::Compiler.MethodCallResult, arginfo::Compiler.ArgInfo, sv::Compiler.InferenceState, concrete_eval_result::Nothing)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:1348
[15] abstract_call_method_with_const_args(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, result::Compiler.MethodCallResult, f::Any, arginfo::Compiler.ArgInfo, si::Compiler.StmtInfo, match::Core.MethodMatch, sv::Compiler.InferenceState, invokecall::Nothing)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:898
[16] abstract_call_method_with_const_args
@ ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:868 [inlined]
[17] (::Compiler.var"#handle1#abstract_call_gf_by_type##1"{…})(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, sv::Compiler.InferenceState)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:178
[18] (::Compiler.var"#infercalls#abstract_call_gf_by_type##0"{…})(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, sv::Compiler.InferenceState)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:252
[19] abstract_call_gf_by_type(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, func::Any, arginfo::Compiler.ArgInfo, si::Compiler.StmtInfo, atype::Any, sv::Compiler.InferenceState, max_methods::Int64)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:338
[20]
@ Enzyme.Compiler.Interpreter ~/.julia/packages/Enzyme/LJjsP/src/compiler/interpreter.jl:421
[21] abstract_call_known(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, f::Any, arginfo::Compiler.ArgInfo, si::Compiler.StmtInfo, sv::Compiler.InferenceState, max_methods::Int64)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:2782
[22] abstract_call_known(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, f::Any, arginfo::Compiler.ArgInfo, si::Compiler.StmtInfo, sv::Compiler.InferenceState, max_methods::Int64)
@ Enzyme.Compiler.Interpreter ~/.julia/packages/Enzyme/LJjsP/src/compiler/interpreter.jl:1244
[23] abstract_call(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, arginfo::Compiler.ArgInfo, si::Compiler.StmtInfo, sv::Compiler.InferenceState, max_methods::Int64)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:2889
[24] abstract_call
@ ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:2882 [inlined]
[25] abstract_call(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, arginfo::Compiler.ArgInfo, sstate::Compiler.StatementState, sv::Compiler.InferenceState)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3042
[26] abstract_eval_call
@ ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3060 [inlined]
[27] abstract_eval_statement_expr(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, e::Expr, sstate::Compiler.StatementState, sv::Compiler.InferenceState)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3389
[28] abstract_eval_basic_statement
@ ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3830 [inlined]
[29] abstract_eval_basic_statement
@ ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:3787 [inlined]
[30] typeinf_local(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, frame::Compiler.InferenceState, nextresult::Compiler.CurrentState)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:4337
[31] typeinf(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, frame::Compiler.InferenceState)
@ Compiler ./../usr/share/julia/Compiler/src/abstractinterpretation.jl:4495
[32] typeinf_ext(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mi::Core.MethodInstance, source_mode::UInt8)
@ Compiler ./../usr/share/julia/Compiler/src/typeinfer.jl:1259
[33] typeinf_type
@ ./../usr/share/julia/Compiler/src/typeinfer.jl:1281 [inlined]
[34] return_type(interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{Nothing}, mi::Core.MethodInstance)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/LJjsP/src/typeutils/inference.jl:12
[35] primal_return_type_world(mode::Mode, world::UInt64, mi::Core.MethodInstance)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/LJjsP/src/typeutils/inference.jl:82
[36] primal_return_type_generator(world::UInt64, source::Any, self::Any, mode::Type, ft::Type, tt::Type)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/LJjsP/src/typeutils/inference.jl:150
[37] autodiff(::ReverseMode{…}, ::Const{…}, ::Type{…}, ::Duplicated{…}, ::Const{…}, ::Const{…})
@ Enzyme ~/.julia/packages/Enzyme/LJjsP/src/Enzyme.jl:387
[38] _enzyme_gradient(::Function, ::Duplicated{Chain{Tuple{…}}}, ::Vararg{Union{Const, Duplicated}}; zero::Bool)
@ FluxEnzymeExt ~/.julia/packages/Flux/uRn8o/ext/FluxEnzymeExt/FluxEnzymeExt.jl:50
[39] gradient(::Function, ::Duplicated{Chain{Tuple{…}}}, ::Vararg{Union{Const, Duplicated}}; zero::Bool)
@ Flux ~/.julia/packages/Flux/uRn8o/src/gradient.jl:122
[40] top-level scope
@ ~/mnt/helix/User_folders/aquaresi/network_models/src/SNNML.jl/learning/test_enzyme.jl:9
Some type information was truncated. Use `show(err)` to see complete types.This is my environment:
Status `~/mnt/helix/User_folders/aquaresi/network_models/src/SNNML.jl/Project.toml`
⌅ [052768ef] CUDA v5.8.5
[13f3f980] CairoMakie v0.15.6
[b7d42ee7] Einsum v0.4.1
[7da242da] Enzyme v0.13.86
[587475ba] Flux v0.16.5
[d9f16b24] Functors v0.5.2
[ee78f7c6] Makie v0.24.6
[3bd65402] Optimisers v0.4.6
[92933f4c] ProgressMeter v1.11.0
[10745b16] Statistics v1.11.1
[e88e6eb3] Zygote v0.7.10
[02a925ec] cuDNN v1.4.5
[37e2e46d] LinearAlgebra v1.12.0
[9a3f8284] Random v1.11.0
My system is:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.3 LTS
Release: 24.04
Codename: noble
My CPU
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 52 bits physical, 57 bits virtual
Byte Order: Little Endian
CPU(s): 24
On-line CPU(s) list: 0-23
Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) w5-3425
CPU family: 6
Model: 143
Thread(s) per core: 2
Core(s) per socket: 12
Socket(s): 1
Stepping: 8
CPU(s) scaling MHz: 27%
CPU max MHz: 4600,0000
CPU min MHz: 800,0000
BogoMIPS: 6384,00
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_
tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmp
erf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sd
bg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_t
imer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3
cat_l2 cdp_l3 intel_ppin cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_sha
dow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms i
nvpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb in
tel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc
cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect user_shstk avx_vnn
i avx512_bf16 wbnoinvd dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_p
kg_req vnmi avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq
avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid bus_lock_detect clde
mote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk pconfig arch_lbr
ibt amx_bf16 avx512_fp16 amx_tile amx_int8 flush_l1d arch_capabilities
Virtualization features:
Virtualization: VT-x
Caches (sum of all):
L1d: 576 KiB (12 instances)
L1i: 384 KiB (12 instances)
L2: 24 MiB (12 instances)
L3: 30 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-23
Vulnerabilities:
Gather data sampling: Not affected
Itlb multihit: Not affected
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Mmio stale data: Not affected
Reg file data sampling: Not affected
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Enhanced / Automatic IBRS; IBPB conditional; RSB filling; PBRSB-eIB
RS SW sequence; BHI BHI_DIS_S
Srbds: Not affected
Tsx async abort: Not affected
Metadata
Metadata
Assignees
Labels
No labels