已合并
convert_torch_express_to_hyper_parallel #64
yide12创建于 2025年12月30日
convert_torch_express_to_hyper_parallel #64
已合并
从refs/pull/64/head合入到master
Pull Request已成功合入, 合并人@
(感谢 yide12 的贡献)2025年12月30日 指派了 CODEOWNER yangzhenzhang 审查
2025年12月30日 指派了 CODEOWNER kisnwang 审查
2025年12月30日 添加了
mindspore-cla/yes
标签
2025年12月30日 添加了
pr-check-pass
标签
2025年12月30日 强制推送 了代码
2025年12月30日 更新了标题
不从torch.distributed中import任何东西


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


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


2025年12月30日 强制推送 了代码
此处折叠了18条事件消息 查看更多
1月9日 强制推送 了代码
1月9日 更新了说明
1月9日 更新了说明
这块要不要加个 * 控制关键字参数。或者device_mesh的优先级高于layout?


changzherui
1月9日 评论:
1月9日 评论:
我们后续要支持 直接使用 DTensor(full_tensor, devicemesh, placement)创建
不能仅支持from_local


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.
placements是只读属性,应该使用obj._placements = None


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


3月4日 修改了pull request 的描述
相关的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,验证简单场景下的转换。