CPU backend: `Base.checked_mul` in a kernel fails to build (`__spirv_SMulExtended` missing in PoCL)
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
- 52/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- julia
- Ambito
- backend, testing-qa
Direzione di ricerca
Start by reproducing the provided kernel on CPU() with KernelAbstractions 0.10.1 and inspect how Base.checked_mul is lowered through GPUCompiler and SPIR-V for the PoCL backend. The report identifies no repository files or test entry points, so first locate existing CPU kernel compilation tests and add a focused regression case for Int32 and Int64. Done when the kernel builds and the checked multiplication behavior is covered by a passing test on PoCL.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
AI agent:
On KernelAbstractions 0.10.1, a kernel on CPU() that calls Base.checked_mul fails to build: PoCL's kernel library has no __spirv_SMulExtended. It fails for Int64 and Int32 alike. Arithmetic on Rational{Int} multiplies with overflow checks, so it fails too. That is how we found it, in NNlib's upsample_bilinear, whose Rational{Int} test passes on KernelAbstractions 0.9.
using KernelAbstractions
@kernel function mul!(y, @Const(x))
i = @index(Global)
@inbounds y[i] = Base.checked_mul(x[i], x[i])
end
x = collect(1:4)
mul!(CPU())(similar(x), x; ndrange=4)
Failed to compile program
Build log:
Error(s) while linking:
Cannot find symbol _Z20__spirv_SMulExtendedll in kernel library
Device cpu-skylake-avx512-AMD Ryzen Threadripper PRO 9955WX 16-Cores failed to build the program
followed by CLError(-11). Presumably llvm.smul.with.overflow becomes OpSMulExtended in SPIR-V, which PoCL doesn't implement.
Julia 1.13.2, KernelAbstractions 0.10.1, GPUCompiler 2.16.0, SPIRVIntrinsics 1.5.0, SPIRV_LLVM_Backend_jll 23.1.1+8, pocl_standalone_jll 7.2.2+12.
- Lingua principale
- Julia
- Stelle
- 533
- Fork
- 90
- Merge medio
- 1g 12h
- PR unite (30g)
- 72
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
-
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
-
CPU backend: locals that live across a `@synchronize()` in a loop make a kernel 14–78× slowerApertakernels performance pocl upstream
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
-
documentation invalid
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
JuliaPhysics/BeamletOptics.jl#190 ·
I maintainer di solito rispondono entro 2 giorni
-
mul! with a Symmetric or Hermitian factor throws for a matrix view whose columns are not contiguousAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaLang/LinearAlgebra.jl#1829 ·
I maintainer di solito rispondono entro 1 giorno
-
`EnsembleSummary` `ci_type = :SEM` ribbon is `sqrt(N)` too wide for scalar statesForse già presa @isaacsas l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
SciML/SciMLBase.jl#1654 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
MagneticResonanceImaging/MRIReco.jl#320 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rfordatascience/tidytuesday#1098 ·