UndefVarError when variable is defined
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Esegui il riproduttore Julia e ispeziona il percorso generato intorno a macros.jl:307, in particolare la voce cpu_mykernel mostrata nello stack trace. Traccia come viene gestita la variabile locale z durante l’espansione della macro del kernel; il lavoro è completato quando l’esempio viene eseguito senza l’UndefVarError e mantiene il comportamento del ciclo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
using KernelAbstractions
@kernel function mykernel(y)
z = length(y)
for i in 1:z
@synchronize
end
end
x = zeros(3)
backend = get_backend(x)
mykernel(backend)(x; ndrange=length(x))
KernelAbstractions.synchronize(backend)
This MWE yields:
ERROR: UndefVarError: `z` not defined in `Main`
Suggestion: check for spelling errors or missing imports.
Stacktrace:
[1] cpu_mykernel
@ ~/.julia/packages/KernelAbstractions/lGrz7/src/macros.jl:307 [inlined]
[2] cpu_mykernel(__ctx__::KernelAbstractions.CompilerMetadata{…}, x::Vector{…})
@ Main ./none:0
[3] __thread_run(tid::Int64, len::Int64, rem::Int64, obj::KernelAbstractions.Kernel{…}, ndrange::Tuple{…}, iterspace::KernelAbstractions.NDIteration.NDRange{…}, args::Tuple{…}, dynamic::KernelAbstractions.NDIteration.NoDynamicCheck)
@ KernelAbstractions ~/.julia/packages/KernelAbstractions/lGrz7/src/cpu.jl:145
[4] __run(obj::KernelAbstractions.Kernel{…}, ndrange::Tuple{…}, iterspace::KernelAbstractions.NDIteration.NDRange{…}, args::Tuple{…}, dynamic::KernelAbstractions.NDIteration.NoDynamicCheck, static_threads::Bool)
@ KernelAbstractions ~/.julia/packages/KernelAbstractions/lGrz7/src/cpu.jl:112
[5] (::KernelAbstractions.Kernel{…})(args::Vector{…}; ndrange::Int64, workgroupsize::Nothing)
@ KernelAbstractions ~/.julia/packages/KernelAbstractions/lGrz7/src/cpu.jl:46
[6] top-level scope
@ Untitled-2:14
Some type information was truncated. Use `show(err)` to see complete types.
- Lingua principale
- Julia
- Stelle
- 529
- Fork
- 87
- Merge medio
- 1g 2h
- PR unite (30g)
- 65
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/KernelAbstractions.jl
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaGPU/KernelAbstractions.jl#897 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
JuliaGPU/KernelAbstractions.jl#691 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
JuliaGPU/KernelAbstractions.jl#333 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
JuliaGPU/KernelAbstractions.jl#894 ·
I maintainer di solito rispondono entro 1 giorno
-
CPU backend: locals that live across a `@synchronize()` in a loop make a kernel 14–78× slowerAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
JuliaGPU/KernelAbstractions.jl#893 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di JuliaGPU/KernelAbstractions.jl
Issue simili
-
enhancement good first issue help wanted
Difficoltà 2/5 Mezza giornata Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
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