present. We need a sync instead of eieio, as eieio does not enforce storage ordering between main and device memory.