资讯动态

Helios多卡并行推理指南:Ulysses与Ring Attention四种上下文并行策略详解

发布时间:2026/10/8 18:51:25 来源:尧图企业网站定制
Helios多卡并行推理指南Ulysses与Ring Attention四种上下文并行策略详解【免费下载链接】HeliosHelios: Real Real-Time Long Video Generation Model项目地址: https://gitcode.com/gh_mirrors/helios33/HeliosHelios 多卡并行推理是本文的主角这款 14B 级实时长视频生成模型单张 H100 即可跑到 19.5 FPS内置了 Ulysses 与 Ring Attention 共四种上下文并行Context Parallelism策略帮你把分钟级视频的超长序列切分到多张 GPU 上计算显著降低单卡显存压力、进一步压榨生成速度。全文只讲清「什么时候选哪种后端 一键启动命令」新手照着做 5 分钟就能跑起来。为什么长视频推理需要多卡并行Helios 采用自回归方式每 33 帧生成一个 chunk帧数越多Transformer 的上下文序列就越长——注意力计算的显存占用随序列长度快速膨胀。多卡并行Ulysses / Ring Attention的思路是把超长 token 序列切分到多张 GPU单卡只算自己那一段卡间通过集合通信all-to-all 或 ring补齐注意力所需的完整上下文每张卡完整加载模型权重但激活值/中间张量按卡分摊显存峰值大幅下降。模型侧的并行切分计划定义在 transformer_helios.py 的_cp_plan中每个 Transformer 块的attn1/attn2/ffn都声明了「输入按序列维切分、输出按序列维聚合」Diffusers 框架据此自动插入通信算子。四种上下文并行策略对比Helios 通过--cp_backend参数暴露了四种策略默认值为ulysses后端参数通信模式卡数分配4 卡示例特点与适用场景ulysses⭐默认all-to-allulysses_degree4实现简单、通信规整短~中等长度视频的首选ring环形 P2P 传 KVring_degree4KV 分块沿环形传递计算与通信可重叠超长序列显存最省unified两者混合ring_degree2 ulysses_degree2折中方案要求卡数为偶数ulysses_anythingall-to-allgloo 辅助ulysses_degree4序列长度不必被卡数整除兼容性最好① Ulysses Attention默认首选Ulysses 在注意力前后各做一次 all-to-all输入时按「序列维」切分 token通信后每卡持有完整序列的一部分头从而可以独立完成注意力输出时再切回序列维。通信量规整、实现简单是 infer_helios.py 中的默认后端2~4 卡起步体验非常顺滑。② Ring Attention长序列的显存之王Ring Attention 把 KV 切成块每卡只保留自己的一块 KV计算局部注意力后把 KV 块沿「环形」传给下一张卡再累加注意力——通信与计算流水线化任意时刻每卡只持有一份 KV因此序列越长收益越大代价是对卡间互联带宽更敏感。③ UnifiedUlysses Ring 混合把卡数一分为二一半组 Ring 环、一半组 Ulysses 组见 infer_helios.py 中ring_degreeworld_size//2, ulysses_degreeworld_size//2的映射两种通信模式的开销互相抵消。注意卡数必须能被 2 整除。④ Ulysses Anything序列不必整除普通 Ulysses 要求序列能被卡数整除ulysses_anything在 Ulysses 之上支持任意序列长度。实现上它在初始化进程组时额外挂载了 CPU 侧 gloo 后端infer_helios.py 的backendcpu:gloo,cuda:nccl用于变长上下文的数据交换适合序列长度不好切分的场景兼容性最好。一键启动多卡推理最快上手方法以 4 张 GPU 跑 Helios-Base 为例CUDA_VISIBLE_DEVICES0,1,2,3 torchrun --nproc_per_node 4 infer_helios.py \ --enable_parallelism \ --cp_backend ulysses \ # 可选: [ring, ulysses, unified, ulysses_anything] --base_model_path BestWishYsh/Helios-Base \ --transformer_path BestWishYsh/Helios-Base \ --sample_type t2v \ --num_frames 1449 \ --fps 24 \ --guidance_scale 5.0 \ --prompt A vibrant tropical fish swimming gracefully among colorful coral reefs... \ --output_folder ./output_helios/helios-base单卡脚本 scripts/inference/helios-base_t2v.sh 顶部也留了 2 卡并行的注释示例可直接照抄修改。参数调优与常见坑位清单卡数要配齐--nproc_per_node必须与CUDA_VISIBLE_DEVICES中实际给出的卡数一致且world_size 1时--enable_parallelism才会真正生效。头数整除约束Helios 有 40 个注意力头Ulysses 组内会按头切分建议卡数选用 2、4、5、8、10 等能整除 40 的数值。Unified 需偶数卡unified将卡数对半分给 Ring 与 Ulysses奇数卡会直接取整失效。长视频优先 ring / unifiednum_frames拉到 720、1449 这类分钟级长度时环形传 KV 的显存优势才真正体现。只有 rank 0 存视频多卡并行时所有卡都参与计算但视频导出仅由 rank 0 完成infer_helios.py其他卡不会重复写盘。低显存模式互斥--enable_low_vram_modeGroup Offloading约 6GB 显存仅支持单卡与多卡并行不能同时使用脚本里有硬性断言infer_helios.py。想省显存又想快单卡显存不够但想要速度时先用 Group Offloading 兜底显存够则上 Ulysses 多卡冲吞吐。相关源码导航内容文件位置并行开关与四种后端映射infer_helios.py进程组初始化含 glooinfer_helios.py并行切分计划_cp_plantransformer_helios.py注意力内核分派FA2/FA3/Sageattention_dispatch.py单卡/多卡示例脚本scripts/inference/模型下载与安装说明README.md⚠️ 注意上面这张图请勿重复使用——本文实际只使用一次见上文素材示例处此处仅作占位说明正式输出时请删除本行。写在最后记住这个决策口诀默认选ulysses序列超长选ring偶数卡想折中选unified序列不好切分选ulysses_anything。配合num_frames取 33 的倍数自动对齐 chunk你的 Helios 多卡集群就能稳定吐出分钟级高保真视频。Happy Generating! 【免费下载链接】HeliosHelios: Real Real-Time Long Video Generation Model项目地址: https://gitcode.com/gh_mirrors/helios33/Helios创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