JuliaGPU/Metal.jl

`symbol multiply defined!` Bug/crash on Julia master, fine on 1.10

Closed this issue · 1 comments

This is probably too bleeding edge to be worth looking into, but fwiw, Metal.jl crashes on the latest master branch.

julia> using Metal
julia> a = MtlArray(rand(Float32, 10, 10))
10×10 MtlMatrix{Float32, Metal.MTL.MTLResourceStorageModePrivate}:
 0.562914   0.675761   0.377983   0.117012   0.615294  0.377587   0.413982   0.258907   0.833031   0.820297
 0.807353   0.45669    0.372707   0.935807   0.343164  0.0347771  0.583329   0.943538   0.0902927  0.817029
 0.820998   0.441891   0.560646   0.91938    0.708939  0.288236   0.0254993  0.168546   0.585622   0.840232
 0.0249459  0.429856   0.11296    0.922259   0.262767  0.385387   0.242638   0.334275   0.858709   0.450375
 0.932194   0.252058   0.126697   0.166396   0.368208  0.277414   0.251969   0.359675   0.572237   0.479116
 0.968236   0.399941   0.842148   0.412937   0.867364  0.601367   0.37558    0.0319361  0.20495    0.988991
 0.418549   0.735809   0.905008   0.129764   0.332668  0.825859   0.552108   0.608063   0.859919   0.251722
 0.19487    0.175379   0.0490065  0.0697542  0.738496  0.768976   0.0263405  0.930502   0.449698   0.749547
 0.222098   0.29258    0.275563   0.0327457  0.634239  0.673537   0.882235   0.262008   0.9718     0.826045
 0.566445   0.0566074  0.565569   0.731973   0.320798  0.381393   0.625491   0.976016   0.0402388  0.388404

julia> a .+ 1
error: Linking globals named '*Core.Intrinsics.bitcast#1': symbol multiply defined!

julia> versioninfo()
Julia Version 1.11.0-DEV.197
Commit 21ac3c5393* (2023-07-31 02:27 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin22.6.0)
  CPU: 10 × Apple M1 Pro
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
  Threads: 1 on 8 virtual cores

Yep, I ran into this yesterday too: JuliaGPU/GPUCompiler.jl#489
It'll probably take a while for the GPU stack to adapt, since there's many changes happening to upstream codegen right now, and I'll wait for the dust to settle first.