diff --git a/device_fixtures.py b/device_fixtures.py new file mode 100644 index 0000000000000000000000000000000000000000..d0dbc5929dc744a0fed6354f3aa8aa34897bf57c --- /dev/null +++ b/device_fixtures.py @@ -0,0 +1,15 @@ +import pyopencl as cl + + +_QUEUE = [] + + +def get_queue(ctx_factory): + if not _QUEUE: + setup_queue(ctx_factory) + return _QUEUE[0] + + +def setup_queue(ctx_factory): + ctx = ctx_factory() + _QUEUE.append(cl.CommandQueue(ctx)) diff --git a/fixtures.py b/fixtures.py index febd232ec9f031ab9d734868c0e2c56145cc73dd..6bb5c43fafc6ddf6de013200d254206718c47e1f 100644 --- a/fixtures.py +++ b/fixtures.py @@ -7,9 +7,9 @@ import loopy as lp from pytest import approx +from device_fixtures import get_queue _WENO_PRG = [] -_QUEUE = [] def get_gpu_transformed_weno(): prg = get_weno_program() @@ -56,12 +56,6 @@ def get_gpu_transformed_weno(): return prg -def get_queue(ctx_factory): - if not _QUEUE: - ctx = ctx_factory() - _QUEUE.append(cl.CommandQueue(ctx)) - return _QUEUE[0] - def with_root_kernel(prg, root_name): # FIXME This is a little less beautiful than it could be diff --git a/setup_fixtures.py b/setup_fixtures.py index b3800c51c5bb2c86b9c03e7fb04c15957f1d3fa5..eaaa63e4260a0e29d616e333e2b9bbea04cf7f7b 100644 --- a/setup_fixtures.py +++ b/setup_fixtures.py @@ -1,7 +1,7 @@ import numpy as np import pyopencl as cl -import fixtures +import device_fixtures as device class FluxDerivativeParams: @@ -57,7 +57,7 @@ def random_flux_derivative_arrays(params): def random_flux_derivative_arrays_on_device(ctx_factory, params): - queue = fixtures.get_queue(ctx_factory) + queue = device.get_queue(ctx_factory) states = random_array_on_device(queue, *params.state_bounds()) fluxes = random_array_on_device(queue, *params.flux_bounds())