Skip to content

Commit db34bef

Browse files
committed
adding flaky CPU front-ent and tests
1 parent 8da4ccb commit db34bef

File tree

4 files changed

+34
-1
lines changed

4 files changed

+34
-1
lines changed

src/KernelAbstractions.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ This is a unified atomic interface
319319

320320
macro atomic(ex)
321321
quote
322-
return $__atomic(ex)
322+
$__atomic($ex)
323323
end
324324
end
325325

src/cpu.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,3 +269,11 @@ end
269269

270270
# Argument conversion
271271
KernelAbstractions.argconvert(k::Kernel{CPU}, arg) = arg
272+
273+
###
274+
# CPU implementation of atomic macro
275+
###
276+
277+
@inline function Cassette.overdub(::CUDACtx, ::typeof(__atomic), ex)
278+
println(ex)
279+
end

test/atomic_test.jl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using KernelAbstractions, Test
2+
3+
@kernel function kernel_atomics(input)
4+
I = @index(Global)
5+
KernelAbstractions.@atomic input[1] += 1
6+
end
7+
8+
function atomics_testsuite(backend)
9+
10+
@testset "atomic test" begin
11+
A = ArrayT{Int}(zeros(64))
12+
13+
kernel = kernel_atomic(backend(), 4)
14+
wait(kernel(ndrange=(length(A),)))
15+
16+
@test A[1] == length(A)
17+
end
18+
end

test/testsuite.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ include("compiler.jl")
1515
include("reflection.jl")
1616
include("examples.jl")
1717
include("convert.jl")
18+
include("atomic_test.jl")
1819

1920
function testsuite(backend, backend_str, backend_mod, AT, DAT)
2021
@testset "Unittests" begin
@@ -69,6 +70,12 @@ function testsuite(backend, backend_str, backend_mod, AT, DAT)
6970
convert_testsuite(backend, AT)
7071
end
7172

73+
if backend_str != "ROCM"
74+
@testset "Atomics" begin
75+
atomics_testsuite(backend, AT)
76+
end
77+
end
78+
7279
if backend_str == "CUDA"
7380
@testset "Examples" begin
7481
examples_testsuite()

0 commit comments

Comments
 (0)