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? Thanks! Hector Commit: https://github.com/firedrakeproject/firedrake/commit/109e128133d6622d99d80fe... Code in Firedrake master: https://github.com/firedrakeproject/firedrake/blob/master/firedrake/function... Minimal Example & Traceback: https://gist.github.com/chromy/9117a372d1b2c3b9d27d