Skip to content

Commit ff3b077

Browse files
committed
Test all launch size options
1 parent 0a45913 commit ff3b077

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

test/intrinsics.jl

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,56 @@ end
2020

2121
function intrinsics_testsuite(backend, AT)
2222
@testset "KernelIntrinsics Tests" begin
23+
@testset "Launch parameters" begin
24+
# 1d
25+
function launch_kernel1d(arr)
26+
i, _, _ = KI.get_local_id()
27+
gi, _, _ = KI.get_group_id()
28+
ngi, _, _ = KI.get_num_groups()
29+
30+
arr[(gi - 1) * ngi + i] = 1f0
31+
return
32+
end
33+
arr1d = AT(zeros(Float32, 4))
34+
KI.@kikernel backend() numworkgroups = 2 workgroupsize = 2 launch_kernel1d(arr1d)
35+
KernelAbstractions.synchronize(backend())
36+
@test all(Array(arr1d) .== 1)
37+
38+
# 1d tuple
39+
arr1dt = AT(zeros(Float32, 4))
40+
KI.@kikernel backend() numworkgroups = (2,) workgroupsize = (2,) launch_kernel1d(arr1dt)
41+
KernelAbstractions.synchronize(backend())
42+
@test all(Array(arr1dt) .== 1)
43+
44+
# 2d
45+
function launch_kernel2d(arr)
46+
i, j, _ = KI.get_local_id()
47+
gi, gj, _ = KI.get_group_id()
48+
ngi, ngj, _ = KI.get_num_groups()
49+
50+
arr[(gi - 1) * ngi + i, (gj - 1) * ngj + j] = 1f0
51+
return
52+
end
53+
arr2d = AT(zeros(Float32, 4, 4))
54+
KI.@kikernel backend() numworkgroups = (2, 2) workgroupsize = (2, 2) launch_kernel2d(arr2d)
55+
KernelAbstractions.synchronize(backend())
56+
@test all(Array(arr2d) .== 1)
57+
58+
# 3d
59+
function launch_kernel3d(arr)
60+
i, j, k = KI.get_local_id()
61+
gi, gj, gk = KI.get_group_id()
62+
ngi, ngj, ngk = KI.get_num_groups()
63+
64+
arr[(gi - 1) * ngi + i, (gj - 1) * ngj + j, (gk - 1) * ngk + k] = 1f0
65+
return
66+
end
67+
arr3d = AT(zeros(Float32, 4, 4, 4))
68+
KI.@kikernel backend() numworkgroups = (2, 2, 2) workgroupsize = (2, 2, 2) launch_kernel3d(arr3d)
69+
KernelAbstractions.synchronize(backend())
70+
@test all(Array(arr3d) .== 1)
71+
end
72+
2373
@testset "Basic intrinsics functionality" begin
2474

2575
@test KI.max_work_group_size(backend()) isa Int

0 commit comments

Comments
 (0)