Unroll factor compilation not available for Val values
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
Inizia riproducendo l'esempio con il backend CUDA e leggi src/extras/loopinfo.jl in prossimità dell'implementazione di @unroll e del relativo controllo dell'intero costante. Determina come i parametri Val arrivano alla macro, aggiungi il supporto se appropriato e verifica che il kernel mostrato venga compilato ed eseguito senza l'errore di sintassi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I am trying to do the following:
using KernelAbstractions, CUDA
using KernelAbstractions.Extras: @unroll
backend = CUDABackend()
@kernel function add1_kernel!(A, ::Val{VALSPERTHREAD} = Val(4), ::Val{UNROLLFACTOR} = Val(4)) where {VALSPERTHREAD, UNROLLFACTOR}
I = @index(Global,Linear)
@unroll UNROLLFACTOR for i in 0:VALSPERTHREAD-1
@inbounds A[I*4+i] = A[I*4+i]+1
end
end
function myadd!(A)
backend = get_backend(A)
kernel = add1_kernel!(backend)
kernel(A, ndrange = (Int(length(A)/4)))
return
end
A = KernelAbstractions.zeros(backend, Float32, 64)
myadd!(A)
KernelAbstractions.synchronize(backend)
And getting an error:
ERROR: LoadError: Syntax error: `@unroll N expr` needs a constant integer N
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] var"@unroll"(__source__::LineNumberNode, __module__::Module, N::Any, expr::Any)
@ KernelAbstractions.Extras.LoopInfo C:\Users\evely\.julia\packages\KernelAbstractions\lGrz7\src\extras\loopinfo.jl:60
in expression starting at C:\Users\evely\NextLATuner\juliakernels\unrollparam.jl:7
in expression starting at C:\Users\evely\NextLATuner\juliakernels\unrollparam.jl:5
- 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
-
TSDAE's docstring implies a theta argument it does not takeForse già presa @singhharsh1708 l’ha presa oggi. Apertadocumentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 74/100
SciML/PETScDiffEq.jl#282 ·
I maintainer di solito rispondono entro 1 giorno
-
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 78/100
SciML/SciMLBase.jl#1643 ·
I maintainer di solito rispondono entro 2 giorni
-
authority-vechtstromen ready-for-agent
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
Deltares/Ribasim-NL#890 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno