![[XPU] Segfault in WanVAE CausalConv3d during VAE encode/decode on Intel GPU](https://www.chat-gpts.plus/wp-content/uploads/2026/06/14513-4e558d86.jpg)
[XPU] Segfault in WanVAE CausalConv3d during VAE encode/decode on Intel GPU
快速结论:该段错误通常发生在 Intel Arc/Battlemage GPU 上运行 WanVAE 系列模型(Wan 2.1/2.2、Qwen-Image)的 VAE encode/decode 时。优先确认是否已启用 ComfyUI 自带的 CPU offload 工作区,或更新至最新的 oneAPI 工具包环境。
问题场景
用户在 ComfyUI 中加载 WanVAE 模型(例如 Qwen-Image VAE)执行 VAE encode(图生视频或视频处理)时,在 Intel XPU 设备上触发段错误。该问题影响所有基于 WanVAE 架构的模型,包括 Wan 2.1/2.2 视频模型和 Qwen-Image 模型。
报错原文
Fatal Python error: Segmentation fault
Current thread (most recent call first):
File "repro1_vae_causal_conv.py", line 63 in main
out = model.encode(x)
Segmentation fault (exit 139)
段错误发生在 C 层(PyTorch Conv3d on XPU),Python 堆栈在 .encode() 处终止。
原因分析
触发路径:VAEEncode → WanVAE.encode() → Encoder3d → CausalConv3d.forward()(单帧快路径)→ Conv3d._conv_forward(权重切片)→ torch.nn.functional.conv3d → 段错误。
可能原因:Intel XPU 的 PyTorch Conv3d 后端在权重切片(weight slicing)与 bf16 数据类型组合时存在缺陷。当 CausalConv3d.forward() 处理单帧输入(T=1)时,会进入快路径并触发 autopad="causal_zero" 的权重切片逻辑,产生非标准形状或 stride 的权重张量,导致 Intel XPU SYCL 后端的 conv3d 调用崩溃。
环境排查
- ComfyUI 版本:验证是否在 v0.22.0-124-gc87384f2 或更高版本(commit c87384f2b8f9e9a7f717e1a269b860698b6634bf,2026-06-02)
- PyTorch 版本:2.11.0+xpu 或当前使用版本
- Python 版本:3.13.3
- GPU 型号:Intel Arc/Battlemage(例如 Intel(R) Graphics [0xe211])
- 驱动版本:xe kernel driver, Linux 6.14.0-1008-intel 或其他内核版本
- oneAPI 版本:检查是否已更新至 Intel oneAPI 2026.0.0 或更高版本
- 确认 ComfyUI 中 vae_cpu_offload 是否被禁用或回退
解决步骤
- 启用 CPU offload 工作区(可优先尝试)
确认comfy/sd.py:1143中的现有工作区未被篡改或移除。此工作区会在检测到 XPU 设备且 latent_dim ≥ 3 时自动将 VAE encode/decode 卸载至 CPU:vae_cpu_offload = (self.device.type == 'xpu' and self.latent_dim >= 3)
如果该代码已被硬编码绕过,请恢复。 - 更新至最新 oneAPI 环境
Issue 已在 Intel oneAPI 2026.0.0(2026.0.0.20260331)环境中无法复现。建议将 Intel oneAPI 工具包更新至 2026.0.0 或更高版本,并重新安装对应的 PyTorch XPU 版本(如 2.11.0+xpu 或更新的兼容版本)。参考:oneAPI 2026 版本发布说明。 - 确认 CPU offload 日志提示
在启用 CPU offload 工作区后,可额外输出警告日志(例如print("VAE offloaded to CPU due to XPU Conv3d issue")),以便确认 offload 是否正确生效。 - 降级或改用非 bf16 精度(如无 oneAPI 更新)
如果更新 oneAPI 不可行,可尝试将 VAE 模型转换为 fp32 数据类型运行,以规避潜在的 bf16 Conv3d 缺陷。 - 提交上游 PyTorch XPU Bug 报告
如果问题仍然存在,请向intel/intel-extension-for-pytorch或 PyTorch XPU 后端提交 Issue,附带复现代码和完整的段错误堆栈信息。
验证方法
执行一个 WanVAE encode 操作(例如加载 Qwen-Image VAE 模型对单帧图像进行 encode),确认不再出现 exit code 139 的段错误。如果使用 CPU offload,验证 VAE encode 是否正常完成,并留意日志中是否有 offload 相关输出。



