From d862626f27396de12643ddfdbbd3316217b98845 Mon Sep 17 00:00:00 2001 From: Christoph Alt <christoph.alt@fau.de> Date: Thu, 28 Nov 2024 13:54:14 +0100 Subject: [PATCH] added a test for the parallel_for --- tests/extensions/test_sycl.py | 64 +++++++++++++++++++ .../{test_sycl.py => test_sycl_accessor.py} | 0 2 files changed, 64 insertions(+) create mode 100644 tests/extensions/test_sycl.py rename tests/lang/{test_sycl.py => test_sycl_accessor.py} (100%) diff --git a/tests/extensions/test_sycl.py b/tests/extensions/test_sycl.py new file mode 100644 index 0000000..db99278 --- /dev/null +++ b/tests/extensions/test_sycl.py @@ -0,0 +1,64 @@ +import pytest +from pystencilssfg import SourceFileGenerator +import pystencilssfg.extensions.sycl as sycl +import pystencils as ps +from pystencilssfg import SfgContext + + +def test_parallel_for_1_kernels(): + sfg = sycl.SyclComposer(SfgContext()) + data_type = "double" + dim = 2 + f, g, h, i = ps.fields(f"f,g,h,i:{data_type}[{dim}D]") + assignement_1 = ps.Assignment(f.center(), g.center()) + assignement_2 = ps.Assignment(h.center(), i.center()) + + config = ps.CreateKernelConfig(target=ps.Target.SYCL) + kernel_1 = sfg.kernels.create(assignement_1, "kernel_1", config) + kernel_2 = sfg.kernels.create(assignement_2, "kernel_2", config) + cgh = sfg.sycl_handler("handler") + rang = sfg.sycl_range(dim, "range") + cgh.parallel_for(rang)( + sfg.call(kernel_1), + sfg.call(kernel_2), + ) + + +def test_parallel_for_2_kernels(): + sfg = sycl.SyclComposer(SfgContext()) + data_type = "double" + dim = 2 + f, g, h, i = ps.fields(f"f,g,h,i:{data_type}[{dim}D]") + assignement_1 = ps.Assignment(f.center(), g.center()) + assignement_2 = ps.Assignment(h.center(), i.center()) + + config = ps.CreateKernelConfig(target=ps.Target.SYCL) + kernel_1 = sfg.kernels.create(assignement_1, "kernel_1", config) + kernel_2 = sfg.kernels.create(assignement_2, "kernel_2", config) + cgh = sfg.sycl_handler("handler") + rang = sfg.sycl_range(dim, "range") + cgh.parallel_for(rang)( + sfg.call(kernel_1), + sfg.call(kernel_2), + ) + + +def test_parallel_for_2_kernels_fail(): + sfg = sycl.SyclComposer(SfgContext()) + data_type = "double" + dim = 2 + f, g = ps.fields(f"f,g:{data_type}[{dim}D]") + h, i = ps.fields(f"h,i:{data_type}[{dim-1}D]") + assignement_1 = ps.Assignment(f.center(), g.center()) + assignement_2 = ps.Assignment(h.center(), i.center()) + + config = ps.CreateKernelConfig(target=ps.Target.SYCL) + kernel_1 = sfg.kernels.create(assignement_1, "kernel_1", config) + kernel_2 = sfg.kernels.create(assignement_2, "kernel_2", config) + cgh = sfg.sycl_handler("handler") + rang = sfg.sycl_range(dim, "range") + with pytest.raises(ValueError): + cgh.parallel_for(rang)( + sfg.call(kernel_1), + sfg.call(kernel_2), + ) diff --git a/tests/lang/test_sycl.py b/tests/lang/test_sycl_accessor.py similarity index 100% rename from tests/lang/test_sycl.py rename to tests/lang/test_sycl_accessor.py -- GitLab