尧图精选

HY-World 2.0 多GPU高性能推理部署:FSDP+序列并行+BF16完全指南

🕒 发布时间:2026/10/2 21:03:22 📁 来源:尧图网络
HY-World 2.0 多GPU高性能推理部署FSDP序列并行BF16完全指南【免费下载链接】HY-World-2.0HY-World 2.0: A Multi-Modal World Model for Reconstructing, Generating, and Simulating 3D Worlds项目地址: https://gitcode.com/gh_mirrors/hy/HY-World-2.0HY-World 2.0是腾讯开源的多模态世界模型能从文本、图片、视频中生成并重建可交互的 3D 世界3DGS/网格。它的核心模型 WorldStereo 2.0 参数量约17B、WorldMirror 2.0 约1.2B单卡很难装下或跑得很快。好消息是项目原生支持FSDP全分片数据并行 序列并行Sequence Parallel BF16 混合精度三大加速技术只需一条torchrun命令即可把大模型切分到多张 GPU 上完成推理。本指南面向新手带你从零理解这三种技术、看懂项目的多GPU部署脚本并掌握 2卡/4卡/8卡 的完整部署方法。一、为什么要多GPU部署三大技术速览HY-World 2.0 有两条主线多GPU加速的侧重点不同模块模型多GPU关键技术启动方式世界生成 worldgenWorldStereo 2.0~17BFSDPfully_shard 序列并行 BF16 autocasttorchrun ... --fsdp世界重建 worldreconWorldMirror 2.0~1.2BFSDPFULL_SHARD 序列并行 --enable_bf16torchrun ... --use_fsdp --enable_bf16三种技术一句话解释FSDP参数分片把模型参数按 Transformer 块切分到各 GPU每卡只存 1/N 权重推理前再临时聚合显存占用大幅下降。序列并行SP把超长序列视频帧 × 空间 token按长度维度切开注意力计算通过All-to-All通信在各卡间交换 QKV 头让每张卡只处理 1/N 的序列。BF16半精度将计算与权重转为 bfloat16显存减半、吞吐翻倍且数值范围与 FP32 一致不易溢出。二、worldgen 多GPU部署FSDP 序列并行实战世界生成流水线共 5 个阶段其中阶段 2、3、4是多GPU脚本全部用torchrun启动见 hyworld2/worldgen/README.md阶段脚本多GPU方式轨迹规划traj_generate.py单GPU即可轨迹渲染traj_render.pytorchrun 多卡数据并行世界扩展视频生成video_gen.pytorchrun FSDP 序列并行GS数据准备gen_gs_data.pytorchrun 多卡数据并行3DGS训练world_gs_trainer.py按GPU数量调整步数2.1 关键一步--fsdp开启模型分片核心命令8卡为例4卡/2卡只需改CUDA_VISIBLE_DEVICES和--nproc_per_nodeCUDA_VISIBLE_DEVICES0,1,2,3,4,5,6,7 torchrun --nproc_per_node 8 video_gen.py \ --target_path /path/to/scene --fsdp--fsdp参数在 video_gen.py 中定义开启后会触发以下行为实现在 worldstereo_wrapper.py对 Transformer 每个 block 和 ControlNet block 逐层执行fully_shard权重按(rep, shard)设备网格分片reshard_after_forwardTrue在推理后释放分片、进一步省显存混合精度策略MixedPrecisionPolicy(param_dtypebf16, reduce_dtypefp32)—— 参数以 BF16 参与计算、归约时回 FP32 保证稳定性自动精度选择video_gen.py 会探测硬件优先bf16→ 回退fp16→ 最后禁用 autocast 用 fp32你无需手动指定。2.2 序列并行把视频 token 序列切给所有卡video_gen.py启动时默认执行initialize_parallel_state(spworld_size)parallel_states.py即GPU 数 序列并行度8 卡启动序列就被切成 8 段。注意力内部的通信由 WanAttnProcessorSP 完成QKV 先all_to_all_4D把每卡长序列×全头交换成每卡全序列×1/N头Ulysses 风格用 Flash Attention 算完后再换回来通信逻辑见 communications.py。 注意约束All-to-All 要求注意力头数能被 GPU 数整除所以推荐 2 / 4 / 8 卡这类整齐的卡数。2.3 3DGS 训练GPU 越少步数越多world_gs_trainer.py 的总训练量与卡数成反比官方推荐换算见 worldgen/README.mdGPU 数量max_steps8 卡1500默认4 卡20002 卡40001 卡8000三、worldrecon 多GPU部署--use_fsdp --enable_bf16WorldMirror 2.0 是前馈重建模型支持单卡直跑多卡时开启 FSDP BF16 更快更省pipeline.py# 单卡 python -m hyworld2.worldrecon.pipeline --input_path path/to/images # 多卡FSDP BF16 torchrun --nproc_per_node2 -m hyworld2.worldrecon.pipeline \ --input_path path/to/images \ --use_fsdp --enable_bf16Gradio 可视化应用同理torchrun --nproc_per_node2 -m hyworld2.worldrecon.gradio_app --use_fsdp --enable_bf16。3.1 这套组合拳在代码里做了什么FSDP 分片pipeline.py使用ShardingStrategy.FULL_SHARD按DistBlock等 Transformer 块自动包装sync_module_statesTrue由 rank0 广播权重还支持--fsdp_cpu_offload把参数卸载到 CPU 内存BF16 精度处理pipeline.py多卡 FSDP 模式下要求同一 flat-param 单元内 dtype 统一因此整体转 BF16单卡模式则转 BF16 后把关键 FP32 层如MlpFP32.fc2恢复为 FP32 并注册 dtype 边界 hook细节可看 MlpFP32序列并行分布式初始化时sp_size随WORLD_SIZE设置前向时通过sp_group在注意力中切分序列。3.2 ⚠️ 一个容易踩的坑多GPU模式下输入图片数量必须 ≥ GPU 数量每卡分一张图做数据并行。例如--nproc_per_node8时至少要准备 8 张图否则会报错。四、多GPU硬件与依赖配置清单多卡部署前的环境要求摘自 README.mdGPU≥4 张推荐官方用 8× H20 测试卡数越少显存要求越高--fsdp可缓解环境CUDA 12.8 Python 3.11conda create -n hyworld2 python3.11.15依赖pip install -r requirements.txt再编译 third_party/gsplat_maskgaussian自定义 gsplat 分支worldgen 必需Flash AttentionHopper 架构H100/H20 等推荐 FlashAttention-3否则pip install flash-attn --no-build-isolation装 FA2都没装时自动回退 SDPA但速度会下降VLM 服务worldgen 阶段 1/2 依赖一个运行中的 vLLM 服务如 Qwen3-VL-8B通过--llm_addr/--llm_port/--llm_name传入clone 仓库时请使用git clone https://gitcode.com/gh_mirrors/hy/HY-World-2.0五、常见问题排查现象原因与对策use_fsdp is ignored in single-GPU mode警告FSDP 必须通过torchrun多卡启动单卡时该参数被忽略属正常提示显存仍不够OOMworldrecon 加--fsdp_cpu_offload参数worldgen 确认已加--fsdp并可降低输入分辨率All-to-All 报 head 整除错误换用 2/4/8 等能整除注意力头数的 GPU 数量重建时输入图不足报错图片数 ≥ GPU 数补充图片或减少--nproc_per_node速度慢于预期检查日志是否出现Using Flash Attention字样没有则补装 FlashAttention 更完整的参数说明与 Gradio 应用选项可查阅官方文档 DOCUMENTATION.md世界生成全流程细节见 hyworld2/worldgen/README.md。六、总结HY-World 2.0 的多GPU部署非常开箱即用核心记忆点worldgentorchrun --nproc_per_node N video_gen.py --fsdpFSDP 分片 17B 权重 全卡序列并行 BF16 autocast 自动选择worldrecontorchrun --nproc_per_node N -m hyworld2.worldrecon.pipeline --use_fsdp --enable_bf16注意图片数 ≥ GPU 数3DGS 训练卡数减半则max_steps翻倍8卡1500 / 4卡2000 / 2卡4000 / 1卡8000关键源码位置src/sp_utils/parallel_states.py并行网格、models/attention.pySP 注意力、models/worldstereo_wrapper.pyFSDP 包装、worldrecon/pipeline.py重建侧 FSDP。按此配置普通 4×24G 级别的消费级/工作站显卡即可顺畅跑通 HY-World 2.0 的完整推理流程。【免费下载链接】HY-World-2.0HY-World 2.0: A Multi-Modal World Model for Reconstructing, Generating, and Simulating 3D Worlds项目地址: https://gitcode.com/gh_mirrors/hy/HY-World-2.0创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →