
Flux Klein 5b crashes with Triton Backend
快速结论:该报错通常发生在 AMD RDNA3.5 架构(如 gfx1151)显卡上启用 Triton Backend 运行 Flux Klein 5B 模型时,原因是 comfy-kitchen 的 Triton JIT 编译器生成的 LLVM 内联汇编在 RDNA3.5 上寄存器分配失败。优先排查方法:关闭 Triton Backend 切换回 eager 或 CUDA 后端。
问题场景
用户在 ComfyUI 0.25.0 上启用 comfy-kitchen Triton Backend(Triton 3.7.0/3.7.1),从 Templates 运行 Flux Klein 5b 模型时崩溃。同一环境在关闭 Triton Backend 后可以正常运行。用户使用的显卡为 AMD Radeon 8060S Graphics(gfx1151,RDNA3.5 架构),系统为 ROCm 7.2,PyTorch 2.12.0a0。
报错原文
couldn't allocate input reg for constraint 'r'
上下文日志中可观察到 Triton backend 被成功加载并识别,随后在 JIT 编译核函数时因 LLVM inline-asm 寄存器分配失败崩溃。完整调试日志结尾伴随 `dequantize_nvfp4_kernel_tl` 函数的 MLIR 转储。
原因分析
comfy-kitchen 的 Triton backend 在 JIT 编译 `dequantize_nvfp4_kernel_tl` 等核函数时,为 gfx1151(RDNA3.5)生成的 LLVM IR 在内联汇编阶段触发寄存器分配错误。该问题是 Triton 针对较新 AMD 架构的编译兼容性问题,并非 ComfyUI 或模型逻辑错误。
环境排查
- 确认 ComfyUI 版本:0.25.0
- 确认 comfy-kitchen 版本:0.2.10
- 确认 Triton 版本:3.7.0 或 3.7.1
- 确认 AMD 架构:gfx1151(RDNA3.5,如 Radeon 8060S Graphics)
- 确认 ROCm 版本:7.2
- 确认 PyTorch 版本:2.12.0a0
- 确认在禁用所有自定义节点后问题仍然存在(用户已验证)
解决步骤
- 临时规避:关闭 Triton Backend
- 启动 ComfyUI 时设置环境变量
COMFY_KITCHEN_DISABLE_TRITON=1,或在配置文件中禁用 Triton backend。 - 或直接移除/重命名 comfy-kitchen 中的 Triton 相关插件以强制回退到 eager 或 CUDA backend。
- 用户已验证此方法可正常运行 Flux Klein 5b。
- 启动 ComfyUI 时设置环境变量
- 精确定位崩溃核函数(可选,用于报告上游)
- 设置环境变量
TRITON_KERNEL_DUMP=1或MLIR_ENABLE_DUMP=1重新运行。 - 收集崩溃前最后一个输出的 MLIR 或 LLVM IR,该段对应无法编译的核函数(如示例中的
dequantize_nvfp4_kernel_tl)。 - 将转储信息提交至 comfy-kitchen 或 Triton 项目以便后续修复。
- 设置环境变量
- 等待上游修复
- 关注 comfy-kitchen 项目(Issue #14510 关联)或 Triton 对 RDNA3.5 的编译支持更新。
- 可能原因:Triton 对 gfx1151 的寄存器分配逻辑需要补丁。
验证方法
重启 ComfyUI 并确认 Triton backend 已关闭(日志中不再显示 Enabling comfy-kitchen triton backend 或显示 disabled=True),然后从 Templates 正常加载并运行 Flux Klein 5b,观察是否不再崩溃。



