megatron-fsdp 0.2.0.dev123727__tar.gz → 0.2.0.dev124909__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (17) hide show
  1. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/PKG-INFO +1 -1
  2. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp/megatron_fsdp.py +4 -3
  3. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp/package_info.py +1 -1
  4. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp/param_and_grad_buffer.py +3 -0
  5. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp.egg-info/PKG-INFO +1 -1
  6. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/README.md +0 -0
  7. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp/__init__.py +0 -0
  8. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp/distributed_data_parallel_config.py +0 -0
  9. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp/fully_shard.py +0 -0
  10. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp/uneven_dtensor.py +0 -0
  11. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp/utils.py +0 -0
  12. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp.egg-info/SOURCES.txt +0 -0
  13. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp.egg-info/dependency_links.txt +0 -0
  14. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp.egg-info/requires.txt +0 -0
  15. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/megatron_fsdp.egg-info/top_level.txt +0 -0
  16. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/pyproject.toml +0 -0
  17. {megatron_fsdp-0.2.0.dev123727 → megatron_fsdp-0.2.0.dev124909}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: megatron-fsdp
3
- Version: 0.2.0.dev123727
3
+ Version: 0.2.0.dev124909
4
4
  Summary: **Megatron-FSDP** is an NVIDIA-developed PyTorch extension that provides a high-performance implementation of Fully Sharded Data Parallelism (FSDP)
5
5
  Author-email: NVIDIA <nemo-toolkit@nvidia.com>
6
6
  Maintainer-email: NVIDIA <nemo-toolkit@nvidia.com>
@@ -898,9 +898,10 @@ class MegatronFSDP(torch.nn.Module):
898
898
 
899
899
  # Register pre state_dict hook to ensure that the module parameters are
900
900
  # distributed before saving the state_dict.
901
- self._state_dict_pre_hook = self.module.register_state_dict_pre_hook(
902
- lambda *args, **kwargs: self._replace_param_with_distributed_if_needed()
903
- )
901
+ for name, module in self.named_modules():
902
+ module.register_state_dict_pre_hook(
903
+ lambda *args, **kwargs: self._replace_param_with_distributed_if_needed()
904
+ )
904
905
 
905
906
  @contextmanager
906
907
  def no_sync(self):
@@ -4,7 +4,7 @@
4
4
  MAJOR = 0
5
5
  MINOR = 2
6
6
  PATCH = 0
7
- PRE_RELEASE = '0.dev123727'
7
+ PRE_RELEASE = '0.dev124909'
8
8
 
9
9
  # Use the following formatting: (major, minor, patch, pre-release)
10
10
  VERSION = (MAJOR, MINOR, PATCH, PRE_RELEASE)
@@ -2782,6 +2782,9 @@ class GradReducePipeline:
2782
2782
  outer_fsdp_group_grad_reduce (bool, optional): Whether to reduce gradients
2783
2783
  across outer-DP groups. Defaults to False.
2784
2784
  """
2785
+ # Sort parameters by their bucket IDs to ensure a deterministic processing order.
2786
+ # Performing reduce-scatter operations out of order can lead to hangs.
2787
+ params = sorted(list(params), key=lambda x: self.buffer.param_to_param_group[x])
2785
2788
  for param in params:
2786
2789
  bucket_id = self.buffer.param_to_param_group[param]
2787
2790
  param_group = self.buffer.parameter_groups[bucket_id]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: megatron-fsdp
3
- Version: 0.2.0.dev123727
3
+ Version: 0.2.0.dev124909
4
4
  Summary: **Megatron-FSDP** is an NVIDIA-developed PyTorch extension that provides a high-performance implementation of Fully Sharded Data Parallelism (FSDP)
5
5
  Author-email: NVIDIA <nemo-toolkit@nvidia.com>
6
6
  Maintainer-email: NVIDIA <nemo-toolkit@nvidia.com>