Skip to content

Commit 2ce5665

Browse files
Add Python tests for kernel submission with LocalAccessor
1 parent d4dfb9c commit 2ce5665

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed
Binary file not shown.
Binary file not shown.

dpctl/tests/test_sycl_kernel_submit.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"""
1919

2020
import ctypes
21+
import os
2122

2223
import numpy as np
2324
import pytest
@@ -278,3 +279,43 @@ def test_kernel_arg_type():
278279
_check_kernel_arg_type_instance(kernel_arg_type.dpctl_float64)
279280
_check_kernel_arg_type_instance(kernel_arg_type.dpctl_void_ptr)
280281
_check_kernel_arg_type_instance(kernel_arg_type.dpctl_local_accessor)
282+
283+
284+
def get_spirv_abspath(fn):
285+
curr_dir = os.path.dirname(os.path.abspath(__file__))
286+
spirv_file = os.path.join(curr_dir, "input_files", fn)
287+
return spirv_file
288+
289+
290+
def test_submit_local_accessor_arg():
291+
try:
292+
q = dpctl.SyclQueue("level_zero")
293+
except dpctl.SyclQueueCreationError:
294+
pytest.skip("OpenCL queue could not be created")
295+
fn = get_spirv_abspath("local_accessor_kernel_inttys_fp32.spv")
296+
with open(fn, "br") as f:
297+
spirv_bytes = f.read()
298+
prog = dpctl_prog.create_program_from_spirv(q, spirv_bytes)
299+
krn = prog.get_sycl_kernel("_ZTS14SyclKernel_SLMIlE")
300+
lws = 32
301+
gws = lws * 10
302+
x = dpt.ones(gws, dtype="i8")
303+
x.sycl_queue.wait()
304+
try:
305+
e = q.submit(
306+
krn,
307+
[x.usm_data, dpctl._sycl_queue.LocalAccessor(1, "i8", lws, 1, 1)],
308+
[
309+
gws,
310+
],
311+
[
312+
lws,
313+
],
314+
)
315+
e.wait()
316+
except dpctl._sycl_queue.SyclKernelSubmitError:
317+
pytest.skip(f"Kernel submission failed for device {q.sycl_device}")
318+
expected = dpt.arange(1, x.size + 1, dtype=x.dtype, device=x.device) * (
319+
2 * lws
320+
)
321+
assert dpt.all(x == expected)

0 commit comments

Comments
 (0)