Skip to content

Crash when executing CUDA.randn(n) in CUDA v1.0.0 #229

@lungben

Description

@lungben

Hi,

With CUDA.jl V 1.0.0, the function CUDA.randn(n) does not work anymore.
With CUDA v0.1.0, it still worked fine.

Could you please take a look at it?

Thanks and Best Regards
Benjamin

My system:
Julia V1.4.2 64 bit, Windows 10, NVidia GeForce MX150

MWE + Stack Trace:

using CUDA
CUDA.randn(10)

ERROR: MethodError: no method matching personality!(::LLVM.Function, ::Nothing)
Closest candidates are:
  personality!(::LLVM.Function, ::LLVM.Function) at C:\Users\d90394\.julia\packages\LLVM\wQgrk\src\core\function.jl:16
Stacktrace:
 [1] macro expansion at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\irgen.jl:353 [inlined]
 [2] macro expansion at C:\Users\d90394\.julia\packages\TimerOutputs\dVnaw\src\TimerOutput.jl:206 [inlined]
 [3] irgen(::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}, ::Core.MethodInstance, ::UInt64) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\irgen.jl:335
 [4] macro expansion at C:\Users\d90394\.julia\packages\TimerOutputs\dVnaw\src\TimerOutput.jl:206 [inlined]
 [5] macro expansion at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\driver.jl:98 [inlined]
 [6] macro expansion at C:\Users\d90394\.julia\packages\TimerOutputs\dVnaw\src\TimerOutput.jl:206 [inlined]
 [7] codegen(::Symbol, ::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\driver.jl:97
 [8] emit_function!(::LLVM.Module, ::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}, ::Function, ::GPUCompiler.Runtime.RuntimeMethodInstance) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\rtlib.jl:77
 [9] build_runtime(::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\rtlib.jl:117
 [10] (::GPUCompiler.var"#52#55"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams},String,String})() at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\rtlib.jl:159
 [11] get!(::GPUCompiler.var"#52#55"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams},String,String}, ::Dict{String,LLVM.Module}, ::String) at .\dict.jl:452
 [12] load_runtime(::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\rtlib.jl:151
 [13] codegen(::Symbol, ::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\driver.jl:93
 [14] compile(::Symbol, ::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget,CUDA.CUDACompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, strip::Bool, validate::Bool) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\driver.jl:36
 [15] compile at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\driver.jl:32 [inlined]
 [16] _cufunction(::GPUCompiler.FunctionSpec{typeof(GPUArrays.index_kernel),Tuple{CUDA.CuKernelContext,CuDeviceArray{Float32,1,CUDA.AS.Global},CuDeviceArray{Float32,1,CUDA.AS.Global},Tuple{Int64},Tuple{UnitRange{Int64}}}}; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\d90394\.julia\packages\CUDA\VPAke\src\compiler\execution.jl:308
 [17] _cufunction at C:\Users\d90394\.julia\packages\CUDA\VPAke\src\compiler\execution.jl:302 [inlined]
 [18] #87 at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\cache.jl:21 [inlined]
 [19] get!(::GPUCompiler.var"#87#88"{Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},typeof(CUDA._cufunction),GPUCompiler.FunctionSpec{typeof(GPUArrays.index_kernel),Tuple{CUDA.CuKernelContext,CuDeviceArray{Float32,1,CUDA.AS.Global},CuDeviceArray{Float32,1,CUDA.AS.Global},Tuple{Int64},Tuple{UnitRange{Int64}}}}}, ::Dict{UInt64,Any}, ::UInt64) at .\dict.jl:452
 [20] macro expansion at .\lock.jl:183 [inlined]
 [21] check_cache(::typeof(CUDA._cufunction), ::GPUCompiler.FunctionSpec{typeof(GPUArrays.index_kernel),Tuple{CUDA.CuKernelContext,CuDeviceArray{Float32,1,CUDA.AS.Global},CuDeviceArray{Float32,1,CUDA.AS.Global},Tuple{Int64},Tuple{UnitRange{Int64}}}}, ::UInt64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\cache.jl:19
 [22] + at .\int.jl:53 [inlined]
 [23] hash_64_64 at .\hashing.jl:35 [inlined]
 [24] hash_uint64 at .\hashing.jl:62 [inlined]
 [25] hx at .\float.jl:568 [inlined]
 [26] hash at .\float.jl:571 [inlined]
 [27] cached_compilation(::typeof(CUDA._cufunction), ::GPUCompiler.FunctionSpec{typeof(GPUArrays.index_kernel),Tuple{CUDA.CuKernelContext,CuDeviceArray{Float32,1,CUDA.AS.Global},CuDeviceArray{Float32,1,CUDA.AS.Global},Tuple{Int64},Tuple{UnitRange{Int64}}}}, ::UInt64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\cache.jl:0
 [28] cached_compilation(::Function, ::GPUCompiler.FunctionSpec{typeof(GPUArrays.index_kernel),Tuple{CUDA.CuKernelContext,CuDeviceArray{Float32,1,CUDA.AS.Global},CuDeviceArray{Float32,1,CUDA.AS.Global},Tuple{Int64},Tuple{UnitRange{Int64}}}}, ::UInt64) at C:\Users\d90394\.julia\packages\GPUCompiler\FnKRy\src\cache.jl:37
 [29] cufunction(::Function, ::Type; name::Nothing, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\d90394\.julia\packages\CUDA\VPAke\src\compiler\execution.jl:296
 [30] macro expansion at C:\Users\d90394\.julia\packages\CUDA\VPAke\src\compiler\execution.jl:108 [inlined]
 [31] gpu_call(::CUDA.CuArrayBackend, ::Function, ::Tuple{CuArray{Float32,1,Nothing},CuArray{Float32,1,Nothing},Tuple{Int64},Tuple{UnitRange{Int64}}}, ::Int64; name::Nothing) at C:\Users\d90394\.julia\packages\CUDA\VPAke\src\gpuarrays.jl:32
 [32] #gpu_call#1 at C:\Users\d90394\.julia\packages\GPUArrays\X4SqE\src\device\execution.jl:61 [inlined]
 [33] gpu_call at C:\Users\d90394\.julia\packages\GPUArrays\X4SqE\src\device\execution.jl:46 [inlined]
 [34] _unsafe_getindex! at C:\Users\d90394\.julia\packages\GPUArrays\X4SqE\src\host\indexing.jl:135 [inlined]
 [35] _unsafe_getindex(::IndexLinear, ::CuArray{Float32,1,Nothing}, ::UnitRange{Int64}) at .\multidimensional.jl:741
 [36] _getindex(::IndexLinear, ::CuArray{Float32,1,Nothing}, ::UnitRange{Int64}) at .\multidimensional.jl:727
 [37] getindex at .\abstractarray.jl:980 [inlined]
 [38] outofplace_pow2(::Tuple{Int64}, ::CUDA.CURAND.var"#85#87"{DataType,Tuple{Int64}}, ::CUDA.CURAND.var"#86#88"{Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},CUDA.CURAND.RNG}) at C:\Users\d90394\.julia\packages\CUDA\VPAke\lib\curand\random.jl:137
 [39] randn(::CUDA.CURAND.RNG, ::Type{Float32}, ::Tuple{Int64}; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\d90394\.julia\packages\CUDA\VPAke\lib\curand\random.jl:145
 [40] randn at C:\Users\d90394\.julia\packages\CUDA\VPAke\lib\curand\random.jl:145 [inlined]
 [41] randn(::CUDA.CURAND.RNG, ::Tuple{Int64}; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\d90394\.julia\packages\CUDA\VPAke\lib\curand\random.jl:154
 [42] randn at C:\Users\d90394\.julia\packages\CUDA\VPAke\lib\curand\random.jl:154 [inlined]
 [43] randn(::Int64; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at C:\Users\d90394\.julia\packages\CUDA\VPAke\lib\curand\random.jl:221
 [44] randn(::Int64) at C:\Users\d90394\.julia\packages\CUDA\VPAke\lib\curand\random.jl:221
 [45] top-level scope at REPL[2]:1
 [46] eval(::Module, ::Any) at .\boot.jl:331
 [47] eval_user_input(::Any, ::REPL.REPLBackend) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\REPL.jl:86
 [48] run_backend(::REPL.REPLBackend) at C:\Users\d90394\.julia\packages\Revise\tV8FE\src\Revise.jl:1165
 [49] top-level scope at none:0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions