From 970f7a374260fbd20a547d336f4160eb8f96bff2 Mon Sep 17 00:00:00 2001 From: Christian Guinard <28689358+christiangnrd@users.noreply.github.com> Date: Mon, 2 Feb 2026 09:46:07 -0400 Subject: [PATCH] Add test for kernels with multiple shared buffers (#672) --- test/localmem.jl | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/test/localmem.jl b/test/localmem.jl index 9a34d97c6..c1d63c7a0 100644 --- a/test/localmem.jl +++ b/test/localmem.jl @@ -47,9 +47,26 @@ end end end +@kernel function many_localmem(A) + N = @uniform prod(@groupsize()) + @uniform begin + N2 = prod(@groupsize()) + end + I = @index(Global, Linear) + i = @index(Local, Linear) + lmem1 = @localmem Int (N,) # Ok iff groupsize is static + lmem2 = @localmem Int (N,) # Ok iff groupsize is static + @inbounds begin + lmem1[i] = i - 1 + lmem2[i] = 1 + @synchronize + A[I] = lmem1[N2 - i + 1] + lmem2[N2 - i + 1] + end +end + function localmem_testsuite(backend, ArrayT) @testset "kernels" begin - @testset for kernel! in (localmem(backend(), 16), localmem2(backend(), 16), localmem_unsafe_indices(backend(), 16)) + @testset for kernel! in (localmem(backend(), 16), localmem2(backend(), 16), localmem_unsafe_indices(backend(), 16), many_localmem(backend(), 16)) A = ArrayT{Int}(undef, 64) kernel!(A, ndrange = size(A)) synchronize(backend())