Skip to content

Cannot load symbol for enzymexlaLapackSideAttrGet #1780

@snonk

Description

@snonk

When calling MLIR.API.enzymexlaLapackSideAttrGet, I get the following error:

1-element ExceptionStack:
could not load symbol "enzymexlaLapackSideAttrGet":
/mnt2/snonk/Reactant.jl/deps/ReactantExtra/bazel-bin/libReactantExtra.so: undefined symbol: enzymexlaLapackSideAttrGet
Stacktrace:
  [1] enzymexlaLapackSideAttrGet(ctx::Reactant.MLIR.IR.Context, left_side::Int64)
    @ Reactant.MLIR.API /mnt2/snonk/Reactant.jl/src/mlir/libMLIR_h.jl:9678
  [2] lapack_symm(A::Reactant.TracedRArray{Float32, 2}, B::Reactant.TracedRArray{Float32, 2}, C::Reactant.TracedRArray{Float32, 2}, alpha::Reactant.TracedRNumber{Float32}, beta::Reactant.TracedRNumber{Float32}; side::Symbol, uplo::Symbol, location::Reactant.MLIR.IR.Location)
    @ Reactant.Ops /mnt2/snonk/Reactant.jl/src/Ops.jl:951
  [3] overloaded_mul!(C::Reactant.TracedRArray{T, 2} where T, A::Symmetric, B::AbstractMatrix, α::Bool, β::Bool)
    @ Reactant.TracedLinearAlgebra /mnt2/snonk/Reactant.jl/src/stdlibs/LinearAlgebra.jl:293
  [4] #mul!
    @ /mnt2/snonk/Reactant.jl/src/Overlay.jl:125 [inlined]
  [5] (::Nothing)(none::typeof(mul!), none::Reactant.TracedRArray{Float32, 2}, none::Symmetric{Reactant.TracedRNumber{Float32}, Reactant.TracedRArray{Float32, 2}}, none::Reactant.TracedRArray{Float32, 2}, none::Bool, none::Bool)
    @ Reactant ./<missing>:0
  [6] call_with_reactant(::typeof(mul!), ::Reactant.TracedRArray{Float32, 2}, ::Symmetric{Reactant.TracedRNumber{Float32}, Reactant.TracedRArray{Float32, 2}}, ::Reactant.TracedRArray{Float32, 2}, ::Bool, ::Bool)
    @ Reactant /mnt2/snonk/Reactant.jl/src/utils.jl:519
  [7] mul!(C::Reactant.TracedRArray{Float32, 2}, A::Symmetric{Reactant.TracedRNumber{Float32}, Reactant.TracedRArray{Float32, 2}}, B::Reactant.TracedRArray{Float32, 2})
    @ Reactant /mnt2/snonk/Reactant.jl/src/Overlay.jl:140
  [8] *
    @ /mnt2/snonk/.julia/juliaup/julia-1.11.7+0.x64.linux.gnu/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:114 [inlined]
  [9] (::Nothing)(none::typeof(*), none::Symmetric{Reactant.TracedRNumber{Float32}, Reactant.TracedRArray{Float32, 2}}, none::Reactant.TracedRArray{Float32, 2})
    @ Reactant ./<missing>:0
 [10] getproperty
    @ ./Base.jl:49 [inlined]
 [11] size
    @ /mnt2/snonk/.julia/juliaup/julia-1.11.7+0.x64.linux.gnu/share/julia/stdlib/v1.11/LinearAlgebra/src/symmetric.jl:225 [inlined]
 [12] size
    @ ./abstractarray.jl:42 [inlined]
 [13] matprod_dest
    @ /mnt2/snonk/.julia/juliaup/julia-1.11.7+0.x64.linux.gnu/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:117 [inlined]
 [14] *
    @ /mnt2/snonk/.julia/juliaup/julia-1.11.7+0.x64.linux.gnu/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:114 [inlined]
 [15] call_with_reactant(::typeof(*), ::Symmetric{Reactant.TracedRNumber{Float32}, Reactant.TracedRArray{Float32, 2}}, ::Reactant.TracedRArray{Float32, 2})
    @ Reactant /mnt2/snonk/Reactant.jl/src/utils.jl:0
 [16] mat_mat_scalar
    @ /mnt2/snonk/.julia/juliaup/julia-1.11.7+0.x64.linux.gnu/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:1160 [inlined]
 [17] *
    @ /mnt2/snonk/.julia/juliaup/julia-1.11.7+0.x64.linux.gnu/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:1122 [inlined]
 [18] (::Nothing)(none::typeof(*), none::Symmetric{Reactant.TracedRNumber{Float32}, Reactant.TracedRArray{Float32, 2}}, none::Reactant.TracedRArray{Float32, 2}, none::Float32)
    @ Reactant ./<missing>:0
 [19] mat_mat_scalar
    @ /mnt2/snonk/.julia/juliaup/julia-1.11.7+0.x64.linux.gnu/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:1160 [inlined]
 [20] *
    @ /mnt2/snonk/.julia/juliaup/julia-1.11.7+0.x64.linux.gnu/share/julia/stdlib/v1.11/LinearAlgebra/src/matmul.jl:1122 [inlined]
 [21] call_with_reactant(::typeof(*), ::Symmetric{Reactant.TracedRNumber{Float32}, Reactant.TracedRArray{Float32, 2}}, ::Reactant.TracedRArray{Float32, 2}, ::Float32)
    @ Reactant /mnt2/snonk/Reactant.jl/src/utils.jl:0
 [22] make_mlir_fn(f::typeof(*), args::Tuple{Symmetric{Float32, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}}, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}, Float32}, kwargs::@NamedTuple{}, name::String, concretein::Bool; toscalar::Bool, return_dialect::Symbol, args_in_result::Symbol, construct_function_without_args::Bool, do_transpose::Bool, input_shardings::Nothing, output_shardings::Nothing, runtime::Val{:PJRT}, verify_arg_names::Nothing, argprefix::Symbol, resprefix::Symbol, resargprefix::Symbol, num_replicas::Int64, optimize_then_pad::Bool)
    @ Reactant.TracedUtils /mnt2/snonk/Reactant.jl/src/TracedUtils.jl:345
 [23] compile_mlir!(mod::Reactant.MLIR.IR.Module, f::Function, args::Tuple{Symmetric{Float32, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}}, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}, Float32}, compile_options::CompileOptions, callcache::Dict{Vector, @NamedTuple{f_name::String, mlir_result_types::Vector{Reactant.MLIR.IR.Type}, traced_result, mutated_args::Vector{Int64}, linear_results::Vector{Union{ReactantCore.MissingTracedValue, Reactant.TracedRArray, Reactant.TracedRNumber}}, fnwrapped::Bool, argprefix::Symbol, resprefix::Symbol, resargprefix::Symbol}}, sdycache::Dict{Tuple{AbstractVector{Int64}, NTuple{var"#s1742", Symbol} where var"#s1742", NTuple{N, Int64} where N}, @NamedTuple{sym_name::Reactant.MLIR.IR.Attribute, mesh_attr::Reactant.MLIR.IR.Attribute, mesh_op::Reactant.MLIR.IR.Operation, mesh::Reactant.Sharding.Mesh}}; fn_kwargs::@NamedTuple{}, backend::String, runtime::Val{:PJRT}, legalize_stablehlo_to_mhlo::Bool, kwargs::@Kwargs{})
    @ Reactant.Compiler /mnt2/snonk/Reactant.jl/src/Compiler.jl:1605
 [24] compile_mlir!
    @ /mnt2/snonk/Reactant.jl/src/Compiler.jl:1572 [inlined]
 [25] (::Reactant.Compiler.var"#9#10"{Nothing, typeof(*), Tuple{Symmetric{Float32, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}}, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}, Float32}})(ctx::Reactant.MLIR.IR.Context)
    @ Reactant.Compiler /mnt2/snonk/Reactant.jl/src/Compiler.jl:1410
 [26] with_context(f::Reactant.Compiler.var"#9#10"{Nothing, typeof(*), Tuple{Symmetric{Float32, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}}, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}, Float32}}; allow_use_existing::Bool)
    @ Reactant.MLIR.IR /mnt2/snonk/Reactant.jl/src/mlir/IR/Context.jl:99
 [27] with_context(f::Function)
    @ Reactant.MLIR.IR /mnt2/snonk/Reactant.jl/src/mlir/IR/Context.jl:82
 [28] compile_mlir(f::Function, args::Tuple{Symmetric{Float32, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}}, ConcretePJRTArray{Float32, 2, 1, Reactant.Sharding.ShardInfo{Reactant.Sharding.NoSharding, Nothing}}, Float32}; client::Nothing, kwargs::@Kwargs{fn_kwargs::@NamedTuple{}, reshape_propagate::Symbol, raise_first::Bool, assert_nonallocating::Bool, legalize_chlo_to_stablehlo::Bool, transpose_propagate::Symbol, donated_args::Symbol, optimize_then_pad::Bool, cudnn_hlo_optimize::Bool, compile_options::Missing, no_nan::Bool, raise::Bool, shardy_passes::Symbol, optimize::Bool, optimize_communications::Bool})
    @ Reactant.Compiler /mnt2/snonk/Reactant.jl/src/Compiler.jl:1406
 [29] top-level scope
    @ /mnt2/snonk/Reactant.jl/src/Compiler.jl:2644

was advised to cc @wsmoses

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions