已合并
convert_torch_express_to_hyper_parallel #64
yide12创建于 2025年12月30日
convert_torch_express_to_hyper_parallel #64
已合并
yide12创建于 2025年12月30日
从refs/pull/64/head合入到master
yide12
yide12成员
2025年12月30日
  1. convert_torch_express_to_ms

相关的Issue

hyper_parallel增加三种placement,Shard,Replicate,Partial
https://gitee.com/mindspore/hyper-parallel/issues/IDJV25

https://gitcode.com/mindspore/hyper-parallel/issues/7

原因(目的、解决的问题等)

目前在分布式并行逻辑中,用户通常需要通过复杂的 tensor_map来手动配置张量的切分策略。这种方式对用户不够直观。为了提升分布式编程的可读性和易用性,需要引入一套高层抽象的放置策略(Placement)体系,并实现其与底层执行算子所需的 tensor_map 之间的自动转换。

描述(做了什么,变更了什么)

1.新增三种placement表达,shard,replicate,partial
2.新增类方法: Layout.from_device_mesh,通过device_mesh创建layout实例。传入子mesh时,tensor_map按照子mesh维度信息进行转换。
3.layout新增placement_to_tensor_map(dim),tensor_map_to_placement方法,支持placement<=>tensor_map相互转换。限制:不支持高纬tp。

测试用例(新增、改动、可能影响的功能)

新增测试文件:tests/mindspore/st/test_placement_conversion.py,验证简单场景下的转换。

likedislike
Pull Request已成功合入, 合并人@
(感谢 yide12 的贡献)
AAtomGit-Bot
2025年12月30日 指派了 CODEOWNER yangzhenzhang 审查
AAtomGit-Bot
2025年12月30日 指派了 CODEOWNER kisnwang 审查
AAtomGit-Bot
2025年12月30日 添加了 &nbsp; mindspore-cla/yes 标签
AAtomGit-Bot
2025年12月30日 添加了 &nbsp; pr-check-pass 标签
yide12yide12成员
2025年12月30日 强制推送 了代码
yide12yide12成员
2025年12月30日 更新了标题
yangzhenzhang成员2025年12月30日进行代码检视1
yangzhenzhang2025年12月30日评论:

不从torch.distributed中import任何东西

likedislike
yide12
yide12成员2025年12月30日进行代码检视1
yide12
yide122025年12月30日评论:

不从torch.distributed中import任何东西

好的,增加上这些类的实现后替换掉

likedislike
changzherui
changzherui成员2025年12月30日进行代码检视1
changzherui
changzherui2025年12月30日评论:

这几个字段暂时没用的话,可以先不加,后续需要再加;或者每次获取的时候都重新算一下,反正不费时间

likedislike
changzherui
changzherui成员2025年12月30日进行代码检视1
changzherui
changzherui2025年12月30日评论:

这块当前只是记录一下,后续再近一步处理是吗

likedislike
yide12yide12成员
2025年12月30日 强制推送 了代码
此处折叠了18条事件消息 查看更多
yide12yide12成员
1月9日 强制推送 了代码
yide12
yide12成员1月9日进行代码检视1
yide12
yide121月9日评论:

这几个字段暂时没用的话,可以先不加,后续需要再加;或者每次获取的时候都重新算一下,反正不费时间

已删除

likedislike
yide12
yide12成员1月9日进行代码检视1
yide12
yide121月9日评论:

这块当前只是记录一下,后续再近一步处理是吗

现有layout有partial记录

likedislike
yide12yide12成员
1月9日 更新了说明
yide12yide12成员
1月9日 更新了说明
changzherui
changzherui成员1月9日进行代码检视1
changzherui
changzherui1月9日评论:

这块要不要加个 * 控制关键字参数。或者device_mesh的优先级高于layout?

likedislike
changzherui
changzherui成员
1月9日 评论:

我们后续要支持 直接使用 DTensor(full_tensor, devicemesh, placement)创建
不能仅支持from_local

likedislike
lzy0920232成员1月10日进行代码检视1
hyper_parallel/core/layout.py
@@ -417,0 +425,4 @@
425+ cluster devices.
426+ 
427+ Returns:
428+ Layout: A new Layout instance initialized with the properties of the provided device mesh.
lzy09202321月10日评论:

placements是只读属性,应该使用obj._placements = None

likedislike
lzy0920232成员1月10日进行代码检视1
lzy09202321月10日评论:

dim是方法不是属性,建议改成local_tensor.dim()

likedislike
yide12yide12成员
3月4日 修改了pull request 的描述