DeepSpeed
6e38d56f - Fix FlopsProfiler crash when dp_world_size is None under sequence parallelism (#8122)

Commit
7 days ago
Fix FlopsProfiler crash when dp_world_size is None under sequence parallelism (#8122) ## Problem When Ulysses sequence parallelism is enabled, the DeepSpeed engine reports `dp_world_size` as `None` (`groups._get_data_parallel_world_size()` returns `None` for a sequence-parallel `mpu`, because the data-parallel replication is folded into the sequence-data-parallel group). `FlopsProfiler.print_model_profile()` formats that value with `'{:<8}'`, and `'{:<8}'.format(None)` raises: ``` TypeError: unsupported format string passed to NoneType.__format__ ``` so the profiler crashes on every profile step once sequence parallelism is on. This matches the traceback in #7483. ## Fix When `dp_world_size` is `None`, report `seq_dp_world_size` instead (the engine always sets it, and under sequence parallelism it is the effective data-parallel replication). The normal (non-sequence-parallel) path is unchanged. ## Test Added `test_print_model_profile_with_none_dp_world_size` in `tests/unit/profiling/flops_profiler/test_flops_profiler.py`. It drives `print_model_profile` with an engine whose `dp_world_size` is `None`. It fails on `master` with the `NoneType.__format__` `TypeError` and passes with this change, asserting the sequence-data-parallel world size is shown for "data parallel size". Fixes #7483 Signed-off-by: Vineeth Sai <vineethsai4444@gmail.com>
Author
Parents
Loading