only copy between host and device when data has changed