Open
Description
This is the same problem as JuliaGPU/Metal.jl#550.
julia> map(y -> y < 3 // 2, CUDA.zeros(1))
ERROR: LLVM error: Undefined external symbol "__divti3"
Stacktrace:
[1] handle_error(reason::Cstring)
@ LLVM ~/.julia/packages/LLVM/b3kFs/src/core/context.jl:194
[2] LLVMTargetMachineEmitToMemoryBuffer(T::LLVM.TargetMachine, M::LLVM.Module, codegen::LLVM.API.LLVMCodeGenFileType, ErrorMessage::Base.RefValue{…}, OutMemBuf::Base.RefValue{…})
@ LLVM.API ~/.julia/packages/LLVM/b3kFs/lib/16/libLLVM.jl:11138
[3] emit(tm::LLVM.TargetMachine, mod::LLVM.Module, filetype::LLVM.API.LLVMCodeGenFileType)
@ LLVM ~/.julia/packages/LLVM/b3kFs/src/targetmachine.jl:118
[4] mcgen(job::GPUCompiler.CompilerJob, mod::LLVM.Module, format::LLVM.API.LLVMCodeGenFileType)
@ GPUCompiler ~/.julia/packages/GPUCompiler/AQezv/src/mcgen.jl:75
[5] mcgen(job::GPUCompiler.CompilerJob{…}, mod::LLVM.Module, format::LLVM.API.LLVMCodeGenFileType)
@ CUDA ~/.julia/packages/CUDA/1kIOw/src/compiler/compilation.jl:127
[6] macro expansion
@ ~/.julia/packages/TimerOutputs/6KVfH/src/TimerOutput.jl:253 [inlined]
[7] macro expansion
@ ~/.julia/packages/GPUCompiler/AQezv/src/driver.jl:403 [inlined]
[8] macro expansion
@ ~/.julia/packages/TimerOutputs/6KVfH/src/TimerOutput.jl:253 [inlined]
[9] macro expansion
@ ~/.julia/packages/GPUCompiler/AQezv/src/driver.jl:400 [inlined]
[10]
@ GPUCompiler ~/.julia/packages/GPUCompiler/AQezv/src/utils.jl:108
[11] emit_asm
@ ~/.julia/packages/GPUCompiler/AQezv/src/utils.jl:106 [inlined]
[12]
@ GPUCompiler ~/.julia/packages/GPUCompiler/AQezv/src/driver.jl:120
[13] codegen
@ ~/.julia/packages/GPUCompiler/AQezv/src/driver.jl:82 [inlined]
[14] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/packages/GPUCompiler/AQezv/src/driver.jl:79
[15] compile
@ ~/.julia/packages/GPUCompiler/AQezv/src/driver.jl:74 [inlined]
[16] #1147
@ ~/.julia/packages/CUDA/1kIOw/src/compiler/compilation.jl:250 [inlined]
[17] JuliaContext(f::CUDA.var"#1147#1150"{GPUCompiler.CompilerJob{…}}; kwargs::@Kwargs{})
@ GPUCompiler ~/.julia/packages/GPUCompiler/AQezv/src/driver.jl:34
[18] JuliaContext(f::Function)
@ GPUCompiler ~/.julia/packages/GPUCompiler/AQezv/src/driver.jl:25
[19] compile(job::GPUCompiler.CompilerJob)
@ CUDA ~/.julia/packages/CUDA/1kIOw/src/compiler/compilation.jl:249
[20] actual_compilation(cache::Dict{…}, src::Core.MethodInstance, world::UInt64, cfg::GPUCompiler.CompilerConfig{…}, compiler::typeof(CUDA.compile), linker::typeof(CUDA.link))
@ GPUCompiler ~/.julia/packages/GPUCompiler/AQezv/src/execution.jl:237
[21] cached_compilation(cache::Dict{…}, src::Core.MethodInstance, cfg::GPUCompiler.CompilerConfig{…}, compiler::Function, linker::Function)
@ GPUCompiler ~/.julia/packages/GPUCompiler/AQezv/src/execution.jl:151
[22] macro expansion
@ ~/.julia/packages/CUDA/1kIOw/src/compiler/execution.jl:380 [inlined]
[23] macro expansion
@ ./lock.jl:273 [inlined]
[24] cufunction(f::GPUArrays.var"#gpu_broadcast_kernel_linear#38", tt::Type{…}; kwargs::@Kwargs{…})
@ CUDA ~/.julia/packages/CUDA/1kIOw/src/compiler/execution.jl:375
[25] macro expansion
@ ~/.julia/packages/CUDA/1kIOw/src/compiler/execution.jl:112 [inlined]
[26] (::KernelAbstractions.Kernel{…})(::CuArray{…}, ::Vararg{…}; ndrange::Tuple{…}, workgroupsize::Nothing)
@ CUDA.CUDAKernels ~/.julia/packages/CUDA/1kIOw/src/CUDAKernels.jl:103
[27] _copyto!
@ ~/.julia/packages/GPUArrays/uiVyU/src/host/broadcast.jl:71 [inlined]
[28] copyto!
@ ~/.julia/packages/GPUArrays/uiVyU/src/host/broadcast.jl:44 [inlined]
[29] copy(bc::Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{…}, Tuple{…}, var"#57#58", Tuple{…}})
@ GPUArrays ~/.julia/packages/GPUArrays/uiVyU/src/host/broadcast.jl:29
[30] materialize
@ ./broadcast.jl:867 [inlined]
[31] map(f::Function, xs::CuArray{Float32, 1, CUDA.DeviceMemory})
@ GPUArrays ~/.julia/packages/GPUArrays/uiVyU/src/host/broadcast.jl:88
[32] top-level scope
@ REPL[123]:1
Some type information was truncated. Use `show(err)` to see complete types.
julia> CUDA.versioninfo()
CUDA runtime 12.6, artifact installation
CUDA driver 12.4
NVIDIA driver 550.90.7
CUDA libraries:
- CUBLAS: 12.6.4
- CURAND: 10.3.7
- CUFFT: 11.3.0
- CUSOLVER: 11.7.1
- CUSPARSE: 12.5.4
- CUPTI: 2024.3.2 (API 24.0.0)
- NVML: 12.0.0+550.90.7
Julia packages:
- CUDA: 5.6.1
- CUDA_Driver_jll: 0.10.4+0
- CUDA_Runtime_jll: 0.15.5+0
Toolchain:
- Julia: 1.11.1
- LLVM: 16.0.6
1 device:
0: NVIDIA GeForce RTX 3090 (sm_86, 23.320 GiB / 24.000 GiB available)