Skip to content
This repository has been archived by the owner on May 27, 2021. It is now read-only.

Segfault using MArray #386

Closed
lcw opened this issue Apr 12, 2019 · 3 comments
Closed

Segfault using MArray #386

lcw opened this issue Apr 12, 2019 · 3 comments

Comments

@lcw
Copy link

lcw commented Apr 12, 2019

I am getting the following segfault when I try to use an MArray inside a CUDAnative kernel. I am using the current master version of CUDAnative. I have tried both with and without @inbounds.

❯ julia --project=.
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.2.0-DEV.670 (2019-04-10)
 _/ |\__'_|_|_|\__'_|  |  Commit 20499752ac (2 days old master)
|__/                   |

julia> using CUDAnative, StaticArrays

julia> function kernel()
         r = MArray{Tuple{5}, Float32}(undef)
         @inbounds r[1] = 0.0f0

         nothing
       end
kernel (generic function with 1 method)

julia> @cuda kernel()


signal (11): Segmentation fault
in expression starting at REPL[3]:1
get_specsig_function at /buildworker/worker/package_linux64/build/src/codegen.cpp:5344
emit_call_specfun_other at /buildworker/worker/package_linux64/build/src/codegen.cpp:3067
emit_invoke at /buildworker/worker/package_linux64/build/src/codegen.cpp:3218
emit_expr at /buildworker/worker/package_linux64/build/src/codegen.cpp:4025
emit_ssaval_assign at /buildworker/worker/package_linux64/build/src/codegen.cpp:3739
emit_stmtpos at /buildworker/worker/package_linux64/build/src/codegen.cpp:3931 [inlined]
emit_function at /buildworker/worker/package_linux64/build/src/codegen.cpp:6429
jl_get_llvmf_defn at /buildworker/worker/package_linux64/build/src/codegen.cpp:1538
compile_method_instance at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/compiler/irgen.jl:97 [inlined]
macro expansion at /home/lucasw/.julia/packages/TimerOutputs/7zSea/src/TimerOutput.jl:216 [inlined]
irgen at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/compiler/irgen.jl:110
#codegen#113 at /home/lucasw/.julia/packages/TimerOutputs/7zSea/src/TimerOutput.jl:216
#codegen at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/compiler/driver.jl:0 [inlined]
#compile#112 at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/compiler/driver.jl:38
#compile#111 at ./none:0 [inlined]
compile at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/compiler/driver.jl:22 [inlined]
compile at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/compiler/driver.jl:22 [inlined]
macro expansion at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/execution.jl:378 [inlined]
#cufunction#146 at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/execution.jl:347
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2197
cufunction at /home/lucasw/.julia/packages/CUDAnative/goLI4/src/execution.jl:347
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2197
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:323
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:411
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:635
jl_interpret_toplevel_thunk_callback at /buildworker/worker/package_linux64/build/src/interpreter.c:884
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7fcb6d2f398f)
unknown function (ip: 0x9)
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:893
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:797
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:746
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:826
eval at ./boot.jl:330
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2191
eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:86
macro expansion at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.2/REPL/src/REPL.jl:118 [inlined]
#26 at ./task.jl:268
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2191
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1604 [inlined]
start_task at /buildworker/worker/package_linux64/build/src/task.c:583
unknown function (ip: 0xffffffffffffffff)
Allocations: 22287832 (Pool: 22283680; Big: 4152); GC: 48
fish: “julia --project=.” terminated by signal SIGSEGV (Address boundary error)
@vchuravy
Copy link
Member

Can you check on current master? JuliaLang/julia#31687

@lcw
Copy link
Author

lcw commented Apr 12, 2019

I had separate issues with master so I tried the release-1.2 branch with that commit, i.e.,

git checkout release-1.2
git cherry-pick 8469856

and it seem to work! Hopefully we can get 8469856 back ported into Julia 1.2.

cc: @simonbyrne

@lcw lcw closed this as completed Apr 12, 2019
@simonbyrne
Copy link

simonbyrne commented Apr 12, 2019

It's tagged for backport (JuliaLang/julia#31687), and is clearly a bug fix, so I imagine it should get merged.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants