`@localmem` silently breaks things when used with non-const dims
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Riprodurre l’esempio Julia con MetalBackend e confrontare il kernel @localmem con la versione senza memoria locale, usando sia dimensioni non costanti sia costanti. Tracciare come @localmem gestisce l’espressione della dimensione; il lavoro è completato quando il kernel scrive 1.0 in ogni elemento quando n non è costante.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I'm not sure how to explain this behavior, it's like @localmem cancels the effects of the kernel:
julia> using Metal, KernelAbstractions
julia> backend = Metal.MetalBackend()
MetalBackend()
julia> @kernel function settoone_localmem!(x::AbstractVector)
i = @index(Global)
n = length(x)
y = @localmem Bool (n,)
x[i] = one(eltype(x))
end
settoone_localmem! (generic function with 4 methods)
julia> @kernel function settoone_nolocalmem!(x::AbstractVector)
i = @index(Global)
x[i] = one(eltype(x))
end
settoone_nolocalmem! (generic function with 4 methods)
julia> x = KernelAbstractions.zeros(backend, Float32, 3);
julia> settoone_localmem!(backend)(x; ndrange=length(x)) # fails
julia> x
3-element MtlVector{Float32, Metal.PrivateStorage}:
0.0
0.0
0.0
julia> settoone_nolocalmem!(backend)(x; ndrange=length(x)) # works
julia> x
3-element MtlVector{Float32, Metal.PrivateStorage}:
1.0
1.0
1.0
- Lingua principale
- Julia
- Stelle
- 533
- Fork
- 90
- Merge medio
- 1g 11h
- PR unite (30g)
- 66
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
-
good first issue runtime
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
-
Enzyme reverse mode: `prod(ndrange)` fails for kernels with a construction-time ndrangeForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
JuliaGPU/KernelAbstractions.jl#924 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
JuliaGPU/KernelAbstractions.jl#921 ·
I maintainer di solito rispondono entro 1 giorno
-
CPU backend: `Base.checked_mul` in a kernel fails to build (`__spirv_SMulExtended` missing in PoCL)Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
JuliaGPU/KernelAbstractions.jl#916 ·
I maintainer di solito rispondono entro 1 giorno
-
kernels pocl upstream
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
JuliaGPU/KernelAbstractions.jl#894 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di JuliaGPU/KernelAbstractions.jl
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
SciML/DataDrivenDiffEq.jl#694 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
JuliaLang/LinearAlgebra.jl#1834 ·
I maintainer di solito rispondono entro 1 giorno
-
`RawAcquisitionData(acqData)` writes the repetition into the `average` counterForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
MagneticResonanceImaging/MRIReco.jl#332 ·
I maintainer di solito rispondono entro 1 giorno
-
Docstrings show df:DataFrame and an undefined function is exportedForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno