-
Notifications
You must be signed in to change notification settings - Fork 90
Closed
JuliaLang/julia
#40468Description
The line errors
GPUArrays.jl/src/host/linalg.jl
Line 200 in c418821
| function LinearAlgebra.permutedims!(dest::AbstractGPUArray, src::AbstractGPUArray, perm) where N |
julia> CUDA.permutedims(CuArray(randn(fill(2, 20)...)), randperm(20));
ERROR: InvalidIRError: compiling kernel #41(CUDA.CuKernelContext, CuDeviceArray{Float64,20,1}, CuDeviceArray{Float64,20,1}, NTuple{20,Int64}) resulted in invalid LLVM IR
Reason: unsupported dynamic function invocation (call to getindex)
Stacktrace:
[1] macro expansion at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/device/indexing.jl:81
[2] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:203
Reason: unsupported dynamic function invocation (call to getindex)
Stacktrace:
[1] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:204
Reason: unsupported dynamic function invocation (call to genperm)
Stacktrace:
[1] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:204
Reason: unsupported dynamic function invocation (call to setindex!(A::AbstractArray, v, I...) in Base at abstractarray.jl:1150)
Stacktrace:
[1] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:204
Reason: unsupported dynamic function invocation (call to setindex!)
Stacktrace:
[1] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:204
Reason: unsupported call through a literal pointer (call to jl_alloc_array_1d)
Stacktrace:
[1] Array at boot.jl:406
[2] map at tuple.jl:168
[3] axes at abstractarray.jl:75
[4] CartesianIndices at multidimensional.jl:264
[5] macro expansion at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/device/indexing.jl:81
[6] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:203
Reason: unsupported call to the Julia runtime (call to jl_f__apply_iterate)
Stacktrace:
[1] map at tuple.jl:172
[2] axes at abstractarray.jl:75
[3] CartesianIndices at multidimensional.jl:264
[4] macro expansion at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/device/indexing.jl:81
[5] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:203
Reason: unsupported dynamic function invocation (call to CartesianIndices)
Stacktrace:
[1] CartesianIndices at multidimensional.jl:264
[2] macro expansion at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/device/indexing.jl:81
[3] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:203
Stacktrace:
[1] check_ir(::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}, ::LLVM.Module) at /home/jgliu/.julia/packages/GPUCompiler/uTpNx/src/validation.jl:123
[2] macro expansion at /home/jgliu/.julia/packages/GPUCompiler/uTpNx/src/driver.jl:239 [inlined]
[3] macro expansion at /home/jgliu/.julia/packages/TimerOutputs/ZmKD7/src/TimerOutput.jl:206 [inlined]
[4] codegen(::Symbol, ::GPUCompiler.CompilerJob; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool, only_entry::Bool) at /home/jgliu/.julia/packages/GPUCompiler/uTpNx/src/driver.jl:237
[5] compile(::Symbol, ::GPUCompiler.CompilerJob; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool, only_entry::Bool) at /home/jgliu/.julia/packages/GPUCompiler/uTpNx/src/driver.jl:39
[6] compile at /home/jgliu/.julia/packages/GPUCompiler/uTpNx/src/driver.jl:35 [inlined]
[7] cufunction_compile(::GPUCompiler.FunctionSpec; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/jgliu/.julia/packages/CUDA/0p5fn/src/compiler/execution.jl:310
[8] cufunction_compile(::GPUCompiler.FunctionSpec) at /home/jgliu/.julia/packages/CUDA/0p5fn/src/compiler/execution.jl:305
[9] check_cache(::Dict{UInt64,Any}, ::Any, ::Any, ::GPUCompiler.FunctionSpec{GPUArrays.var"#41#42",Tuple{CUDA.CuKernelContext,CuDeviceArray{Float64,20,1},CuDeviceArray{Float64,20,1},NTuple{20,Int64}}}, ::UInt64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/jgliu/.julia/packages/GPUCompiler/uTpNx/src/cache.jl:40
[10] #41 at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:203 [inlined]
[11] cached_compilation at /home/jgliu/.julia/packages/GPUCompiler/uTpNx/src/cache.jl:65 [inlined]
[12] cufunction(::GPUArrays.var"#41#42", ::Type{Tuple{CUDA.CuKernelContext,CuDeviceArray{Float64,20,1},CuDeviceArray{Float64,20,1},NTuple{20,Int64}}}; name::Nothing, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /home/jgliu/.julia/packages/CUDA/0p5fn/src/compiler/execution.jl:297
[13] cufunction(::GPUArrays.var"#41#42", ::Type{Tuple{CUDA.CuKernelContext,CuDeviceArray{Float64,20,1},CuDeviceArray{Float64,20,1},NTuple{20,Int64}}}) at /home/jgliu/.julia/packages/CUDA/0p5fn/src/compiler/execution.jl:294
[14] #launch_heuristic#852 at /home/jgliu/.julia/packages/CUDA/0p5fn/src/gpuarrays.jl:19 [inlined]
[15] launch_heuristic at /home/jgliu/.julia/packages/CUDA/0p5fn/src/gpuarrays.jl:17 [inlined]
[16] gpu_call(::GPUArrays.var"#41#42", ::CuArray{Float64,20}, ::CuArray{Float64,20}, ::NTuple{20,Int64}; target::CuArray{Float64,20}, total_threads::Nothing, threads::Nothing, blocks::Nothing, name::String) at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/device/execution.jl:61
[17] permutedims!(::CuArray{Float64,20}, ::CuArray{Float64,20}, ::Array{Int64,1}) at /home/jgliu/.julia/packages/GPUArrays/ZxsKE/src/host/linalg.jl:202
[18] permutedims(::CuArray{Float64,20}, ::Array{Int64,1}) at ./multidimensional.jl:1381
[19] top-level scope at REPL[12]:1I think this is the 16 size tuple issue. Is there some easy approach to circumvent this error?