Open gdalle opened 5 months ago
We need an update to the new GPUCompiler version
I'm getting the following error here
ERROR: LoadError: UndefVarError: `PassBuilder` not defined in `Enzyme.Compiler`
Stacktrace:
[1] macro expansion
@ ~/.julia/packages/LLVM/5DlHM/src/base.jl:96 [inlined]
[2] (::Enzyme.Compiler.var"#prop_julia_addr#28416"{LLVM.TargetMachine})(f::LLVM.Function)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler/optimize.jl:75
[3] function_pass_callback(ptr::Ptr{Nothing}, data::Ptr{Nothing})
@ LLVM ~/.julia/packages/LLVM/5DlHM/src/pass.jl:49
[4] LLVMRunPassManager
@ ~/.julia/packages/LLVM/5DlHM/lib/16/libLLVM.jl:3351 [inlined]
[5] run!
@ ~/.julia/packages/LLVM/5DlHM/src/passmanager.jl:39 [inlined]
[6] (::Enzyme.Compiler.var"#28512#28513"{LLVM.Module, LLVM.TargetMachine})(pm::LLVM.ModulePassManager)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler/optimize.jl:2029
[7] LLVM.ModulePassManager(::Enzyme.Compiler.var"#28512#28513"{LLVM.Module, LLVM.TargetMachine}; kwargs::@Kwargs{})
@ LLVM ~/.julia/packages/LLVM/5DlHM/src/passmanager.jl:33
[8] ModulePassManager
@ ~/.julia/packages/LLVM/5DlHM/src/passmanager.jl:30 [inlined]
[9] optimize!
@ ~/.julia/packages/Enzyme/Pljwm/src/compiler/optimize.jl:1951 [inlined]
[10] codegen(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:5787
[11] codegen
@ ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:5194 [inlined]
[12] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6682
[13] _thunk
@ ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6682 [inlined]
[14] cached_compilation
@ ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6720 [inlined]
[15] (::Enzyme.Compiler.var"#28633#28634"{Active, FFIABI, Const{typeof(loss_function)}, Enzyme.API.DEM_ReverseModeCombined, (false, false, false, false, false, false), true, false, Tuple{Const{Lux.Chain{@NamedTuple{layer_1::Lux.Dense{true, typeof(tanh_fast), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_2::Lux.Dense{true, typeof(identity), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_3::WrappedFunction{:direct_call, typeof(softmax)}}, Nothing}}, Const{Matrix{Float32}}, Const{OneHotMatrix{UInt32, Vector{UInt32}}}, Duplicated{@NamedTuple{layer_1::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_2::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_3::@NamedTuple{}}}, Const{@NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, 0x00000000000068d4, 1, Core.MethodInstance})(ctx::LLVM.Context)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6795
[16] JuliaContext(f::Enzyme.Compiler.var"#28633#28634"{Active, FFIABI, Const{typeof(loss_function)}, Enzyme.API.DEM_ReverseModeCombined, (false, false, false, false, false, false), true, false, Tuple{Const{Lux.Chain{@NamedTuple{layer_1::Lux.Dense{true, typeof(tanh_fast), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_2::Lux.Dense{true, typeof(identity), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_3::WrappedFunction{:direct_call, typeof(softmax)}}, Nothing}}, Const{Matrix{Float32}}, Const{OneHotMatrix{UInt32, Vector{UInt32}}}, Duplicated{@NamedTuple{layer_1::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_2::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_3::@NamedTuple{}}}, Const{@NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, 0x00000000000068d4, 1, Core.MethodInstance}; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/packages/GPUCompiler/Y4hSX/src/driver.jl:52
[17] JuliaContext
@ ~/.julia/packages/GPUCompiler/Y4hSX/src/driver.jl:42 [inlined]
[18] thunkbase(mi::Core.MethodInstance, ::Val{0x00000000000068d4}, ::Type{Const{typeof(loss_function)}}, ::Type{Active}, tt::Type{Tuple{Const{Lux.Chain{@NamedTuple{layer_1::Lux.Dense{true, typeof(tanh_fast), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_2::Lux.Dense{true, typeof(identity), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_3::WrappedFunction{:direct_call, typeof(softmax)}}, Nothing}}, Const{Matrix{Float32}}, Const{OneHotMatrix{UInt32, Vector{UInt32}}}, Duplicated{@NamedTuple{layer_1::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_2::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_3::@NamedTuple{}}}, Const{@NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}}, ::Val{Enzyme.API.DEM_ReverseModeCombined}, ::Val{1}, ::Val{(false, false, false, false, false, false)}, ::Val{true}, ::Val{false}, ::Type{FFIABI})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6740
[19] #s2021#28635
@ ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6826 [inlined]
[20] var"#s2021#28635"(FA::Any, A::Any, TT::Any, Mode::Any, ModifiedBetween::Any, width::Any, ReturnPrimal::Any, ShadowInit::Any, World::Any, ABI::Any, ::Any, ::Any, ::Any, ::Any, tt::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any)
@ Enzyme.Compiler ./none:0
[21] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any})
@ Core ./boot.jl:709
[22] autodiff
@ ~/.julia/packages/Enzyme/Pljwm/src/Enzyme.jl:309 [inlined]
[23] autodiff
@ ~/.julia/packages/Enzyme/Pljwm/src/Enzyme.jl:326 [inlined]
[24] gradient_loss_function(model::Lux.Chain{@NamedTuple{layer_1::Lux.Dense{true, typeof(tanh_fast), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_2::Lux.Dense{true, typeof(identity), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_3::WrappedFunction{:direct_call, typeof(softmax)}}, Nothing}, x::Matrix{Float32}, y::OneHotMatrix{UInt32, Vector{UInt32}}, ps::@NamedTuple{layer_1::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_2::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_3::@NamedTuple{}}, st::@NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}})
@ Main ~/work/Reactant.jl/Reactant.jl/test/nn_lux.jl:65
[25] top-level scope
@ ~/work/Reactant.jl/Reactant.jl/test/nn_lux.jl:78
[26] include(fname::String)
@ Main ./sysimg.jl:38
[27] top-level scope
@ ~/work/Reactant.jl/Reactant.jl/test/runtests.jl:49
[28] include(fname::String)
@ Main ./sysimg.jl:38
[29] top-level scope
@ none:6
in expression starting at /home/runner/work/Reactant.jl/Reactant.jl/test/nn_lux.jl:78
in expression starting at /home/runner/work/Reactant.jl/Reactant.jl/test/runtests.jl:49
Package Reactant errored during testing
Is this on main?
Is this on main?
I am getting this on main
What is your Manifest? Did you re-resolve. This means you ended up with an old version of GPUCompiler most likely.
I think Enzyme has an old GPUCompiler in its compat, which we should likely remove
With Enzyme#main
, Enzyme_jll#main
, GPUCompiler#master
I am still getting failure on 1.11
using Enzyme
x = rand(Float32, 32);
Enzyme.gradient(Reverse, sum, x)
Installing the latest release of GPUCompiler I get a different error:
That said enzyme definitely has some older GPUCompiler in compat which shouldn't be there. Currently installing AMDGPU (which installs GPUCompiler 0.26.5) causes enzyme to not precompile https://buildkite.com/julialang/luxlib-dot-jl/builds/835#0190d6c1-141c-4f6b-ab1d-eec8c2e4f7bc/317-648
I'm getting the following error here
ERROR: LoadError: UndefVarError: `PassBuilder` not defined in `Enzyme.Compiler` Stacktrace: [1] macro expansion @ ~/.julia/packages/LLVM/5DlHM/src/base.jl:96 [inlined] [2] (::Enzyme.Compiler.var"#prop_julia_addr#28416"{LLVM.TargetMachine})(f::LLVM.Function) @ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler/optimize.jl:75 [3] function_pass_callback(ptr::Ptr{Nothing}, data::Ptr{Nothing}) @ LLVM ~/.julia/packages/LLVM/5DlHM/src/pass.jl:49 [4] LLVMRunPassManager @ ~/.julia/packages/LLVM/5DlHM/lib/16/libLLVM.jl:3351 [inlined] [5] run! @ ~/.julia/packages/LLVM/5DlHM/src/passmanager.jl:39 [inlined] [6] (::Enzyme.Compiler.var"#28512#28513"{LLVM.Module, LLVM.TargetMachine})(pm::LLVM.ModulePassManager) @ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler/optimize.jl:2029 [7] LLVM.ModulePassManager(::Enzyme.Compiler.var"#28512#28513"{LLVM.Module, LLVM.TargetMachine}; kwargs::@Kwargs{}) @ LLVM ~/.julia/packages/LLVM/5DlHM/src/passmanager.jl:33 [8] ModulePassManager @ ~/.julia/packages/LLVM/5DlHM/src/passmanager.jl:30 [inlined] [9] optimize! @ ~/.julia/packages/Enzyme/Pljwm/src/compiler/optimize.jl:1951 [inlined] [10] codegen(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing) @ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:5787 [11] codegen @ ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:5194 [inlined] [12] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6682 [13] _thunk @ ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6682 [inlined] [14] cached_compilation @ ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6720 [inlined] [15] (::Enzyme.Compiler.var"#28633#28634"{Active, FFIABI, Const{typeof(loss_function)}, Enzyme.API.DEM_ReverseModeCombined, (false, false, false, false, false, false), true, false, Tuple{Const{Lux.Chain{@NamedTuple{layer_1::Lux.Dense{true, typeof(tanh_fast), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_2::Lux.Dense{true, typeof(identity), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_3::WrappedFunction{:direct_call, typeof(softmax)}}, Nothing}}, Const{Matrix{Float32}}, Const{OneHotMatrix{UInt32, Vector{UInt32}}}, Duplicated{@NamedTuple{layer_1::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_2::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_3::@NamedTuple{}}}, Const{@NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, 0x00000000000068d4, 1, Core.MethodInstance})(ctx::LLVM.Context) @ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6795 [16] JuliaContext(f::Enzyme.Compiler.var"#28633#28634"{Active, FFIABI, Const{typeof(loss_function)}, Enzyme.API.DEM_ReverseModeCombined, (false, false, false, false, false, false), true, false, Tuple{Const{Lux.Chain{@NamedTuple{layer_1::Lux.Dense{true, typeof(tanh_fast), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_2::Lux.Dense{true, typeof(identity), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_3::WrappedFunction{:direct_call, typeof(softmax)}}, Nothing}}, Const{Matrix{Float32}}, Const{OneHotMatrix{UInt32, Vector{UInt32}}}, Duplicated{@NamedTuple{layer_1::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_2::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_3::@NamedTuple{}}}, Const{@NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}, 0x00000000000068d4, 1, Core.MethodInstance}; kwargs::@Kwargs{}) @ GPUCompiler ~/.julia/packages/GPUCompiler/Y4hSX/src/driver.jl:52 [17] JuliaContext @ ~/.julia/packages/GPUCompiler/Y4hSX/src/driver.jl:42 [inlined] [18] thunkbase(mi::Core.MethodInstance, ::Val{0x00000000000068d4}, ::Type{Const{typeof(loss_function)}}, ::Type{Active}, tt::Type{Tuple{Const{Lux.Chain{@NamedTuple{layer_1::Lux.Dense{true, typeof(tanh_fast), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_2::Lux.Dense{true, typeof(identity), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_3::WrappedFunction{:direct_call, typeof(softmax)}}, Nothing}}, Const{Matrix{Float32}}, Const{OneHotMatrix{UInt32, Vector{UInt32}}}, Duplicated{@NamedTuple{layer_1::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_2::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_3::@NamedTuple{}}}, Const{@NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}}}}, ::Val{Enzyme.API.DEM_ReverseModeCombined}, ::Val{1}, ::Val{(false, false, false, false, false, false)}, ::Val{true}, ::Val{false}, ::Type{FFIABI}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6740 [19] #s2021#28635 @ ~/.julia/packages/Enzyme/Pljwm/src/compiler.jl:6826 [inlined] [20] var"#s2021#28635"(FA::Any, A::Any, TT::Any, Mode::Any, ModifiedBetween::Any, width::Any, ReturnPrimal::Any, ShadowInit::Any, World::Any, ABI::Any, ::Any, ::Any, ::Any, ::Any, tt::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) @ Enzyme.Compiler ./none:0 [21] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any}) @ Core ./boot.jl:709 [22] autodiff @ ~/.julia/packages/Enzyme/Pljwm/src/Enzyme.jl:309 [inlined] [23] autodiff @ ~/.julia/packages/Enzyme/Pljwm/src/Enzyme.jl:326 [inlined] [24] gradient_loss_function(model::Lux.Chain{@NamedTuple{layer_1::Lux.Dense{true, typeof(tanh_fast), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_2::Lux.Dense{true, typeof(identity), typeof(glorot_uniform), typeof(WeightInitializers.zeros32)}, layer_3::WrappedFunction{:direct_call, typeof(softmax)}}, Nothing}, x::Matrix{Float32}, y::OneHotMatrix{UInt32, Vector{UInt32}}, ps::@NamedTuple{layer_1::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_2::@NamedTuple{weight::Matrix{Float32}, bias::Matrix{Float32}}, layer_3::@NamedTuple{}}, st::@NamedTuple{layer_1::@NamedTuple{}, layer_2::@NamedTuple{}, layer_3::@NamedTuple{}}) @ Main ~/work/Reactant.jl/Reactant.jl/test/nn_lux.jl:65 [25] top-level scope @ ~/work/Reactant.jl/Reactant.jl/test/nn_lux.jl:78 [26] include(fname::String) @ Main ./sysimg.jl:38 [27] top-level scope @ ~/work/Reactant.jl/Reactant.jl/test/runtests.jl:49 [28] include(fname::String) @ Main ./sysimg.jl:38 [29] top-level scope @ none:6 in expression starting at /home/runner/work/Reactant.jl/Reactant.jl/test/nn_lux.jl:78 in expression starting at /home/runner/work/Reactant.jl/Reactant.jl/test/runtests.jl:49 Package Reactant errored during testing
Same here with the latest release candidate of Julia 1.11:
julia> using Enzyme #v0.12.26
julia> function gradByEnzyme(f, inVal)
dp = zero(inVal)
Enzyme.autodiff(Reverse, f, Active, Duplicated(inVal, dp))
dp
end
gradByEnzyme (generic function with 1 method)
julia> gradByEnzyme(x->sum(x .^ 2), [1., 2., 3.])
ERROR: UndefVarError: `PassBuilder` not defined in `Enzyme.Compiler`
Suggestion: check for spelling errors or missing imports.
Stacktrace:
[1] macro expansion
@ C:\Users\frank\.julia\packages\LLVM\5DlHM\src\base.jl:96 [inlined]
[2] (::Enzyme.Compiler.var"#prop_julia_addr#28202"{LLVM.TargetMachine})(f::LLVM.Function)
@ Enzyme.Compiler C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler\optimize.jl:75
[3] function_pass_callback(ptr::Ptr{Nothing}, data::Ptr{Nothing})
@ LLVM C:\Users\frank\.julia\packages\LLVM\5DlHM\src\pass.jl:49
[4] LLVMRunPassManager
@ C:\Users\frank\.julia\packages\LLVM\5DlHM\lib\16\libLLVM.jl:3351 [inlined]
[5] run!
@ C:\Users\frank\.julia\packages\LLVM\5DlHM\src\passmanager.jl:39 [inlined]
[6] (::Enzyme.Compiler.var"#28298#28299"{LLVM.Module, LLVM.TargetMachine})(pm::LLVM.ModulePassManager)
@ Enzyme.Compiler C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler\optimize.jl:2033
[7] LLVM.ModulePassManager(::Enzyme.Compiler.var"#28298#28299"{LLVM.Module, LLVM.TargetMachine}; kwargs::@Kwargs{})
@ LLVM C:\Users\frank\.julia\packages\LLVM\5DlHM\src\passmanager.jl:33
[8] ModulePassManager
@ C:\Users\frank\.julia\packages\LLVM\5DlHM\src\passmanager.jl:30 [inlined]
[9] optimize!(mod::LLVM.Module, tm::LLVM.TargetMachine)
@ Enzyme.Compiler C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler\optimize.jl:1955
[10] codegen(output::Symbol, job::GPUCompiler.CompilerJob{…}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing)
@ Enzyme.Compiler C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler.jl:5968
[11] codegen
@ C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler.jl:5371 [inlined]
[12] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool)
@ Enzyme.Compiler C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler.jl:6871
[13] _thunk
@ C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler.jl:6871 [inlined]
[14] cached_compilation
@ C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler.jl:6909 [inlined]
[15] thunkbase(ctx::LLVM.Context, mi::Core.MethodInstance, ::Val{…}, ::Type{…}, ::Type{…}, tt::Type{…}, ::Val{…}, ::Val{…}, ::Val{…}, ::Val{…}, ::Val{…}, ::Type{…})
@ Enzyme.Compiler C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler.jl:6982
[16] #s2043#28415
@ C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\compiler.jl:7034 [inlined]
[17]
@ Enzyme.Compiler .\none:0
[18] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any})
@ Core .\boot.jl:706
[19] autodiff(::ReverseMode{false, FFIABI, false}, f::Const{var"#1#2"}, ::Type{Active}, args::Duplicated{Vector{Float64}})
@ Enzyme C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\Enzyme.jl:309
[20] autodiff
@ C:\Users\frank\.julia\packages\Enzyme\r8mFE\src\Enzyme.jl:326 [inlined]
[21] gradByEnzyme(f::Function, inVal::Vector{Float64})
@ Main .\REPL[2]:3
[22] top-level scope
@ REPL[3]:1
Some type information was truncated. Use `show(err)` to see complete types.
System info:
Julia Version 1.11.0-rc2
Commit 34c3a63147 (2024-07-29 06:24 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 18 × 12th Gen Intel(R) Core(TM) i9-12900HK
WORD_SIZE: 64
LLVM: libLLVM-16.0.6 (ORCJIT, alderlake)
Threads: 1 default, 0 interactive, 1 GC (on 18 virtual cores)
Present issue here is that LLVM.jl dropped support for API's which we need to support 1.11
x/ref https://github.com/maleadt/LLVM.jl/issues/435
cc @frankwswang @avik-pal @mofeing @vchuravy
I was wondering if there are any updates on 1.11 support, as the release draws nearer?
Various codes work now and no precompilation failures, but not all. Specifically support for the new gc_loaded intrinsic needs to be added, but I don't understand the semantics of it yet and need help from @gbaraldi and or @vtjnash to add.
If you understand the meaning of it well enough to explain it and/or support it, be my guest! But since it's a GC related thing and I don't want to accidentally cause segfaults, it remains as an error atm.
I don't know the first thing about that, just wanted to check if I could re-activate DI tests for Enzyme on v1.11. Guess I'll give it a try!
I wanted to use split reverse mode in order to compute pullbacks with array outputs. The only doc I found is
https://enzymead.github.io/Enzyme.jl/stable/api/#EnzymeCore.autodiff_thunk-Union{Tuple{RABI},%20Tuple{ModifiedBetweenT},%20Tuple{Width},%20Tuple{ReturnShadow},%20Tuple{ReturnPrimal},%20Tuple{A},%20Tuple{FA},%20Tuple{EnzymeCore.ReverseModeSplit{ReturnPrimal,%20ReturnShadow,%20Width,%20ModifiedBetweenT,%20RABI},%20Type{FA},%20Type{A},%20Vararg{Any}}}%20where%20{FA%3C:Annotation,%20A%3C:Annotation,%20ReturnPrimal,%20ReturnShadow,%20Width,%20ModifiedBetweenT,%20RABI%3C:EnzymeCore.ABI}
so I tried it but it fails on Julia 1.11: