ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MiniMax-H3-Comfy-NPU 多卡加速另两大支柱:Qwen3-VL 张量并行与视频 VAE 时间分块解码

MiniMax-H3-Comfy-NPU 多卡加速另两大支柱:Qwen3-VL 张量并行与视频 VAE 时间分块解码 MiniMax-H3-Comfy-NPU 多卡加速另两大支柱Qwen3-VL 张量并行与视频 VAE 时间分块解码【免费下载链接】MiniMax-H3-Comfy-NPU项目地址: https://ai.gitcode.com/Ascend-SACT/MiniMax-H3-Comfy-NPUMiniMax-H3 ComfyUI Ascend NPU 多卡适配Ascend-SACT/MiniMax-H3-Comfy-NPU通过一个 ComfyUI 补丁让 4 张 Ascend NPU 以「DiT 序列并行 Qwen3-VL 张量并行 视频 VAE 时间分块并行解码」三大支柱加速音视频生成768P/15 秒视频从 8 卡 2400 秒降到 4 卡约 500 秒资源消耗下降一半。本文聚焦后两大支柱——32B 文本编码器如何被切四份以及一段视频如何被拆成独立时间块分摊到多卡上解码。1. 为什么需要另外两大支柱在 README.md 中可以看到补丁把公共调度统一到一个MultiNPUParallelConfig节点覆盖 DiT、文本编码器、视频 VAE、音频 VAE 四类组件。其中DiT扩散模型走序列并行——多卡分摊 token/attention 计算这部分在前文已介绍Qwen3-VL 32B 文本编码器和视频 VAE则是本文主角前者用张量并行把权重真正切开后者用时间分块把解码任务摊到多卡。两者解决的是不同的瓶颈瓶颈组件多卡策略单次前向计算量大、权重显存高Qwen3-VL 32B 文本编码器张量并行权重分片长视频解码帧数多、单卡串行慢视频 VAE时间分块并行解码2. Qwen3-VL 张量并行32B 编码器四卡各扛 1/42.1 列并行 行并行每卡只加载 1/4 权重传统做法是把完整文本编码器放在一张卡上32B 模型前向慢且占用一张整卡显存。补丁在 comfy-ui-changes.patch 中为comfy/text_encoders/minimax.py新增了张量并行TP逻辑按 Megatron 经典思路对每一层 Transformer 做两种切分列并行dim0 切输出维q_proj、k_proj、v_proj以及 MLP 的gate_proj、up_proj每个 rank 只持有自己那一份输出分片可独立计算行并行dim1 切输入维o_proj和down_proj消费各分片输出计算结果需通过All-Reduce 求和归并。切分逻辑非常克制地校验了前提注意力头数与 KV 头数必须能被卡数整除_validate_tp_heads否则直接报错而不是悄悄降精度。加载阶段用 meta device 先搭好「1/4 尺寸」的骨架权重分片通过_slice_tp_weight在 safetensors 读入时即按 rank 截取避免先读全量再切。2.2 INT8 量化权重同样可分片对走低显存路线的用户补丁特意让 TP 兼容TensorWiseINT8Layout量化张量列并行的weight_scale每输出行一个缩放值随权重一起切行并行则保留完整 scale——保证 INT8 用户也能享受 4 卡编码器加速而不是被迫退回单卡。2.3 TensorParallelCoordinator每层归并的通信枢纽新增的 comfy/multidevice.py 提供TensorParallelCoordinator负责行并行层的all_reduce_sum/all_reduce_max各 rank 线程把局部结果放入共享槽位通过 Barrier 对齐后求和归并。文本编码整体流程变为rank 0 做分词与 embedding其余 rank 由线程池并发驱动各自的模型分片前向最终日志会打印MiniMax H3 text encode completed with TP4方便确认并行已生效。 直观理解单卡时 32B 编码器独自读题4 卡 TP 时四张卡各读 1/4 的题并拼出完整答案显存与耗时同步下降。3. 视频 VAE 时间分块解码15 秒视频 若干独立时间块3.1 切块与重叠prepare_decode_temporal视频 latent 沿时间维天然接近分段独立。补丁将MiniMaxH3VideoVAE的解码拆为三步prepare_decode_temporal对时间维 latent 做 padding 后按tokens_chunk_size切成带token_overlap重叠的独立 chunk——重叠是为了块边界处帧质量连续并行解码每个 chunk 交给一张卡上的 VAE 副本互不依赖merge_decode_temporal按顺序写入输出缓冲相邻块的重叠帧通过blend羽化融合彻底消除接缝。3.2 MiniMaxH3VAEDecodeParallel轮转调度多卡新增节点MiniMax H3 Video VAE Decode (Parallel)MiniMaxH3VAEDecodeParallel负责调度依据MultiNPUParallelConfig配置的卡数对 chunk 做round-robin 轮转分配第 i 块发给第 i % N 张卡通过comfy.multigpu的vae_replicas为每张卡准备 VAE 副本并用MultiGPUThreadPool并发提交解码任务先卸载 DiT/CLIP 等大权重offload_components把显存让给多份 VAE解码完成后统一搬运到第 0 张卡按帧序合并输出。单卡或时间维过短时自动退化为普通vae.decode不影响 1 卡部署。4. 性能表现三大支柱共同收益核心场景统一为 4 NPU、1344×768768P、24 fps数据来自 README.md 第 8 章场景权重输出端到端耗时Ref2VA Turbo 8 步BF16768P / 15s495.79sRef2VA Turbo 8 步pruned INT8768P / 15s454.77sFL2VA Turbo 8 步INT8768P / 15s389.37sRef2VA res_multistep 21 步BF16768P / 15s944.96sRef2VA Euler 50 步BF16768P / 15s2263.03s对照基线vllm-omni 8×NPU 生成 768P 15s 视频约 2400s卡数减半、耗时降至约 1/5。其中文本条件编码阶段由 TP 提速最后的视频 VAE 解码阶段由时间分块提速二者共同缩短了端到端链路。5. 快速上手三步启用两大支柱安装补丁拉取指定 commit 的 ComfyUI 后执行 install_deps_minimax_h3.sh会校验 torch 2.10.0cpu / torch-npu 2.10.0.post2 / comfy-kitchen 0.2.30 版本并安装 Turbo 节点与工作流再应用补丁文件 comfy-ui-changes.patch启动服务设置NPU_DEVICES0,1,2,3后运行 additional_files/runtime/restart-v1.sh脚本会完成停旧服务、等端口释放与健康检查打开工作流从 Workflows 菜单选择 additional_files/workflows/minimax-h3/ref2va_8steps_lora.json 等归档工作流Multi-NPU Parallel Config节点npu_count与服务器实际卡数一致可选 1/2/4Queue 即可。6. 相关限制与常见疑问四卡显存为何仍高DiT 是序列并行而非参数分片每卡需要完整 DiT 的可换入权重地址空间——张量并行真正切权重的是文本编码器VAE 分块切的是任务单卡能用吗可以。npu_count1时编码器与 VAE 均自动退化为单卡路径推荐搭配 INT8 权重并将分辨率降至 480P首次运行慢约 66.3 GB DiT 与 51.5 GB 文本编码器需从共享存储读取并构建各 rank 拓扑属一次性开销后续 offload/reload 直接走 CPU 热缓存依赖来源机器可读的固定 commit 记录见 source_deps_info.json自定义节点归档在 additional_files/custom_nodes/ 中含已验证的 NPU 兼容修改不应被包管理器自动覆盖。三大支柱协同工作DiT 序列并行加速采样主循环、Qwen3-VL 张量并行压缩条件编码、视频 VAE 时间分块摊薄解码尾段——这正是 4 卡逼近 8 卡基线性能、而资源消耗减半的关键。输出文章结束 /输出文章等等我发现结尾标签格式有误让我按规范重新输出输出文章MiniMax-H3-Comfy-NPU 多卡加速另两大支柱Qwen3-VL 张量并行与视频 VAE 时间分块解码MiniMax-H3 ComfyUI Ascend NPU 多卡适配Ascend-SACT/MiniMax-H3-Comfy-NPU通过一个 ComfyUI 补丁让 4 张 Ascend NPU 以「DiT 序列并行 Qwen3-VL 张量并行 视频 VAE 时间分块并行解码」三大支柱加速音视频生成768P/15 秒视频从 8 卡 2400 秒降到 4 卡约 500 秒资源消耗下降一半。本文聚焦后两大支柱——32B 文本编码器如何被切四份以及一段视频如何被拆成独立时间块分摊到多卡解码。1. 为什么需要另外两大支柱在 README.md 中可以看到补丁把公共调度统一到一个MultiNPUParallelConfig节点覆盖 DiT、文本编码器、视频 VAE、音频 VAE 四类组件。其中DiT扩散模型走序列并行多卡分摊 token/attention 计算这部分已有专门介绍Qwen3-VL 32B 文本编码器与视频 VAE是本文主角前者用张量并行把权重真正切开后者用时间分块把解码任务摊到多卡。两者解决的是不同瓶颈瓶颈组件多卡策略单次前向计算量大、权重显存高Qwen3-VL 32B 文本编码器张量并行权重分片长视频解码帧数多、单卡串行慢视频 VAE时间分块并行解码2. Qwen3-VL 张量并行32B 编码器四卡各扛 1/42.1 列并行 行并行每卡只加载 1/4 权重传统做法是把完整文本编码器放在一张卡上32B 模型前向慢且独占一张卡。补丁在 comfy-ui-changes.patch 中为comfy/text_encoders/minimax.py新增张量并行TP逻辑按经典 Megatron 思路对每层 Transformer 做两种切分列并行切输出维q_proj、k_proj、v_proj与 MLP 的gate_proj、up_proj每个 rank 只持有自己那一份输出分片可独立计算行并行切输入维o_proj与down_proj消费各分片输出结果需经All-Reduce 求和归并。切分前提被严格校验注意力头数与 KV 头数必须能被卡数整除否则直接报错。加载阶段先用 meta device 搭好「1/4 尺寸」骨架权重读入时即按 rank 截取避免先读全量再切。2.2 INT8 量化权重同样可分片对走低显存路线的用户TP 特意兼容TensorWiseINT8Layout量化张量列并行的weight_scale每输出行一个缩放值随权重一起切行并行保留完整 scale——INT8 用户同样享受 4 卡编码器加速不必退回单卡。2.3 TensorParallelCoordinator每层归并的通信枢纽新增的comfy/multidevice.py提供TensorParallelCoordinator负责行并行层的all_reduce_sum/all_reduce_max各 rank 线程把局部结果放入共享槽位经 Barrier 对齐后求和归并。编码流程变为rank 0 完成分词与 embedding其余 rank 由线程池并发驱动各自的模型分片前向完成后日志打印MiniMax H3 text encode completed with TP4方便确认并行已生效。 直观理解单卡时 32B 编码器独自读题4 卡 TP 时四张卡各读 1/4 的题再拼出完整答案显存与耗时同步下降。3. 视频 VAE 时间分块解码15 秒视频 若干独立时间块3.1 切块与重叠prepare_decode_temporal视频 latent 沿时间维天然接近分段独立。补丁把MiniMaxH3VideoVAE的解码拆为三步prepare_decode_temporal对时间维 latent 做 padding 后按tokens_chunk_size切成带token_overlap重叠的独立 chunk——重叠保证块边界帧质量连续并行解码每个 chunk 交给一张卡上的 VAE 副本互不依赖merge_decode_temporal按帧序写入输出缓冲相邻块重叠帧用blend羽化融合消除接缝。3.2 MiniMaxH3VAEDecodeParallel轮转调度多卡新增节点MiniMax H3 Video VAE Decode (Parallel)负责调度依据MultiNPUParallelConfig的卡数对 chunk 做round-robin 轮转分配第 i 块发给第 i % N 张卡通过vae_replicas为每张卡准备 VAE 副本MultiGPUThreadPool并发提交解码先卸载 DiT/CLIP 大权重offload_components把显存让给多份 VAE解码完成后统一搬到第 0 张卡按帧序合并输出。单卡或时间维过短时自动退化为普通vae.decode不影响 1 卡部署。4. 性能表现三大支柱共同收益核心场景统一为 4 NPU、1344×768768P、24 fps数据来自 README.md 第 8 章场景权重输出端到端耗时Ref2VA Turbo 8 步BF16768P / 15s495.79sRef2VA Turbo 8 步pruned INT8768P / 15s454.77sFL2VA Turbo 8 步INT8768P / 15s389.37sRef2VA res_multistep 21 步BF16768P / 15s944.96sRef2VA Euler 50 步BF16768P / 15s2263.03s对照基线vllm-omni 8×NPU 生成 768P 15s 视频约 2400s卡数减半、耗时降至约 1/5。其中条件编码阶段由 TP 提速视频 VAE 解码尾段由时间分块提速两者共同缩短端到端链路。5. 快速上手三步启用两大支柱安装补丁拉取指定 commit 的 ComfyUI 后执行 install_deps_minimax_h3.sh校验 torch 2.10.0cpu / torch-npu 2.10.0.post2 / comfy-kitchen 0.2.30 并安装 Turbo 节点与工作流再应用 comfy-ui-changes.patch启动服务设置NPU_DEVICES0,1,2,3后运行 additional_files/runtime/restart-v1.sh脚本自动完成停旧服务、等端口释放与健康检查打开工作流从 Workflows 菜单选择 ref2va_8steps_lora.json 等归档工作流Multi-NPU Parallel Config节点的npu_count与服务器实际卡数一致可选 1/2/4Queue 即可。6. 相关限制与常见疑问四卡显存为何仍高DiT 是序列并行而非参数分片每卡需要完整 DiT 的可换入权重地址空间——真正切权重的张量并行作用在文本编码器上VAE 分块切的是任务单卡能用吗可以。npu_count1时编码器与 VAE 均自动退化为单卡路径推荐搭配 INT8 权重并将分辨率降至 480P首次运行慢约 66.3 GB DiT 与 51.5 GB 文本编码器需从共享存储读取并构建各 rank 拓扑属一次性开销后续 offload/reload 直接走 CPU 热缓存依赖来源固定 commit 记录见 source_deps_info.json自定义节点归档在 additional_files/custom_nodes/含已验证的 NPU 兼容修改不应被包管理器自动覆盖。三大支柱协同DiT 序列并行加速采样主循环、Qwen3-VL 张量并行压缩条件编码、视频 VAE 时间分块摊薄解码尾段——这正是 4 卡逼近 8 卡基线性能、资源消耗减半的关键。【免费下载链接】MiniMax-H3-Comfy-NPU项目地址: https://ai.gitcode.com/Ascend-SACT/MiniMax-H3-Comfy-NPU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表