已关闭
【BUG】进程组获取局部rank #25
fengyixing创建于  3月2日关闭于  3月11日
fengyixing
fengyixing成员
3月2日 创建

问题背景

  1. 当前支持的多个框架中,进程组的类型定义有区别,部分框架的进程组类型是str类型,想要获取进程组中的局部rank没有直接的方法可用。
  2. device_mesh的map_key使用rank_list的首尾rank号的hash值,即使内部拓扑不一致也会被认定为相同的device_mesh,与设计不一致
  3. device_mesh中的axis_id, axis_index, get_rank_list_along_axis方法,在self.mesh_dim_names为None时报错axis值错误是不合理的
  4. _build_readable_tensor_map方法处理self._mesh.mesh_dim_names为None的情况时全部设置为None是不合理的,无法识别真实已经分片的情况

解决方案

  1. 在platform中提供统一的get_group_local_rank方法,每个平台各自实现
  2. device_mesh的map_key使用完整的rank_list哈希值
  3. 对于self.mesh_dim_names为None的情况,提前给出清晰的mesh_dim_names为None报错
  4. 对于self.mesh.mesh_dim_names为None的情况,若item为-1,表示未切分,赋值None;若iten不为-1,表示切分了,赋值dim{dim}。
likedislike
fengyixingfengyixing成员
3月2日 关联分支 由 [] 改变为 [master]
fengyixingfengyixing成员
3月2日 关联组件 由 [] 改变为 [B-SIG-Parallel]
fengyixingfengyixing成员
3月2日 问题后端类型 由 [] 改变为 [Ascend]
fengyixingfengyixing成员
3月9日 关联了pull request:fix device mesh bugs
fengyixingfengyixing成员
3月10日 关联了pull request:fix device mesh bugs
fengyixingfengyixing成员
3月11日 issue状态由 TODO 改变为 ACCEPTED
fengyixingfengyixing成员
3月11日 issue状态由 ACCEPTED 改变为 WIP
fengyixingfengyixing成员
3月11日 issue状态由 WIP 改变为 DONE
fengyixingfengyixing成员
3月11日 关闭了 issue