test_groups.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # Copyright (c) Microsoft Corporation.
  2. # SPDX-License-Identifier: Apache-2.0
  3. # DeepSpeed Team
  4. from deepspeed.utils.groups import _get_expert_parallel_ranks
  5. def test_get_expert_parallel_ranks():
  6. """
  7. Example - E + M + D parallel
  8. world_size = 16
  9. model_degree = 2
  10. expert_degree = 4 # number of experts in same group
  11. mp_group = [0, 1], [2,3], [4,5] ...
  12. data_parallel_group =[0,2,4,6,8,10, 12,14], [1,3,5,7,9,11,13,15]
  13. expert_parallel_group = [0,2,4,6], [8,10,12,14] [1,3,5,7], [9,11,13,15]
  14. expert_data_parallel_group = [0,8],[2,10],[4,12],[6,14], [1,9],[3,11],[5,13],[7,15]
  15. """
  16. expert_parallel_groups, expert_data_parallel_groups = _get_expert_parallel_ranks(world_size=16,
  17. tensor_parallel_size_=2,
  18. expert_parallel_size_=4)
  19. assert expert_parallel_groups == [
  20. [0, 2, 4, 6],
  21. [8, 10, 12, 14],
  22. [1, 3, 5, 7],
  23. [9, 11, 13, 15],
  24. ]
  25. assert expert_data_parallel_groups == [
  26. [0, 8],
  27. [2, 10],
  28. [4, 12],
  29. [6, 14],
  30. [1, 9],
  31. [3, 11],
  32. [5, 13],
  33. [7, 15],
  34. ]