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):