diff --git a/loopy/target/pyopencl.py b/loopy/target/pyopencl.py index 00076ced1d24c880d2340ac8053253b2c29ab29a..8f371085e0f1655651397c16873f10a95a799f79 100644 --- a/loopy/target/pyopencl.py +++ b/loopy/target/pyopencl.py @@ -363,14 +363,26 @@ class PyOpenCLTarget(OpenCLTarget): raise NotImplementedError("atomics flavor: %s" % self.atomics_flavor) def is_vector_dtype(self, dtype): - import pyopencl.cltypes as cltypes + try: + import pyopencl.cltypes as cltypes + vec_types = cltypes.vec_types + except ImportError: + from pyopencl.array import vec + vec_types = vec.types + return (isinstance(dtype, NumpyType) - and dtype.numpy_dtype in list(cltypes.vec_types.values())) + and dtype.numpy_dtype in list(vec_types.values())) def vector_dtype(self, base, count): - import pyopencl.cltypes as cltypes + try: + import pyopencl.cltypes as cltypes + vec_types = cltypes.vec_types + except ImportError: + from pyopencl.array import vec + vec_types = vec.types + return NumpyType( - cltypes.vec_types[base.numpy_dtype, count], + vec_types[base.numpy_dtype, count], target=self) def alignment_requirement(self, type_decl):