JuliaGPU / JuliaGPU/GPUCompiler.jl

Segfault on GPUCompiler 1.10

Open
#790 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs information
Dominant language
Julia
Stars
187
Forks
69
Avg merge
1d 12h
Merged PRs (30d)
28

Description

cc @giordano @vchuravy

│ ┌ Warning: `GPUCompiler.link_library!` is deprecated; call `LLVM.link!(mod, copy(lib))` directly, or `LLVM.link!(mod, lib; only_needed=true)` with a freshly-parsed library.
│ │   caller = link_library! at deprecated.jl:15 [inlined]
│ └ @ Core ~/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUCompiler/lHkad/src/deprecated.jl:15
│```
...
│ [2730247] signal 11 (1): Segmentation fault
│ in expression starting at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/test/integration/cuda.jl:26
│ _ZN4llvm15ValueHandleBase12AddToUseListEv at /root/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.12/julia-1.12-latest-linux-x86_64/bin/../lib/julia/libLLVM.so.18.1jl (unknown line)
│ _ZN4llvm8ValueMapIPKNS_5ValueENS_14WeakTrackingVHENS_14ValueMapConfigIS3_NS_3sys10SmartMutexILb0EEEEEEixERKS3_.isra.0 at /root/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.12/julia-1.12-latest-linux-x86_64/bin/../lib/julia/libLLVM.so.18.1jl (unknown line)
│ _ZN4llvm17CloneFunctionIntoEPNS_8FunctionEPKS0_RNS_8ValueMapIPKNS_5ValueENS_14WeakTrackingVHENS_14ValueMapConfigIS7_NS_3sys10SmartMutexILb0EEEEEEENS_23CloneFunctionChangeTypeERNS_15SmallVectorImplIPNS_10ReturnInstEEEPKcPNS_14ClonedCodeInfoEPNS_20ValueMapTypeRemapperEPNS_17ValueMaterializerE at /root/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.12/julia-1.12-latest-linux-x86_64/bin/../lib/julia/libLLVM.so.18.1jl (unknown line)
│ _ZN4llvm11CloneModuleERKNS_6ModuleERNS_8ValueMapIPKNS_5ValueENS_14WeakTrackingVHENS_14ValueMapConfigIS6_NS_3sys10SmartMutexILb0EEEEEEENS_12function_refIFbPKNS_11GlobalValueEEEE at /root/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.12/julia-1.12-latest-linux-x86_64/bin/../lib/julia/libLLVM.so.18.1jl (unknown line)
│ _ZN4llvm11CloneModuleERKNS_6ModuleE at /root/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.12/julia-1.12-latest-linux-x86_64/bin/../lib/julia/libLLVM.so.18.1jl (unknown line)
│ LLVMCloneModule at /root/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.12/julia-1.12-latest-linux-x86_64/bin/../lib/julia/libLLVM.so.18.1jl (unknown line)
│ LLVMCloneModule at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/LLVM/Bd7kA/lib/18/libLLVM.jl:1239 [inlined]
│ copy at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/LLVM/Bd7kA/src/core/module.jl:50 [inlined]
│ #link_library!##0 at ./none (unknown line) [inlined]
│ iterate at ./generator.jl:48 [inlined]
│ collect at ./array.jl:790
│ link_library! at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUCompiler/lHkad/src/deprecated.jl:19
│ link_library! at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUCompiler/lHkad/src/deprecated.jl:15 [inlined]
│ #compile##0 at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/ext/ReactantCUDAExt.jl:904
│ #JuliaContext#93 at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUCompiler/lHkad/src/driver.jl:34
│ JuliaContext at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUCompiler/lHkad/src/driver.jl:25 [inlined]
│ compile at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/ext/ReactantCUDAExt.jl:894
│ actual_compilation at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUCompiler/lHkad/src/execution.jl:245
│ unknown function (ip: 0x7035b079576a) at (unknown file)
│ cached_compilation at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/GPUCompiler/lHkad/src/execution.jl:159
│ macro expansion at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/ext/ReactantCUDAExt.jl:1635 [inlined]
│ macro expansion at ./lock.jl:376 [inlined]
│ #(overlay (. Reactant (inert REACTANT_METHOD_TABLE)) (. CUDA (inert cufunction)))#76 at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/ext/ReactantCUDAExt.jl:1606
│ unknown function (ip: 0x7035b06f9fe2) at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/ext/ReactantCUDAExt.jl
│ #kernel_compile#734 at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/CUDACore/gtlJx/src/compiler/execution.jl:59 [inlined]
│ kernel_compile at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/CUDACore/gtlJx/src/compiler/execution.jl:59
│ unknown function (ip: 0x7035b06f9f0f) at (unknown file)
│ call_with_reactant at ./none (unknown line) [inlined]
│ call_with_reactant at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/utils.jl:0
│ macro expansion at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/CUDACore/gtlJx/src/compiler/execution.jl:182 [inlined]
│ square! at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/test/integration/cuda.jl:22
│ unknown function (ip: 0x7036083f7f86) at (unknown file)
│ call_with_reactant at ./none (unknown line) [inlined]
│ call_with_reactant at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/utils.jl:0
│ jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
│ jl_f__apply_iterate at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/builtins.c:868
│ #make_mlir_fn#4 at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/TracedUtils.jl:370
│ make_mlir_fn at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/TracedUtils.jl:299 [inlined]
│ #compile_mlir!#14 at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/Compiler.jl:1289
│ unknown function (ip: 0x7036083e8a45) at (unknown file)
│ compile_mlir! at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/Compiler.jl:1248
│ compile_mlir! at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/Compiler.jl:1248
│ #compile_xla#79 at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/Compiler.jl:3503
│ compile_xla at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/Compiler.jl:3478 [inlined]
│ #compile#81 at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/Compiler.jl:3599
│ compile at /var/lib/buildkite-agent/builds/gpuci-7/julialang/reactant-dot-jl/src/Compiler.jl:3596
│ unknown function (ip: 0x7036083c4fef) at (unknown file)
│ jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
│ do_call at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:123
│ eval_value at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:243
│ eval_body at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:581
│ eval_body at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:558
│ eval_body at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:558
│ eval_body at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:558
│ jl_interpret_toplevel_thunk at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/interpreter.c:898
│ jl_toplevel_eval_flex at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1035
│ jl_toplevel_eval_flex at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:975
│ ijl_toplevel_eval at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1047
│ ijl_toplevel_eval_in at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1092
│ eval at ./boot.jl:489
│ include_string at ./loading.jl:2874
│ _include at ./loading.jl:2934
│ include at ./Base.jl:307
│ IncludeInto at ./Base.jl:308
│ jfptr_IncludeInto_61448.1 at /root/.cache/julia-buildkite-plugin/julia_installs/bin/linux/x64/1.12/julia-1.12-latest-linux-x86_64/lib/julia/sys.so (unknown line)
│ macro expansion at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/ParallelTestRunner/xjQuD/src/ParallelTestRunner.jl:385 [inlined]
│ macro expansion at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:1777 [inlined]
│ macro expansion at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/ParallelTestRunner/xjQuD/src/ParallelTestRunner.jl:385 [inlined]
│ macro expansion at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/usr/share/julia/stdlib/v1.12/Test/src/Test.jl:1777 [inlined]
│ macro expansion at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/ParallelTestRunner/xjQuD/src/ParallelTestRunner.jl:384 [inlined]
│ macro expansion at ./timing.jl:697 [inlined]
│ top-level scope at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/ParallelTestRunner/xjQuD/src/ParallelTestRunner.jl:383
│ jl_toplevel_eval_flex at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1024
│ ijl_toplevel_eval at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1047
│ ijl_toplevel_eval_in at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/toplevel.c:1092
│ eval at ./boot.jl:489
│ execute at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/ParallelTestRunner/xjQuD/src/ParallelTestRunner.jl:376
│ inner at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/ParallelTestRunner/xjQuD/src/ParallelTestRunner.jl:413
│ runtest at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/ParallelTestRunner/xjQuD/src/ParallelTestRunner.jl:424
│ unknown function (ip: 0x7037a0730fa1) at (unknown file)
│ jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
│ jl_f_invokelatest at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/builtins.c:881
│ #handle##0 at /root/.cache/julia-buildkite-plugin/depots/0190ad31-dfb1-4a4c-ac5b-02d05277ba6c/packages/Malt/OteGQ/src/worker.jl:120
│ unknown function (ip: 0x7037a07306f7) at (unknown file)
│ jl_apply at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/julia.h:2391 [inlined]
│ start_task at /cache/build/builder-amdci5-4/julialang/julia-release-1-dot-12/src/task.c:1252
└ Allocations: 923809193 (Pool: 923794413; Big: 14780); GC: 232

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure from test/integration/cuda.jl, starting at the compilation path in ext/ReactantCUDAExt.jl around lines 894 and 904. Inspect GPUCompiler's deprecated.jl link_library! call and the LLVM module-copy stack, then verify that the CUDA integration test completes without the segmentation fault.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.