Skip to content

Commit ad91f05

Browse files
author
Diptorup Deb
committed
Add basic kernel launch unit tests
1 parent 15b4a59 commit ad91f05

File tree

3 files changed

+107
-0
lines changed

3 files changed

+107
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# SPDX-FileCopyrightText: 2024 Intel Corporation
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# SPDX-FileCopyrightText: 2024 Intel Corporation
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
import numpy
6+
7+
from numba_dpex import kernel_api as kapi
8+
9+
10+
def test_range_kernel_call1D():
11+
def vecadd(item: kapi.NdItem, a, b, c):
12+
idx = item.get_global_id(0)
13+
c[idx] = a[idx] + b[idx]
14+
15+
a = numpy.ones(100)
16+
b = numpy.ones(100)
17+
c = numpy.empty(100)
18+
19+
kapi.call_kernel(vecadd, kapi.NdRange((100,), (20,)), a, b, c)
20+
21+
assert numpy.allclose(c, a + b)
22+
23+
24+
def test_range_kernel_call2D():
25+
def vecadd(item: kapi.NdItem, a, b, c):
26+
idx = item.get_global_id(0)
27+
jdx = item.get_global_id(1)
28+
c[idx, jdx] = a[idx, jdx] + b[idx, jdx]
29+
30+
a = numpy.ones((10, 10))
31+
b = numpy.ones((10, 10))
32+
c = numpy.empty((10, 10))
33+
34+
kapi.call_kernel(vecadd, kapi.NdRange((10, 10), (2, 2)), a, b, c)
35+
36+
assert numpy.allclose(c, a + b)
37+
38+
39+
def test_range_kernel_call3D():
40+
def vecadd(item: kapi.Item, a, b, c):
41+
idx = item.get_global_id(0)
42+
jdx = item.get_global_id(1)
43+
kdx = item.get_global_id(2)
44+
c[idx, jdx, kdx] = a[idx, jdx, kdx] + b[idx, jdx, kdx]
45+
46+
a = numpy.ones((8, 8, 8))
47+
b = numpy.ones((8, 8, 8))
48+
c = numpy.empty((8, 8, 8))
49+
50+
kapi.call_kernel(vecadd, kapi.NdRange((8, 8, 8), (2, 2, 2)), a, b, c)
51+
52+
assert numpy.allclose(c, a + b)
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# SPDX-FileCopyrightText: 2024 Intel Corporation
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
import numpy
6+
7+
from numba_dpex import kernel_api as kapi
8+
9+
10+
def test_range_kernel_call1D():
11+
def vecadd(item: kapi.Item, a, b, c):
12+
idx = item.get_id(0)
13+
c[idx] = a[idx] + b[idx]
14+
15+
a = numpy.ones(100)
16+
b = numpy.ones(100)
17+
c = numpy.empty(100)
18+
19+
kapi.call_kernel(vecadd, kapi.Range(100), a, b, c)
20+
21+
assert numpy.allclose(c, a + b)
22+
23+
24+
def test_range_kernel_call2D():
25+
def vecadd(item: kapi.Item, a, b, c):
26+
idx = item.get_id(0)
27+
jdx = item.get_id(1)
28+
c[idx, jdx] = a[idx, jdx] + b[idx, jdx]
29+
30+
a = numpy.ones((10, 10))
31+
b = numpy.ones((10, 10))
32+
c = numpy.empty((10, 10))
33+
34+
kapi.call_kernel(vecadd, kapi.Range(10, 10), a, b, c)
35+
36+
assert numpy.allclose(c, a + b)
37+
38+
39+
def test_range_kernel_call3D():
40+
def vecadd(item: kapi.Item, a, b, c):
41+
idx = item.get_id(0)
42+
jdx = item.get_id(1)
43+
kdx = item.get_id(2)
44+
c[idx, jdx, kdx] = a[idx, jdx, kdx] + b[idx, jdx, kdx]
45+
46+
a = numpy.ones((5, 5, 5))
47+
b = numpy.ones((5, 5, 5))
48+
c = numpy.empty((5, 5, 5))
49+
50+
kapi.call_kernel(vecadd, kapi.Range(5, 5, 5), a, b, c)
51+
52+
assert numpy.allclose(c, a + b)

0 commit comments

Comments
 (0)