Skip to content

Loading KA 0.10 and oneAPI/OpenCL will lead to "MethodOverwritten" errors due to MethodTable collisions #610

Open
@vchuravy

Description

@vchuravy

Currently Metal CI for KA 0.10 fails with:

WARNING: Method definition throw_complex_domainerror(Symbol, Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:9 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:9.
ERROR: Method overwriting is not permitted during Module precompilation. Use `__precompile__(false)` to opt-out of precompilation.
WARNING: Method definition throw_complex_domainerror(Symbol, Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:9 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:9.
WARNING: Method definition throw_exp_domainerror(Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:11 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:11.
WARNING: Method definition throw_domerr_powbysq(Any, Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:15 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:15.
WARNING: Method definition throw_domerr_powbysq(Integer, Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:17 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:17.
WARNING: Method definition throw_domerr_powbysq(AbstractArray{T, 2} where T, Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:19 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:19.
WARNING: Method definition throw_overflowerr_binaryop(Any, Any, Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:23 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:23.
WARNING: Method definition throw_overflowerr_negation(Any, Any, Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:25 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:25.
WARNING: Method definition throw_inexacterror(Symbol, Type{T}, Any) where {T} in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:29 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:29.
WARNING: Method definition throw_boundserror(Any, Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:33 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:33.
WARNING: Method definition sincos_domain_error(Any) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:37 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:37.
WARNING: Method definition getindex(Number, Integer...) in module POCL at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/device/quirks.jl:55 overwritten in module oneAPI at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/device/quirks.jl:55.
WARNING: Method definition __index_Local_Linear(Any) in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:143 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:115.
WARNING: Method definition __index_Group_Linear(Any) in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:147 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:119.
WARNING: Method definition __index_Global_Linear(Any) in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:151 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:123.
WARNING: Method definition __index_Local_Cartesian(Any) in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:155 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:127.
WARNING: Method definition __index_Group_Cartesian(Any) in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:159 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:131.
WARNING: Method definition __index_Global_Cartesian(Any) in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:163 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:135.
WARNING: Method definition __validindex(Any) in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:167 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:139.
WARNING: Method definition SharedMemory(Type{T}, Base.Val{Dims}, Base.Val{Id}) where {T, Dims, Id} in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:179 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:151.
WARNING: Method definition Scratchpad(Any, Type{T}, Base.Val{Dims}) where {T, Dims} in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:184 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:156.
WARNING: Method definition __synchronize() in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:191 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:163.
WARNING: Method definition __print(Any...) in module POCLKernels at /var/lib/buildkite-agent/builds/sagittarius-maleadt-net/julialang/kernelabstractions-dot-jl/src/pocl/backend.jl:195 overwritten in module oneAPIKernels at /root/.cache/julia-buildkite-plugin/depots/35be44f1-0cc0-43a0-8017-dbc23b648d1d/dev/oneAPI/src/oneAPIKernels.jl:167.

I assume the same is true for OpenCL.jl, but we don't have downstream CI for that yet.

The issue is that the packages all use the MethodTable defined by SPIRVIntrinsics.

  1. Use different method-tables
    • Annoying since we then need a way to initialize them with the data from SPIRVIntrinsics
  2. Define a method overlay "stack"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions