| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Merge pull request #917 from yangzhenzhang02/refactor-utils refactor: consolidate core collectives and helpers into core/utils | 1 个月前 | |
refactor: consolidate core collectives and helpers into core/utils 本 PR 对 hyper_parallel/core 做去重整理,把原先散落在 dtensor 与 distributed 两处的集体通信函数和小工具收敛到单一归属模块,消除重复 实现与重导出链。 - core/utils/communication.py:新增 get_group_local_rank、get_device_handle、 get_world_size、ensure_contiguous、create_group、split_group、 init_process_group 等设备/进程组工具,以及 differentiable_* 系列集体通信 函数与 p2p_exchange、wait_async_tensor。 - core/utils/__init__.py:补充对外导出,使 core.utils 成为这些公共工具的 唯一入口。 - hyper_parallel/distributed/_collectives.py:删除,其内容已并入 core/utils/communication.py。 - core/dtensor/_utils.py:移除已迁至 core.utils 的重复实现,仅保留调试 tracer 需要在本模块上打补丁的绑定。 - core/context_parallel/utils.py、core/fully_shard/utils.py、 core/shard/utils.py、core/activation_memory/_backend.py:统一以 __all__ 声明对外可见符号,替代 from x import y as y 的显式重导出写法,并清除 无消费者的冗余导入。 - core/shard/utils.py:删除 get_world_size 封装(torch 原生接口已可直接 调用),调用点 shard/api.py 与 fully_shard/api.py 改用 dist.get_world_size()。 - distributed/{_builder,context_parallel}:同步适配新的导入路径。 不再有同名的重复实现,调用方从 core.utils 取用;tracer 依赖的模块级绑定 保持不变。行为无变化。 | 1 个月前 | |
chore: purge MindSpore residue after backend removal The platform abstraction layer (and with it the MindSpore backend) was deleted earlier, but references to it survived throughout the tree. This removes them; it changes no behavior on the surviving Torch path. Removed: - docker/Dockerfile.mindspore, the MindSpore build branch and examples in docker/build_hyper-parallel_npu.sh / docker/README.md - .jenkins/test/config/dependent_packages.yaml (a single MindSpore wheel URL with no remaining consumer) - MindSporeCase in tests/common/parallel_case.py and msrun_case in tests/common/distributed_launcher.py, plus msrun / MS_NODE_ID rank-discovery fallbacks - dead _MS_PRIMITIVE_OP_NAMES branches in the shard ops (none of those op names are registered in any yaml) and their tests - the stale aclop packed-args notes in parallel_elementwise.py / parallel_gather.py (_normalize_aclop_args no longer exists) - three pylint errors the Atomgit gate reports on files this commit already touches: an unused os import in _pytorch_reference.py, a missing docstring on NoAcceleratorGuard._check_init_process_group and trailing blank lines in test_parallel_topk.py - mindspore from the multicore boundary test, pylint's generated-members, from the autogit lint backend list and from the docs, examples and .agent rules Kept on purpose: - _MS_POSITIONAL_DTYPE_OP_NAMES in parallel_reduce.py — SumExt / MeanExt are live torch registrations in torch_reduce.yaml, so the trailing positional dtype slot is still reachable - test_runtime_sources_import_no_platform_layer — the boundary test still asserts production sources import no Platform layer - URLs under the project's own mindspore.org / gitcode / atomgit namespaces, including the links to the MindSpore repo's contribution rules - hyper_parallel_v1.0.0_release_notes.md (historical) | 1 个月前 | |
Merge pull request #944 from mxysfive/clean_code_mxy cleancode: fix lint errors | 1 个月前 | |
feat(expert_parallel): overlapping dispatch, capacity limit and chunked exchange Port the expert-parallel work the Kimi-K2.6 reproduction depends on: the overlapping dispatch/combine split (ep_routed_dispatch + ep_routed_experts_and_combine, exposed through build_ep_compute(overlap_fn=...)), the capacity limit, chunked/fused dispatch, the balanced router and the static-split planner -- together with the unit tests that pin all of it (tests/ut/core/expert_parallel, 179 cases; 263 with the dual-mode EP suite). The capacity limit drops the slots of an over-capacity expert by routing weight (HP_EP_CAPACITY_ORDER=score, the new default) instead of by position in the expert-major order. The number kept per expert -- the invariant the memory bound rests on -- is identical in both policies, so the archived drop-rate / peak / step-time sweeps stay valid while "which slots die" becomes a defined policy (the cheapest contributions). HP_EP_CAPACITY_ORDER=first reproduces the archived behaviour bit-for-bit, and the per-step log line now names the policy it used. Both keys share ONE fp32 sort key (expert index + inverted weight), which keeps the AICore float sort and adds no host synchronisation. Measured on 2SN (GBS 256, ep 128 / dp_shard 128 / edp 2, real router, two rounds each): the score policy costs +0.015 s per step against the position policy (~0.07%; drop rate 70.23% in both, peak 40.09 vs 40.28 GB), so the policy switch is free at this shape. Enabling the capacity limit at all costs +0.51 s per step (~2.5%): one AICore argsort plus the mask bookkeeping per MoE layer, paid whenever HP_EP_CAPACITY_FACTOR is set, whatever the policy. Measured on 2SN (GBS 256, seq 8192, ep 128 / dp_shard 128 / edp 2): 43.7672 GB with the overlap off -> 41.4853 GB with it on. | 27 天前 | |
Merge pull request #944 from mxysfive/clean_code_mxy cleancode: fix lint errors | 1 个月前 | |
chore: purge MindSpore residue after backend removal The platform abstraction layer (and with it the MindSpore backend) was deleted earlier, but references to it survived throughout the tree. This removes them; it changes no behavior on the surviving Torch path. Removed: - docker/Dockerfile.mindspore, the MindSpore build branch and examples in docker/build_hyper-parallel_npu.sh / docker/README.md - .jenkins/test/config/dependent_packages.yaml (a single MindSpore wheel URL with no remaining consumer) - MindSporeCase in tests/common/parallel_case.py and msrun_case in tests/common/distributed_launcher.py, plus msrun / MS_NODE_ID rank-discovery fallbacks - dead _MS_PRIMITIVE_OP_NAMES branches in the shard ops (none of those op names are registered in any yaml) and their tests - the stale aclop packed-args notes in parallel_elementwise.py / parallel_gather.py (_normalize_aclop_args no longer exists) - three pylint errors the Atomgit gate reports on files this commit already touches: an unused os import in _pytorch_reference.py, a missing docstring on NoAcceleratorGuard._check_init_process_group and trailing blank lines in test_parallel_topk.py - mindspore from the multicore boundary test, pylint's generated-members, from the autogit lint backend list and from the docs, examples and .agent rules Kept on purpose: - _MS_POSITIONAL_DTYPE_OP_NAMES in parallel_reduce.py — SumExt / MeanExt are live torch registrations in torch_reduce.yaml, so the trailing positional dtype slot is still reachable - test_runtime_sources_import_no_platform_layer — the boundary test still asserts production sources import no Platform layer - URLs under the project's own mindspore.org / gitcode / atomgit namespaces, including the links to the MindSpore repo's contribution rules - hyper_parallel_v1.0.0_release_notes.md (historical) | 1 个月前 | |
Merge upstream/master into trainer_dev Bring master's content into trainer_dev, resolving conflicts between master's platform-abstraction removal and resolver API naming (normalize_value / annotation / ConfigResolutionError) and trainer_dev's omni data lifecycle, runtime input adapter, DSA attention support, and model integration diagnostics. | 1 个月前 | |
Merge pull request #948 from pierreleca/mpipe-owner-backward-cleanup fix(mpipe): release per-micro caches on the owner-backward paths | 1 个月前 | |
Merge upstream/master into trainer_dev Bring master's content into trainer_dev, resolving conflicts between master's platform-abstraction removal and resolver API naming (normalize_value / annotation / ConfigResolutionError) and trainer_dev's omni data lifecycle, runtime input adapter, DSA attention support, and model integration diagnostics. | 1 个月前 | |
chore: purge MindSpore residue after backend removal The platform abstraction layer (and with it the MindSpore backend) was deleted earlier, but references to it survived throughout the tree. This removes them; it changes no behavior on the surviving Torch path. Removed: - docker/Dockerfile.mindspore, the MindSpore build branch and examples in docker/build_hyper-parallel_npu.sh / docker/README.md - .jenkins/test/config/dependent_packages.yaml (a single MindSpore wheel URL with no remaining consumer) - MindSporeCase in tests/common/parallel_case.py and msrun_case in tests/common/distributed_launcher.py, plus msrun / MS_NODE_ID rank-discovery fallbacks - dead _MS_PRIMITIVE_OP_NAMES branches in the shard ops (none of those op names are registered in any yaml) and their tests - the stale aclop packed-args notes in parallel_elementwise.py / parallel_gather.py (_normalize_aclop_args no longer exists) - three pylint errors the Atomgit gate reports on files this commit already touches: an unused os import in _pytorch_reference.py, a missing docstring on NoAcceleratorGuard._check_init_process_group and trailing blank lines in test_parallel_topk.py - mindspore from the multicore boundary test, pylint's generated-members, from the autogit lint backend list and from the docs, examples and .agent rules Kept on purpose: - _MS_POSITIONAL_DTYPE_OP_NAMES in parallel_reduce.py — SumExt / MeanExt are live torch registrations in torch_reduce.yaml, so the trailing positional dtype slot is still reachable - test_runtime_sources_import_no_platform_layer — the boundary test still asserts production sources import no Platform layer - URLs under the project's own mindspore.org / gitcode / atomgit namespaces, including the links to the MindSpore repo's contribution rules - hyper_parallel_v1.0.0_release_notes.md (historical) | 1 个月前 | |
refactor: consolidate core collectives and helpers into core/utils 本 PR 对 hyper_parallel/core 做去重整理,把原先散落在 dtensor 与 distributed 两处的集体通信函数和小工具收敛到单一归属模块,消除重复 实现与重导出链。 - core/utils/communication.py:新增 get_group_local_rank、get_device_handle、 get_world_size、ensure_contiguous、create_group、split_group、 init_process_group 等设备/进程组工具,以及 differentiable_* 系列集体通信 函数与 p2p_exchange、wait_async_tensor。 - core/utils/__init__.py:补充对外导出,使 core.utils 成为这些公共工具的 唯一入口。 - hyper_parallel/distributed/_collectives.py:删除,其内容已并入 core/utils/communication.py。 - core/dtensor/_utils.py:移除已迁至 core.utils 的重复实现,仅保留调试 tracer 需要在本模块上打补丁的绑定。 - core/context_parallel/utils.py、core/fully_shard/utils.py、 core/shard/utils.py、core/activation_memory/_backend.py:统一以 __all__ 声明对外可见符号,替代 from x import y as y 的显式重导出写法,并清除 无消费者的冗余导入。 - core/shard/utils.py:删除 get_world_size 封装(torch 原生接口已可直接 调用),调用点 shard/api.py 与 fully_shard/api.py 改用 dist.get_world_size()。 - distributed/{_builder,context_parallel}:同步适配新的导入路径。 不再有同名的重复实现,调用方从 core.utils 取用;tracer 依赖的模块级绑定 保持不变。行为无变化。 | 1 个月前 | |
fix: 修复静态分析告警,补充模块文档与返回值校验 | 4 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 4 个月前 |