dp_mode = self._reconcile_mode_with_context(mesh_context, dp_mode)
self.pass_config.dp_mode = dp_mode
if dp_mode == "ddp":
dim = self._first_dim(names, ("fsdp_replicate", "dp_replicate", "dp"))
if dim is None:
raise ValueError(
"dp_mode='ddp' needs a replicate axis among "
"('fsdp_replicate', 'dp_replicate', 'dp') in the mesh "
f"dims {names}"
)
sub = fsdp_mesh[dim]
self._register_mesh_group("dp_replicate", sub)
self.pass_config.dp_replicate_degree = sub.size()
return
if dp_mode == "hsdp":
rep_dim = self._first_dim(names, ("fsdp_replicate", "dp_replicate"))
shard_dim = self._first_dim(names, ("fsdp_shard", "fsdp", "dp"))