Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LoopVectorization fail to compile on julia 32bit REPL #501

Closed
kaihsin opened this issue Jun 22, 2023 · 0 comments · Fixed by #502
Closed

LoopVectorization fail to compile on julia 32bit REPL #501

kaihsin opened this issue Jun 22, 2023 · 0 comments · Fixed by #502

Comments

@kaihsin
Copy link

kaihsin commented Jun 22, 2023

Platform:
> linux x86_64 with julia 32bit REPL (v1.6.7 lts)

Issue:
> LoopVectorization fail to compile due to missing method
> mulexpr(::SubArray{Any, 1, Vector{Any}, Tuple{UnitRange{Int32}}, true})

How to reproduce:
> on x86_64 (64bit linux OS) using julia 32bit REPL to install LoopVectorization

Cause:
> I believe it is because the default Base.Int is Int32 on 32bit REPL, in oppose to 64bit REPL where Base.Int is Int64, therefore the Tuple{UnitRange{Int32}} is not implemented

Err msg:

ERROR: The following 1 direct dependency failed to precompile:

LoopVectorization [bdcacae8-1622-11e9-2a5c-532679323890]

Failed to precompile LoopVectorization [bdcacae8-1622-11e9-2a5c-532679323890] to /home/kaihsinwu/.julia/compiled/v1.6/LoopVectorization/jl_q2rb6n.
ERROR: LoadError: LoadError: MethodError: no method matching mulexpr(::SubArray{Any, 1, Vector{Any}, Tuple{UnitRange{Int32}}, true})
Closest candidates are:
  mulexpr(::Any, ::Any) at /home/kaihsinwu/.julia/packages/LoopVectorization/yozoL/src/modeling/graphs.jl:147
  mulexpr(::Any, ::Any, ::Any) at /home/kaihsinwu/.julia/packages/LoopVectorization/yozoL/src/modeling/graphs.jl:168
  mulexpr(::SubArray{Any, 1, Vector{Any}, Tuple{UnitRange{Int64}}, true}) at /home/kaihsinwu/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:23
Stacktrace:
  [1] recursive_muladd_search!(call::Expr, argv::Vector{Any}, mod::Nothing, cnmul::Bool, csub::Bool)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:120
  [2] recursive_muladd_search!(call::Expr, argv::Vector{Any}, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:81
  [3] capture_a_muladd(ex::Expr, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:188
  [4] capture_muladd(ex::Expr, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:233
  [5] contract!(expr::Expr, ex::Expr, i::Int32, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:297
  [6] contract_pass!(expr::Expr, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:310
  [7] contract!(expr::Expr, ex::Expr, i::Int32, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:300
  [8] contract_pass!(expr::Expr, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:310
  [9] contract!(expr::Expr, ex::Expr, i::Int32, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:300
 [10] contract_pass!(expr::Expr, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:310
 [11] contract!(expr::Expr, ex::Expr, i::Int32, mod::Nothing)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:300
 [12] contract_pass!
    @ ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:310 [inlined]
 [13] contract_pass!
    @ ~/.julia/packages/LoopVectorization/yozoL/src/vectorizationbase_compat/contract_pass.jl:304 [inlined]
 [14] LoopVectorization.LoopSet(q::Expr, mod::Symbol)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/constructors.jl:110
 [15] LoopSet
    @ ~/.julia/packages/LoopVectorization/yozoL/src/constructors.jl:108 [inlined]
 [16] loopset(q::Expr)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/constructors.jl:118
 [17] top-level scope
    @ ~/.julia/packages/LoopVectorization/yozoL/src/user_api_conveniences.jl:4
 [18] include(mod::Module, _path::String)
    @ Base ./Base.jl:384
 [19] include(x::String)
    @ LoopVectorization ~/.julia/packages/LoopVectorization/yozoL/src/LoopVectorization.jl:1
 [20] top-level scope
    @ ~/.julia/packages/LoopVectorization/yozoL/src/LoopVectorization.jl:237
 [21] include
    @ ./Base.jl:384 [inlined]
 [22] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
    @ Base ./loading.jl:1235
 [23] top-level scope
    @ none:1
 [24] eval
    @ ./boot.jl:360 [inlined]
 [25] eval(x::Expr)
    @ Base.MainInclude ./client.jl:446
 [26] top-level scope
    @ none:1
in expression starting at /home/kaihsinwu/.julia/packages/LoopVectorization/yozoL/src/user_api_conveniences.jl:4
in expression starting at /home/kaihsinwu/.julia/packages/LoopVectorization/yozoL/src/LoopVectorization.jl:1
Stacktrace:
 [1] pkgerror(msg::String)
   @ Pkg.Types /buildworker/worker/package_linux32/build/usr/share/julia/stdlib/v1.6/Pkg/src/Types.jl:55
 [2] precompile(ctx::Pkg.Types.Context; internal_call::Bool, strict::Bool, warn_loaded::Bool, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
   @ Pkg.API /buildworker/worker/package_linux32/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:1265
 [3] precompile
   @ /buildworker/worker/package_linux32/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:921 [inlined]
 [4] #precompile#196
   @ /buildworker/worker/package_linux32/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:919 [inlined]
 [5] precompile()
   @ Pkg.API /buildworker/worker/package_linux32/build/usr/share/julia/stdlib/v1.6/Pkg/src/API.jl:919
 [6] top-level scope
   @ REPL[3]:1


chriselrod added a commit that referenced this issue Jun 22, 2023
chriselrod added a commit that referenced this issue Jun 23, 2023
* `Int` not `Int64`

Fixes #501

* Bump version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant