Host JIT segfaults compiling @oneapi in a loop over a tuple of functions
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #685 di @maleadt — integrata
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Start with the reproducer in the issue: compare the host function’s loop over (max, min) using @oneapi launch=false with the single-launch and top-level-loop cases that work. Then inspect the @oneapi expansion and host compilation path; the report identifies LLVM’s LazyCallGraph as the crash site. Done means the reproducer no longer segfaults, including with launch=false.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Compiling a host function that launches a kernel inside a loop over a tuple of functions segfaults Julia's JIT, in LLVM's LazyCallGraph while optimizing the host module. It happens with launch=false too, so it's the host code around @oneapi, not the kernel.
using oneAPI
k(dst, op) = (@inbounds dst[1] = op(dst[1], Int16(1)); return)
function f()
for op in (max, min)
d = oneArray(zeros(Int16, 1))
kern = @oneapi launch=false k(d, op)
println(kern)
end
end
f()
[3624266] signal 11 (1): Segmentation fault
in expression starting at seg7.jl:10
_ZN4llvm13LazyCallGraph4Node12populateSlowEv at .../libLLVM.so.18.1jl (unknown line)
_ZN4llvm13LazyCallGraph12buildRefSCCsEv at .../libLLVM.so.18.1jl (unknown line)
_ZN4llvm33ModuleToPostOrderCGSCCPassAdaptor3runERNS_6ModuleERNS_15AnalysisManagerIS1_JEEE at .../libLLVM.so.18.1jl (unknown line)
run at julia/src/pipeline.cpp:741
operator() at julia/src/jitlayers.cpp:1459
addModule at julia/src/jitlayers.cpp:2043
jl_compile_codeinst_now at julia/src/jitlayers.cpp:626
jl_compile_method_internal at julia/src/gf.c:3528
ijl_apply_generic at julia/src/gf.c:4214
- oneAPI 2.9.2 (registered), Julia 1.12.7; also with Julia 1.13.0 (LLVM 20).
- A single launch with
maxin the same kind of function works, as does the loop at top level. - The same code with CUDA.jl (
@cuda launch=false) works, so this looks specific to what@oneapiexpands to. - Iris Xe (i7-1165G7), Linux.
- Lingua principale
- Julia
- Stelle
- 217
- Fork
- 37
- Merge medio
- 1g 7h
- PR unite (30g)
- 33
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaGPU/oneAPI.jl
-
IGC heap corruption compiling findmax's reduction kernel on Julia 1.12 with --check-bounds=yesAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
JuliaGPU/oneAPI.jl#663 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Track outstanding GPU work per allocation for host-accessible arraysForse già presa @maleadt l’ha presa 2 giorni fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
JuliaGPU/oneAPI.jl#607 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di JuliaGPU/oneAPI.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
oscar-system/GAP.jl#1455 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
JuliaAI/MLJTransforms.jl#85 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
SciML/OrdinaryDiffEq.jl#4875 ·
I maintainer di solito rispondono entro 4 giorni
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
SciML/NonlinearSolve.jl#1372 ·
I maintainer di solito rispondono entro 1 giorno