JuliaPerf / MCAnalyzer.jl

A set of tools for machine code analyzing of Julia code
Other
46 stars 9 forks source link

Example from README segfaults on recent-ish master #25

Closed Seelengrab closed 2 years ago

Seelengrab commented 2 years ago
Click me for segfault ``` julia> using MCAnalyzer julia> function mysum(A) acc = zero(eltype(A)) for i in eachindex(A) mark_start() @inbounds acc += A[i] end mark_end() return acc end mysum (generic function with 1 method) julia> analyze(mysum, (Vector{Float64},)) signal (11): Segmentation fault in expression starting at REPL[5]:1 __atomic_add at /usr/include/c++/12.1.0/ext/atomicity.h:71 [inlined] __atomic_add_dispatch at /usr/include/c++/12.1.0/ext/atomicity.h:111 [inlined] _M_add_ref_copy at /usr/include/c++/12.1.0/bits/shared_ptr_base.h:152 [inlined] __shared_count at /usr/include/c++/12.1.0/bits/shared_ptr_base.h:1078 [inlined] __shared_ptr at /usr/include/c++/12.1.0/bits/shared_ptr_base.h:1522 [inlined] shared_ptr at /usr/include/c++/12.1.0/bits/shared_ptr.h:204 [inlined] ThreadSafeContext at /home/sukera/julia/usr/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:29 [inlined] getContext at /home/sukera/julia/usr/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:153 [inlined] jl_create_native_impl at /home/sukera/julia/src/aotcompile.cpp:268 compile_method_instance at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/jlgen.jl:361 macro expansion at /home/sukera/.julia/packages/TimerOutputs/LDL7n/src/TimerOutput.jl:252 [inlined] irgen at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/irgen.jl:4 macro expansion at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/driver.jl:149 [inlined] macro expansion at /home/sukera/.julia/packages/TimerOutputs/LDL7n/src/TimerOutput.jl:252 [inlined] macro expansion at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/driver.jl:148 [inlined] #emit_llvm#110 at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/utils.jl:64 unknown function (ip: 0x7f6a56521075) unknown function (ip: 0x7f6a565158a9) unknown function (ip: 0x7f6a56515888) emit_llvm##kw at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/utils.jl:62 [inlined] #codegen#108 at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/driver.jl:58 codegen##kw at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/driver.jl:43 [inlined] #compile#107 at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/driver.jl:39 compile at /home/sukera/.julia/packages/GPUCompiler/I9fZc/src/driver.jl:31 [inlined] #analyze#9 at /home/sukera/.julia/packages/MCAnalyzer/OVaIA/src/MCAnalyzer.jl:81 analyze at /home/sukera/.julia/packages/MCAnalyzer/OVaIA/src/MCAnalyzer.jl:79 analyze at /home/sukera/.julia/packages/MCAnalyzer/OVaIA/src/MCAnalyzer.jl:79 unknown function (ip: 0x7f6a56515cb6) jl_apply at /home/sukera/julia/src/julia.h:1841 [inlined] do_call at /home/sukera/julia/src/interpreter.c:126 eval_value at /home/sukera/julia/src/interpreter.c:215 eval_stmt_value at /home/sukera/julia/src/interpreter.c:166 [inlined] eval_body at /home/sukera/julia/src/interpreter.c:594 jl_interpret_toplevel_thunk at /home/sukera/julia/src/interpreter.c:750 jl_toplevel_eval_flex at /home/sukera/julia/src/toplevel.c:912 jl_toplevel_eval_flex at /home/sukera/julia/src/toplevel.c:856 ijl_toplevel_eval_in at /home/sukera/julia/src/toplevel.c:971 eval at ./boot.jl:370 [inlined] eval_user_input at /home/sukera/julia/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:152 repl_backend_loop at /home/sukera/julia/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:247 start_repl_backend at /home/sukera/julia/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:232 #run_repl#47 at /home/sukera/julia/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:369 run_repl at /home/sukera/julia/usr/share/julia/stdlib/v1.9/REPL/src/REPL.jl:355 jfptr_run_repl_50781 at /home/sukera/julia/usr/lib/julia/sys.so (unknown line) #963 at ./client.jl:415 jfptr_YY.963_36620 at /home/sukera/julia/usr/lib/julia/sys.so (unknown line) jl_apply at /home/sukera/julia/src/julia.h:1841 [inlined] jl_f__call_latest at /home/sukera/julia/src/builtins.c:774 run_main_repl at ./client.jl:400 exec_options at ./client.jl:314 _start at ./client.jl:516 jfptr__start_28776 at /home/sukera/julia/usr/lib/julia/sys.so (unknown line) jl_apply at /home/sukera/julia/src/julia.h:1841 [inlined] true_main at /home/sukera/julia/src/jlapi.c:566 jl_repl_entrypoint at /home/sukera/julia/src/jlapi.c:710 main at julia (unknown line) unknown function (ip: 0x7f6a6202928f) __libc_start_main at /usr/lib/libc.so.6 (unknown line) _start at julia (unknown line) Allocations: 7645169 (Pool: 7638107; Big: 7062); GC: 10 Segmentation fault (core dumped) ```

The only thing different from a "standard" install is that I've set USE_SYSTEM_CLS=1 in Make.user to provide a newer stdlibc++ than what julia had at that time, to make my experiments with Vulkan.jl work.

Here's my versioninfo:

julia> versioninfo(;verbose=true)
Julia Version 1.9.0-DEV.613
Commit fb672da9e2 (2022-05-19 06:41 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      "Arch Linux"
  uname: Linux 5.18.1-arch1-1 #1 SMP PREEMPT_DYNAMIC Mon, 30 May 2022 17:53:11 +0000 x86_64 unknown
  CPU: Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1   868 MHz      63146 s        106 s      10938 s     137762 s       1272 s
       #2   859 MHz      60408 s         19 s      11255 s     138773 s       2420 s
       #3  2800 MHz      62318 s         51 s      12046 s     137842 s       1261 s
       #4  2699 MHz      64658 s         57 s      10611 s     136430 s       1173 s
  Memory: 19.40053939819336 GB (9791.23046875 MB free)
  Uptime: 21556.45 sec
  Load Avg:  3.58  2.47  1.5
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, skylake)
  Threads: 4 on 4 virtual cores
Environment:
  JULIA_NUM_THREADS = 4
  HOME = /home/sukera
  TERM = foot
  PATH = /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
vchuravy commented 2 years ago

We need to use a newer version of GPUCompiler. Would you be able to open a PR for that?

Seelengrab commented 2 years ago

Does GPUCompiler work on master again? Last I tried with that arduino project, it didn't :thinking:

vchuravy commented 2 years ago

Yes the newest version does