已开启
[整体模块分析] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理 #1
changzherui创建于 6月30日
6月30日 修改标题为 “[方案调研] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理”,原标题为“[Docs] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理”
6月30日 修改标题为 “[方案调研] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理”,原标题为“[Docs] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理”
6月30日 修改了issue 的描述
6月30日 修改了issue 的描述
changzherui
7月1日 评论:
7月1日 评论:
已新增 §1 DTensor / DeviceMesh 全量接口对标总表(接口名 · 参数 · 功能 · hyper · pytorch · titan):#7 DTensor / DeviceMesh 全量接口对标总表


changzherui
7月1日 评论:
7月1日 评论:
已补充 §2 HSDP/FSDP 全量接口对标总表(接口索引附录):#8 HSDP / FSDP 全量接口对标总表


changzherui
7月1日 评论:
7月1日 评论:
已补充 §2 HSDP/FSDP 全量接口对标总表(接口索引附录):#8 HSDP / FSDP 全量接口对标总表


7月1日 修改标题为 “[整体模块分析] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理”,原标题为“[方案调研] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理”
7月1日 修改标题为 “[整体模块分析] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理”,原标题为“[方案调研] HyperParallel / PyTorch / TorchTitan 用户接口对标梳理”
changzherui
7月1日 评论:
7月1日 评论:
已补充 §3 张量并行 TP 全量接口对标总表(接口索引附录):#9 张量并行 TP 全量接口对标总表


