This repository was archived by the owner on Mar 12, 2021. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 78
This repository was archived by the owner on Mar 12, 2021. It is now read-only.
sum!(y::CuVector, x::CuMatrix) throws InvalidIRError error #661
Copy link
Copy link
Closed
Labels
Description
julia> x, y = CuArrays.rand(2, 3), CuArrays.zeros(2);
julia> sum!(y, x)
ERROR: InvalidIRError: compiling mapreduce_grid(typeof(identity), typeof(Base.add_sum), CUDAnative.CuDeviceArray{Float32,2,CUDAnative.AS.Global}, CUDAnative.CuDeviceArray{Float32,1,CUDAnative.AS.Global}, Nothing, CartesianIndices{2,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}}}, CartesianIndices{1,Tuple{Base.OneTo{Int64}}}, Val{true}) resulted in invalid LLVM IR
Reason: unsupported dynamic function invocation (call to isless)
Stacktrace:
[1] max at operators.jl:408
[2] mapreduce_grid at /home/azamat/.julia/packages/CuArrays/e8PLr/src/mapreduce.jl:107
Stacktrace:
[1] check_ir(::CUDAnative.CompilerJob, ::LLVM.Module) at /home/azamat/.julia/packages/CUDAnative/cnQli/src/compiler/validation.jl:116
[2] macro expansion at /home/azamat/.julia/packages/CUDAnative/cnQli/src/compiler/driver.jl:186 [inlined]
[3] macro expansion at /home/azamat/.julia/packages/TimerOutputs/7Id5J/src/TimerOutput.jl:228 [inlined]
[4] codegen(::Symbol, ::CUDAnative.CompilerJob; libraries::Bool, dynamic_parallelism::Bool, optimize::Bool, strip::Bool, strict::Bool) at /home/azamat/.julia/packages/CUDAnative/cnQli/src/compiler/driver.jl:184
[5] compile(::Symbol, ::CUDAnative.CompilerJob; libraries::Bool, dynamic_parallelism::Bool, optimize::Bool, strip::Bool, strict::Bool) at /home/azamat/.julia/packages/CUDAnative/cnQli/src/compiler/driver.jl:45
[6] #compile#175 at /home/azamat/.julia/packages/CUDAnative/cnQli/src/compiler/driver.jl:33 [inlined]
[7] cufunction_slow(::Function, ::Type{T} where T, ::Int64; name::Nothing, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/azamat/.julia/packages/CUDAnative/cnQli/src/execution.jl:326
[8] #223 at /home/azamat/.julia/packages/CUDAnative/cnQli/src/execution.jl:393 [inlined]
[9] get!(::CUDAnative.var"#223#224"{Nothing,Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},typeof(CuArrays.mapreduce_grid),DataType,Int64}, ::Dict{UInt64,CUDAnative.HostKernel}, ::UInt64) at ./dict.jl:452
[10] macro expansion at /home/azamat/.julia/packages/CUDAnative/cnQli/src/execution.jl:392 [inlined]
[11] macro expansion at ./lock.jl:183 [inlined]
[12] cufunction_fast(::Function, ::Type{T} where T, ::Int64; name::Nothing, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/azamat/.julia/packages/CUDAnative/cnQli/src/execution.jl:391
[13] cufunction(::typeof(CuArrays.mapreduce_grid), ::Type{Tuple{typeof(identity),typeof(Base.add_sum),CUDAnative.CuDeviceArray{Float32,2,CUDAnative.AS.Global},CUDAnative.CuDeviceArray{Float32,1,CUDAnative.AS.Global},Nothing,CartesianIndices{2,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}}},CartesianIndices{1,Tuple{Base.OneTo{Int64}}},Val{true}}}; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/azamat/.julia/packages/CUDAnative/cnQli/src/execution.jl:422
[14] cufunction(::Function, ::Type{T} where T) at /home/azamat/.julia/packages/CUDAnative/cnQli/src/execution.jl:422
[15] macro expansion at /home/azamat/.julia/packages/CUDAnative/cnQli/src/execution.jl:157 [inlined]
[16] macro expansion at /home/azamat/.julia/packages/CuArrays/e8PLr/src/mapreduce.jl:161 [inlined]
[17] mapreducedim!(::Function, ::Function, ::CuArray{Float32,1,Nothing}, ::CuArray{Float32,2,Nothing}, ::Nothing) at /home/azamat/.julia/packages/CUDAnative/cnQli/src/nvtx/highlevel.jl:85
[18] mapreducedim! at /home/azamat/.julia/packages/CUDAnative/cnQli/src/nvtx/highlevel.jl:83 [inlined]
[19] mapreducedim! at /home/azamat/.julia/packages/GPUArrays/QDGmr/src/host/mapreduce.jl:6 [inlined]
[20] reducedim! at ./reducedim.jl:277 [inlined]
[21] sum!(::CuArray{Float32,1,Nothing}, ::CuArray{Float32,2,Nothing}) at /home/azamat/.julia/packages/GPUArrays/QDGmr/src/host/mapreduce.jl:57
[22] top-level scope at none:0
while
julia> x, y = rand(Float32, 2, 3), zeros(Float32, 2);
julia> sum!(y, x)
2-element Array{Float32,1}:
1.3684386
0.96502054