Enzyme/AMDGPU function without sub-tapes
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
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- julia
- Ambito
- backend, performance
Direzione di ricerca
Inizia con il MWE e gli stack frame di augmented_primal in AMDGPUEnzymeCoreExt.jl:181 e :203. Riproduci l’assertion di ROCArray su AMDGPU, quindi traccia come Enzyme.autodiff raggiunge augmented_primal. Il lavoro è completato quando il MWE termina senza l’assertion e i valori finali di dA soddisfano l’assertion mostrata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
@wsmoses @michel2323
While trying to look into the compilation times of Enzyme, I was on my laptop where I can only use AMDGPU.
Besides running into https://github.com/EnzymeAD/Enzyme.jl/issues/2478 and I also encountered
ERROR: LoadError: AssertionError: ROCArray only supports bits types
Stacktrace:
[1] ROCArray{nothing, 1, AMDGPU.Runtime.Mem.HIPBuffer}(::UndefInitializer, dims::Tuple{Int64})
@ AMDGPU ~/.julia/packages/AMDGPU/IDGfT/src/array.jl:7
[2] (ROCArray{nothing, 1})(::UndefInitializer, dims::Tuple{Int64})
@ AMDGPU ~/.julia/packages/AMDGPU/IDGfT/src/array.jl:70
[3] (ROCArray{nothing})(::UndefInitializer, dims::UInt32)
@ AMDGPU ~/.julia/packages/AMDGPU/IDGfT/src/array.jl:88
[4] #augmented_primal#25
@ ~/.julia/packages/AMDGPU/IDGfT/ext/AMDGPUEnzymeCoreExt/AMDGPUEnzymeCoreExt.jl:203
[5] augmented_primal
@ ~/.julia/packages/AMDGPU/IDGfT/ext/AMDGPUEnzymeCoreExt/AMDGPUEnzymeCoreExt.jl:181 [inlined]
MWE:
using AMDGPU
using Enzyme
function square_kernel!(x)
i = workitemIdx().x
x[i] *= x[i]
sync_workgroup()
return nothing
end
# basic squaring on GPU
function square!(x)
@roc gridsize = length(x) groupsize = length(x) square_kernel!(x)
return nothing
end
A = AMDGPU.ones(64)
dA = AMDGPU.ones(64)
@time square!(A)
A .= (1:1:64)
dA .= 1
@time Enzyme.autodiff(Reverse, square!, Duplicated(A, dA))
@show dA
@assert all(dA .≈ (2:2:128))
- Lingua principale
- Julia
- Stelle
- 348
- Fork
- 81
- Merge medio
- 2g 7h
- PR unite (30g)
- 46
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/AMDGPU.jl
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
JuliaGPU/AMDGPU.jl#1040 · 8 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di JuliaGPU/AMDGPU.jl
Issue simili
-
io
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
docs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaGPU/GPUArrays.jl#837 ·
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