Hi all,
I recently updated Firedrake, PyOP2, etc and now any attempt to use the CUDA backend fails with the following stack trace (the sequential backend still works):
...elided...
  File "/homes/hjd11/proj/Firedrake/firedrake/firedrake/functionspace.py", line 585, in __init__
    super(VectorFunctionSpace, self).__init__(mesh, element, name, dim=dim, rank=1)
  File "/homes/hjd11/proj/Firedrake/firedrake/firedrake/functionspace.py", line 121, in __init__
    with function.Function(self).dat.vec_ro as v:
AttributeError: 'Dat' object has no attribute 'vec_ro'
The problem seems to be this new code in firedrake/functionspace.py introduced in commit 109e128133d6622d99d80fe99144cf269e1039bf:
+        # Tell the DM about the layout of the global vector
+        with function.Function(self).dat.vec_ro as v:
+            self._dm.setGlobalVector(v.duplicate())
Which depends on Dat having a vec_ro which is defined on the PETSc derived Dat class but not on the CUDA one.
Is the CUDA backend broken for everyone, or did I do something wrong when I updated Firedrake?