背景
本文档梳理 HyperParallel、PyTorch(
torch.distributed)与 TorchTitan 三层并行栈的用户接口对标关系,便于迁移、文档补齐与 API 规划。全局定位
Trainer+ tyroBaseTrainer+ YAMLModelSpec+model_registryModelSpec+register_spec1. DTensor / 设备 Mesh
DTensorhyper_parallel/core.dtensortorch.distributed.tensorLayoutcore.dtensor.layoutSpmdLayout)DeviceMesh/init_device_meshcore.dtensortorch.distributed.device_meshget_current_meshhyper_paralleldistribute_module/distribute_tensorcore.dtensortorch.distributed.tensorShard/Replicate/Partialplacement_typestorch.distributed.tensorinit_parameters/init_empty_weights/init_on_devicehyper_parallelSkipDTensorDispatchhyper_parallel模块小结: PyTorch 提供标准 DTensor;Titan 复用 PyTorch 并引入
SpmdLayout;Hyper 增加Layout与分片初始化,支持 MindSpore 双栈。2. HSDP / FSDP
fully_shardcore.fully_shardtorch.distributed.fsdpdistributed.fsdpHSDPModulehyper_parallelFSDPModulehsdp_sync_streamhyper_parallelMixedPrecisionPolicy/OffloadPolicycore.fully_shard.utilstorch.distributed.fsdpFullyShardedDataParallel(FSDP1)torch.distributed.fsdpapply_fsdp_to_decoderdistributed.fsdp模块小结: 三方围绕 FSDP2 收敛;Hyper 命名
HSDPModule,Titan 提供训练编排封装,PyTorch 含 FSDP1 全量 API。3. 张量并行 TP
parallelize_modulecore.tensor_paralleltensor.parallelColwiseParallel/RowwiseParallel/SequenceParallelhyper_paralleltensor.parallelNoParallelhyper_parallelPrepareModuleInput/Outputhyper_paralleltensor.parallelloss_parallelcore.tensor_paralleltensor.parallel.losscomponents.lossshard_module/DFunctioncore.shard模块小结: TP 是 Hyper 与 PyTorch 对齐度最高的模块;Titan 在
parallelize_*内调用 PyTorch TP。4. 流水线 PP
PipelineStagecore.pipeline_parallelpipeliningSchedule1F1B/GPipe/Interleaved1F1Bcore.pipeline_parallelpipeliningScheduleMPipeTransposecore.pipeline_parallel.mpipeScheduleZeroBubble/DualPipeVpipeliningpipeline_llmdistributed.pipeline_parallelCommComputeOverlapcore.pipeline_parallel模块小结: 基础 PP 共享 PyTorch;Titan 强在自动切分;Hyper 独有 MPipe 与通算掩盖。
5. 上下文并行 CP
ContextParallel/AsyncContextParallelcore.context_parallelcore.context_parallelcontext_parallel(函数式)tensor.experimentalapply_cp_to_forwarddistributed.context_parallel模块小结: 接口风格不同(Hyper 类式 vs PyTorch 函数式);Hyper 偏 DSA/NPU,Titan 偏 Flex/SDPA 集成。
6. 专家并行 EP / MoE
ExpertParallel/ExpertTensorParallelcore.expert_parallelMoE/GroupedExperts/Routerplatform.torch.commonmodels.common.moemega_moe/mega_moe_gradcore.multicoreminimal_async_epdistributed.minimal_async_ep模块小结: PyTorch 无独立 EP 模块;Hyper EP 最完整;Titan 偏模型内嵌 MoE。
7. 进程组 / 通信
init_process_group等collectives.cctorch.distributeddistributed.utilsall_reduce/broadcast等torch.distributedDistributedDataParalleltorch.nn.parallel模块小结: Hyper 不重封装 collective;训练主路径走 FSDP 而非 DDP。
8. 激活检查点
checkpoint/checkpoint_wrappercore.activation_checkpointtorch.utils.checkpoint等distributed.activation_checkpointswap/SwapManagercore.activation_checkpointSelectiveAC/MemoryBudgetACdistributed.activation_checkpoint模块小结: Hyper 独有完整 swap 体系;Titan selective AC 配置更成熟。
9. 分布式检查点 DCP
save/async_save/loadcore.distributed_checkpointtorch.distributed.checkpointCheckpointManagerReshardHandler/ layout I/Ocore.distributed_checkpointoffline_transform.*offline_transformHuggingFaceStorageReader/Writertorch.distributed.checkpoint10. 训练框架
ParallelDimstrainer.parallel_dimstorchtitan.distributedBaseTrainer/LLMTrainer/VLTrainertrainertorchtitan.trainer.TrainerHyperTrainerConfig/parse_argstrainer.configConfigManager+ tyroModelSpec/register_specmodels.specprotocols.model_specModule/ShardingConfigdmoduleprotocols模块小结: Hyper 框架层明显对标 TorchTitan;Titan 组件更全(Metrics/Tokenizer/Quantization/RL),Hyper 用 YAML + Callback。
11. 仅 PyTorch 有(Hyper/Titan 未封装)
ZeroRedundancyOptimizerregister_fsdp_forward_method、share_comm_ctxtensor.experimentalCP、implicit_replication、register_shardingCommDebugMode、ShardedTensor遗留 API12. 仅 TorchTitan 有(Hyper 无)
ConfigManager/OverrideConfig/ tyro CLIMetricsProcessor、ParallelAwareDataloader、HuggingFaceTokenizerFlexAttention/VarlenAttentionLoRAConverterForgeEngine、experiments.rl、TorchFTspmd_types/SpmdLayout体系13. 仅 HyperParallel 有
get_platform(PyTorch/MindSpore 双栈)Layout、shard_module、DFunction、DSA-CP 八类mega_moe、扩展 symmetric memoryswap体系、SAPP 自动并行、hyper-offloadintegration.llamafactory、Muon/get_hyper_optimizerScheduleMPipeTranspose、CommComputeOverlapcustom_ops.experimental)14. 迁移速查
core.dtensor、core.tensor_parallel、core.fully_shard、core.pipeline_parallel、collectives、core.distributed_checkpointtrainer、dmodule、models.spec、models.*、trainer.parallel_dimsParallelDimstrainer.ParallelDimsModelSpecmodels.spec.ModelSpecModule/ShardingConfigdmoduleparallelize_qwen3_5models.qwen3_5.parallelize_qwen3_5TrainerBaseTrainer/LLMTrainerLRSchedulersContainercore.optimizer.LRSchedulersContainer建议后续动作
docs/api/framework_comparison.md并链接到 API Reference 索引distribute_tensor、loss_parallel)评估是否加入hyper_parallel.__all__@see torchtitan...引用本 Issue 由接口梳理自动生成,欢迎补充遗漏接口或修正对标关系。
同步自上游 mindspore/hyper-parallel#262