Skip to content

Commit d175a3b

Browse files
author
Diptorup Deb
committed
Unit test
1 parent 837109e commit d175a3b

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# SPDX-FileCopyrightText: 2023 Intel Corporation
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# SPDX-FileCopyrightText: 2023 Intel Corporation
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
import dpnp
6+
7+
import numba_dpex.experimental as exp_dpex
8+
from numba_dpex import Range
9+
from numba_dpex.experimental.kernel_iface import (
10+
AddressSpace,
11+
MemoryOrder,
12+
MemoryScope,
13+
)
14+
15+
16+
def test_compilation_of_memory_order():
17+
"""Tests if a MemoryOrder flags can be used inside a kernel function."""
18+
19+
@exp_dpex.kernel
20+
def store_memory_order_flag(a):
21+
a[0] = MemoryOrder.RELAXED
22+
a[1] = MemoryOrder.CONSUME_UNSUPPORTED
23+
a[2] = MemoryOrder.ACQ_REL
24+
a[3] = MemoryOrder.ACQUIRE
25+
a[4] = MemoryOrder.RELEASE
26+
a[5] = MemoryOrder.SEQ_CST
27+
28+
a = dpnp.ones(10, dtype=dpnp.int64)
29+
exp_dpex.call_kernel(store_memory_order_flag, Range(10), a)
30+
31+
assert a[0] == MemoryOrder.RELAXED
32+
assert a[1] == MemoryOrder.CONSUME_UNSUPPORTED
33+
assert a[2] == MemoryOrder.ACQ_REL
34+
assert a[3] == MemoryOrder.ACQUIRE
35+
assert a[4] == MemoryOrder.RELEASE
36+
assert a[5] == MemoryOrder.SEQ_CST
37+
38+
39+
def test_compilation_of_memory_scope():
40+
"""Tests if a MemoryScope flags can be used inside a kernel function."""
41+
42+
@exp_dpex.kernel
43+
def store_memory_scope_flag(a):
44+
a[0] = MemoryScope.DEVICE
45+
a[1] = MemoryScope.SUB_GROUP
46+
a[2] = MemoryScope.WORK_GROUP
47+
a[3] = MemoryScope.SYSTEM
48+
a[4] = MemoryScope.WORK_ITEM
49+
50+
a = dpnp.ones(10, dtype=dpnp.int64)
51+
exp_dpex.call_kernel(store_memory_scope_flag, Range(10), a)
52+
53+
assert a[0] == MemoryScope.DEVICE
54+
assert a[1] == MemoryScope.SUB_GROUP
55+
assert a[2] == MemoryScope.WORK_GROUP
56+
assert a[3] == MemoryScope.SYSTEM
57+
assert a[4] == MemoryScope.WORK_ITEM
58+
59+
60+
def test_compilation_of_address_space():
61+
"""Tests if a AddressSpace flags can be used inside a kernel function."""
62+
63+
@exp_dpex.kernel
64+
def store_address_space_flag(a):
65+
a[0] = AddressSpace.CONSTANT
66+
a[1] = AddressSpace.GENERIC
67+
a[2] = AddressSpace.GLOBAL
68+
a[3] = AddressSpace.LOCAL
69+
a[4] = AddressSpace.PRIVATE
70+
71+
a = dpnp.ones(10, dtype=dpnp.int64)
72+
exp_dpex.call_kernel(store_address_space_flag, Range(10), a)
73+
74+
assert a[0] == AddressSpace.CONSTANT
75+
assert a[1] == AddressSpace.GENERIC
76+
assert a[2] == AddressSpace.GLOBAL
77+
assert a[3] == AddressSpace.LOCAL
78+
assert a[4] == AddressSpace.PRIVATE

0 commit comments

Comments
 (0)