From 965e13d35cd013f6dcbd5bb39baf57383d12b702 Mon Sep 17 00:00:00 2001 From: Sergey Pokhodenko Date: Tue, 10 Nov 2020 00:29:43 +0300 Subject: [PATCH] Move numba/dppl_config.py to numba_dppy/config.py dppl_config.py contains flag `dppl_present` which indicate that `dpCtl` and devices are available. As `numba-dppy` will depend on `dpCtl` then the check is not necessary. Also checking for available platform and device could be done in `numba-dppy`. It also can raise and exception on import as before. `dppl_present` also renamed to `dppy_present`. --- numba_dppy/__init__.py | 6 +++--- numba_dppy/config.py | 6 ++++++ numba_dppy/dppl_offload_dispatcher.py | 4 ++-- numba_dppy/tests/__init__.py | 4 ++-- 4 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 numba_dppy/config.py diff --git a/numba_dppy/__init__.py b/numba_dppy/__init__.py index 35c5e0a9f5..a9fe7f4a31 100644 --- a/numba_dppy/__init__.py +++ b/numba_dppy/__init__.py @@ -506,14 +506,14 @@ def main(): from numba import config import numba.testing -from numba.dppl_config import * -if dppl_present: +from .config import dppy_present +if dppy_present: from .device_init import * else: raise ImportError("Importing dppl failed") def test(*args, **kwargs): - if not dppl_present and not is_available(): + if not dppy_present and not is_available(): dppl_error() return numba.testing.test("numba_dppy.tests", *args, **kwargs) diff --git a/numba_dppy/config.py b/numba_dppy/config.py new file mode 100644 index 0000000000..d1393daf0f --- /dev/null +++ b/numba_dppy/config.py @@ -0,0 +1,6 @@ +try: + import dpctl + + dppy_present = dpctl.has_sycl_platforms() and dpctl.has_gpu_queues() +except: + dppy_present = False diff --git a/numba_dppy/dppl_offload_dispatcher.py b/numba_dppy/dppl_offload_dispatcher.py index 49a599589e..db841bef06 100644 --- a/numba_dppy/dppl_offload_dispatcher.py +++ b/numba_dppy/dppl_offload_dispatcher.py @@ -1,13 +1,13 @@ from numba.core import dispatcher, compiler from numba.core.registry import cpu_target, dispatcher_registry -import numba.dppl_config as dppl_config +import numba_dppy.config as dppy_config class DpplOffloadDispatcher(dispatcher.Dispatcher): targetdescr = cpu_target def __init__(self, py_func, locals={}, targetoptions={}, impl_kind='direct', pipeline_class=compiler.Compiler): - if dppl_config.dppl_present: + if dppy_config.dppy_present: from numba_dppy.compiler import DPPLCompiler targetoptions['parallel'] = True dispatcher.Dispatcher.__init__(self, py_func, locals=locals, diff --git a/numba_dppy/tests/__init__.py b/numba_dppy/tests/__init__.py index c9e582dac3..d29208fb91 100644 --- a/numba_dppy/tests/__init__.py +++ b/numba_dppy/tests/__init__.py @@ -3,14 +3,14 @@ from os.path import dirname, join -import numba.dppl_config as dppl_config +import numba_dppy.config as dppy_config def load_tests(loader, tests, pattern): suite = SerialSuite() this_dir = dirname(__file__) - if dppl_config.dppl_present: + if dppy_config.dppy_present: suite.addTests(load_testsuite(loader, join(this_dir, 'dppl'))) else: print("skipped DPPL tests")