Skip to content
This repository was archived by the owner on Mar 12, 2021. It is now read-only.
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

@AzamatB

Description

@AzamatB
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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions