Failing Enzyme tests
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
Hướng nghiên cứu
Bắt đầu với test/Back/Enzyme/playground.jl:37 và tái hiện hai ví dụ bằng cách sử dụng thiết lập chung trong issue. Truy vết các lỗi qua ext/DifferentiationInterfaceEnzymeExt/utils.jl:99 và forward_onearg.jl:151, sau đó tham khảo các issue Enzyme được liên kết. Hoàn tất khi các trường hợp Enzyme bị vô hiệu hóa đã được giải quyết và có thể được khôi phục mà không gặp các lỗi này.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
An issue to list some failing Enzyme tests which I deactivated.
Common setup:
using DifferentiationInterface
import DifferentiationInterfaceTest as DIT
using SparseConnectivityTracer
using SparseMatrixColorings
import Enzyme
function MyAutoSparse(backend)
return AutoSparse(
backend;
sparsity_detector=TracerSparsityDetector(),
coloring_algorithm=GreedyColoringAlgorithm(),
)
end
Forward-over-forward HVP (see also https://github.com/EnzymeAD/Enzyme.jl/issues/2437):
julia> hvp(
sum,
SecondOrder(AutoEnzyme(; mode=Enzyme.Forward), AutoEnzyme(; mode=Enzyme.Forward)),
[1.0],
([1.0],),
)
ERROR:
No forward mode derivative found for jl_get_builtin_fptr
at context: %10 = call {} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* @jl_get_builtin_fptr({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 4725148592 to {}*) to {} addrspace(10)*)) #14, !dbg !38
Stacktrace:
[1] make_context_shadows
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/utils.jl:99
[2] prepare_gradient_nokwarg
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:151
Stacktrace:
[1] make_context_shadows
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/utils.jl:99 [inlined]
[2] prepare_gradient_nokwarg
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:151
[3] gradient
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/gradient.jl:62
[4] shuffled_gradient
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/gradient.jl:160 [inlined]
[5] fwddiffejulia_shuffled_gradient_360996wrap
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/gradient.jl:0
[6] macro expansion
@ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5717 [inlined]
[7] enzyme_call
@ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5251 [inlined]
[8] ForwardModeThunk
@ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5153 [inlined]
[9] autodiff
@ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:669 [inlined]
[10] autodiff
@ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:558 [inlined]
[11] autodiff
@ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:530 [inlined]
[12] pushforward
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:76 [inlined]
[13] hvp
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/second_order/hvp.jl:331 [inlined]
[14] hvp(::typeof(sum), ::SecondOrder{AutoEnzyme{…}, AutoEnzyme{…}}, ::Vector{Float64}, ::Tuple{Vector{…}})
@ DifferentiationInterface ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/second_order/hvp.jl:75
[15] top-level scope
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/test/Back/Enzyme/playground.jl:37
Some type information was truncated. Use `show(err)` to see complete types.
Forward-over-reverse second derivative with matrix output (doesn't happen with vector output) (see https://github.com/EnzymeAD/Enzyme.jl/issues/2635):
julia> second_derivative(
DIT.num_to_mat,
SecondOrder(AutoEnzyme(; mode=Enzyme.Forward), AutoEnzyme(; mode=Enzyme.Reverse)),
1.0,
)
ERROR: AssertionError: ; Function Attrs: mustprogress willreturn
define internal fastcc { { { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* addrspace(10)*, i64*, i64*, i1*, i64* }, {} addrspace(10)*, {} addrspace(10)* }, { { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* addrspace(10)*, i64*, i64*, i1*, i64* }, {} addrspace(10)*, {} addrspace(10)* } } @fwddiffeaugmented_julia_collect_304589({ [1 x [2 x {} addrspace(10)*]], [1 x [2 x [2 x i64]]] } addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(48) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]: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, [-1,40]:Integer, [-1,41]:Integer, [-1,42]:Integer, [-1,43]:Integer, [-1,44]:Integer, [-1,45]:Integer, [-1,46]:Integer, [-1,47]:Integer}" "enzymejl_parmtype"="13174803792" "enzymejl_parmtype_ref"="1" %0, { [1 x [2 x {} addrspace(10)*]], [1 x [2 x [2 x i64]]] } addrspace(11)* nocapture align 8 "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]: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, [-1,40]:Integer, [-1,41]:Integer, [-1,42]:Integer, [-1,43]:Integer, [-1,44]:Integer, [-1,45]:Integer, [-1,46]:Integer, [-1,47]:Integer}" "enzymejl_parmtype"="13174803792" "enzymejl_parmtype_ref"="1" %"'", { [1 x [2 x {} addrspace(10)*]], [1 x [2 x [2 x i64]]] } addrspace(11)* nocapture readonly align 8 "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]: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, [-1,40]:Integer, [-1,41]:Integer, [-1,42]:Integer, [-1,43]:Integer, [-1,44]:Integer, [-1,45]:Integer, [-1,46]:Integer, [-1,47]:Integer}" "enzymejl_parmtype"="13174803792" "enzymejl_parmtype_ref"="1" %"'1", { [1 x [2 x {} addrspace(10)*]], [1 x [2 x [2 x i64]]] } addrspace(11)* nocapture align 8 "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,0]:Pointer, [-1,0,0,-1]:Float@double, [-1,0,8]:Pointer, [-1,0,8,0]:Integer, [-1,0,8,1]:Integer, [-1,0,8,2]:Integer, [-1,0,8,3]:Integer, [-1,0,8,4]:Integer, [-1,0,8,5]:Integer, [-1,0,8,6]:Integer, [-1,0,8,7]:Integer, [-1,0,8,8]:Pointer, [-1,0,8,8,-1]:Float@double, [-1,0,16]:Integer, [-1,0,17]:Integer, [-1,0,18]:Integer, [-1,0,19]:Integer, [-1,0,20]:Integer, [-1,0,21]:Integer, [-1,0,22]:Integer, [-1,0,23]:Integer, [-1,8]:Pointer, [-1,8,0]:Pointer, [-1,8,0,-1]:Float@double, [-1,8,8]:Pointer, [-1,8,8,0]:Integer, [-1,8,8,1]:Integer, [-1,8,8,2]:Integer, [-1,8,8,3]:Integer, [-1,8,8,4]:Integer, [-1,8,8,5]:Integer, [-1,8,8,6]:Integer, [-1,8,8,7]:Integer, [-1,8,8,8]:Pointer, [-1,8,8,8,-1]:Float@double, [-1,8,16]:Integer, [-1,8,17]:Integer, [-1,8,18]:Integer, [-1,8,19]:Integer, [-1,8,20]:Integer, [-1,8,21]:Integer, [-1,8,22]:Integer, [-1,8,23]: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, [-1,40]:Integer, [-1,41]:Integer, [-1,42]:Integer, [-1,43]:Integer, [-1,44]:Integer, [-1,45]:Integer, [-1,46]:Integer, [-1,47]:Integer}" "enzymejl_parmtype"="13174803792" "enzymejl_parmtype_ref"="1" %"''") unnamed_addr #30 !dbg !5104 {
top:
%1 = call {}*** @julia.get_pgcstack() #53
%2 = alloca [1 x i64], align 8
%3 = alloca [1 x i64], align 8
%4 = alloca [1 x i64], align 8
...
Allocation could not have its type statically determined %226 = call noalias nonnull "enzyme_ReadOnlyOrThrow" "enzyme_type"="{[-1]:Pointer}" {} addrspace(10)* @julia.gc_alloc_obj({}* nonnull %17, i64 %197, {} addrspace(10)* %224) #60, !dbg !272
Stacktrace:
[1] shadow_alloc_rewrite(V::Ptr{…}, gutils::Ptr{…}, Orig::Ptr{…}, idx::UInt64, prev::Ptr{…}, used::UInt8)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:1516
[2] EnzymeCreateForwardDiff(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{…}, TA::Enzyme.TypeAnalysis, returnValue::Bool, mode::Enzyme.API.CDerivativeMode, runtimeActivity::Bool, strongZero::Bool, width::Int64, additionalArg::Ptr{…}, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{…})
@ Enzyme.API ~/.julia/packages/Enzyme/HWLY7/src/api.jl:342
[3] enzyme!(job::GPUCompiler.CompilerJob{…}, interp::Enzyme.Compiler.Interpreter.EnzymeInterpreter{…}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::NTuple{…} where N, returnPrimal::Bool, expectedTapeType::Type, loweredArgs::Set{…}, boxedArgs::Set{…})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:2553
[4] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob{…})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:4936
[5] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/packages/GPUCompiler/Ecaql/src/driver.jl:67
[6] compile
@ ~/.julia/packages/GPUCompiler/Ecaql/src/driver.jl:55 [inlined]
[7] _thunk(job::GPUCompiler.CompilerJob{…}, postopt::Bool)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5790
[8] _thunk
@ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5788 [inlined]
[9] cached_compilation
@ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5845 [inlined]
[10] thunkbase(mi::Core.MethodInstance, World::UInt64, FA::Type{…}, A::Type{…}, TT::Type, Mode::Enzyme.API.CDerivativeMode, width::Int64, ModifiedBetween::NTuple{…} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, edges::Vector{…})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5959
[11] thunk_generator(world::UInt64, source::Union{…}, FA::Type, A::Type, TT::Type, Mode::Enzyme.API.CDerivativeMode, Width::Int64, ModifiedBetween::NTuple{…} where N, ReturnPrimal::Bool, ShadowInit::Bool, ABI::Type, ErrIfFuncWritten::Bool, RuntimeActivity::Bool, StrongZero::Bool, self::Any, fakeworld::Any, fa::Type, a::Type, tt::Type, mode::Type, width::Type, modifiedbetween::Type, returnprimal::Type, shadowinit::Type, abi::Type, erriffuncwritten::Type, runtimeactivity::Type, strongzero::Type)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:6152
[12] autodiff
@ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:654 [inlined]
[13] autodiff
@ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:558 [inlined]
[14] autodiff
@ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:530 [inlined]
[15] pushforward(::typeof(DifferentiationInterface.shuffled_derivative), ::DifferentiationInterfaceEnzymeExt.EnzymeOneArgPushforwardPrep{…}, ::AutoEnzyme{…}, ::Float64, ::Tuple{…}, ::DifferentiationInterface.FunctionContext{…}, ::Constant{…}, ::Constant{…})
@ DifferentiationInterfaceEnzymeExt ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_onearg.jl:76
[16] derivative
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/derivative.jl:200 [inlined]
[17] second_derivative
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/second_order/second_derivative.jl:126 [inlined]
[18] second_derivative(::typeof(DifferentiationInterfaceTest.num_to_mat), ::SecondOrder{…}, ::Float64)
@ DifferentiationInterface ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/second_order/second_derivative.jl:43
[19] top-level scope
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/test/Back/Enzyme/playground.jl:45
Some type information was truncated. Use `show(err)` to see complete types.
Failing sparse example (see https://github.com/EnzymeAD/Enzyme.jl/issues/2634)
julia> jacobian(DIT.diffsquarecube_matvec!, zeros(10), AutoEnzyme(), rand(2, 3))
ERROR: Constant memory is stored (or returned) to a differentiable variable.
As a result, Enzyme cannot provably ensure correctness and throws this error.
This might be due to the use of a constant variable as temporary storage for active memory (https://enzyme.mit.edu/julia/stable/faq/#Runtime-Activity).
If Enzyme should be able to prove this use non-differentable, open an issue!
To work around this issue, either:
a) rewrite this variable to not be conditionally active (fastest, but requires a code change), or
b) set the Enzyme mode to turn on runtime activity (e.g. autodiff(set_runtime_activity(Reverse), ...) ). This will maintain correctness, but may slightly reduce performance.
Failure within method: MethodInstance for Base.Broadcast.preprocess(::SubArray{…}, ::SubArray{…})
Hint: catch this exception as `err` and call `code_typed(err)` to inspect the errornous code.
If you have Cthulu.jl loaded you can also use `code_typed(err; interactive = true)` to interactively introspect the code.
Mismatched activity for: %109 = insertvalue { { {} addrspace(10)*, [1 x [2 x i64]], i64, i64 }, [1 x i8], [1 x i64] } %108, [1 x i64] [i64 1], 2, !dbg !217 const val: [1 x i64] [i64 1]
Type tree: {[0]:Pointer, [0,0]:Pointer, [0,0,-1]:Float@double, [0,8]:Pointer, [0,8,0]:Integer, [0,8,1]:Integer, [0,8,2]:Integer, [0,8,3]:Integer, [0,8,4]:Integer, [0,8,5]:Integer, [0,8,6]:Integer, [0,8,7]:Integer, [0,8,8]:Pointer, [0,8,8,-1]:Float@double, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [8]:Integer, [9]:Integer, [10]:Integer, [11]:Integer, [12]:Integer, [13]:Integer, [14]:Integer, [15]:Integer, [16]:Integer, [17]:Integer, [18]:Integer, [19]:Integer, [20]:Integer, [21]:Integer, [22]:Integer, [23]:Integer, [24]:Integer, [25]:Integer, [26]:Integer, [27]:Integer, [28]:Integer, [29]:Integer, [30]:Integer, [31]:Integer, [32]:Integer, [33]:Integer, [34]:Integer, [35]:Integer, [36]:Integer, [37]:Integer, [38]:Integer, [39]:Integer, [40]:Integer, [41]:Integer, [42]:Integer, [43]:Integer, [44]:Integer, [45]:Integer, [46]:Integer, [47]:Integer, [48]:Anything, [49]:Anything, [50]:Anything, [51]:Anything, [52]:Anything, [53]:Anything, [54]:Anything, [55]:Anything}
llvalue=[1 x i64] [i64 1]
Stacktrace:
[1] Extruded
@ ./broadcast.jl:639
[2] extrude
@ ./broadcast.jl:645
[3] preprocess
@ ./broadcast.jl:953
Stacktrace:
[1] Extruded
@ ./broadcast.jl:639 [inlined]
[2] extrude
@ ./broadcast.jl:645 [inlined]
[3] preprocess
@ ./broadcast.jl:953
[4] preprocess_args
@ ./broadcast.jl:955 [inlined]
[5] preprocess
@ ./broadcast.jl:952 [inlined]
[6] copyto!
@ ./broadcast.jl:969 [inlined]
[7] copyto!
@ ./broadcast.jl:925 [inlined]
[8] materialize!
@ ./broadcast.jl:883 [inlined]
[9] materialize!
@ ./broadcast.jl:880 [inlined]
[10] diffsquare!
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterfaceTest/src/scenarios/sparse.jl:9
[11] diffsquarecube_matvec!
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterfaceTest/src/scenarios/sparse.jl:64 [inlined]
[12] fwddiffe6julia_diffsquarecube_matvec__96226wrap
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterfaceTest/src/scenarios/sparse.jl:0
[13] macro expansion
@ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5717 [inlined]
[14] enzyme_call
@ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5251 [inlined]
[15] ForwardModeThunk
@ ~/.julia/packages/Enzyme/HWLY7/src/compiler.jl:5153 [inlined]
[16] autodiff
@ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:669 [inlined]
[17] autodiff
@ ~/.julia/packages/Enzyme/HWLY7/src/Enzyme.jl:538 [inlined]
[18] value_and_pushforward(::typeof(DifferentiationInterfaceTest.diffsquarecube_matvec!), ::Vector{…}, ::DifferentiationInterfaceEnzymeExt.EnzymeTwoArgPushforwardPrep{…}, ::AutoEnzyme{…}, ::Matrix{…}, ::NTuple{…})
@ DifferentiationInterfaceEnzymeExt ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_twoarg.jl:64
[19] pushforward
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/ext/DifferentiationInterfaceEnzymeExt/forward_twoarg.jl:78 [inlined]
[20] _jacobian_aux
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/jacobian.jl:364 [inlined]
[21] jacobian(::typeof(DifferentiationInterfaceTest.diffsquarecube_matvec!), ::Vector{…}, ::DifferentiationInterface.PushforwardJacobianPrep{…}, ::AutoEnzyme{…}, ::Matrix{…})
@ DifferentiationInterface ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/jacobian.jl:313
[22] jacobian(::typeof(DifferentiationInterfaceTest.diffsquarecube_matvec!), ::Vector{…}, ::AutoEnzyme{…}, ::Matrix{…})
@ DifferentiationInterface ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/src/first_order/jacobian.jl:107
[23] top-level scope
@ ~/Documents/GitHub/Julia/DifferentiationInterface.jl/DifferentiationInterface/test/Back/Enzyme/playground.jl:24
Some type information was truncated. Use `show(err)` to see complete types.
- Ngôn ngữ chính
- Julia
- Star
- 316
- Fork
- 37
- Merge trung bình
- 1 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 6
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của JuliaDiff/DifferentiationInterface.jl
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
JuliaDiff/DifferentiationInterface.jl#1069 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bot
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
JuliaDiff/DifferentiationInterface.jl#1011 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
AutoEnzyme Jacobian preparation scalar-indexes Reactant traced arraysCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbackend wontfix
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
JuliaDiff/DifferentiationInterface.jl#1066 · 10 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Split preparation methods into 4Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
JuliaDiff/DifferentiationInterface.jl#1059 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
JuliaDiff/DifferentiationInterface.jl#1058 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của JuliaDiff/DifferentiationInterface.jl
Issue tương tự
-
io
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
-
docs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
JuliaGPU/GPUArrays.jl#837 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày