跳至正文
ComfyUI WorldBETA
登录
资料整理

MPS 不支持 Float8:区分权重格式与实际计算类型

在 Mac 上加载某个 FP8 模型或执行节点时,出现转换到 MPS 不支持的 dtype 提示。需要确定是权重加载、解量化还是运算阶段受限,而不能据文件名认定所有量化模型都不支持。

更新于 2026-09-24发布修订: 4资料基线: 尚未记录

现象与适用范围

在 Mac 上加载某个 FP8 模型或执行节点时,出现转换到 MPS 不支持的 dtype 提示。需要确定是权重加载、解量化还是运算阶段受限,而不能据文件名认定所有量化模型都不支持。

检索用原文或片段(具体编号、数值和文件名随环境变化):

Float8_e4m3fn
does not have support for that dtype

已核对的依据

issue #8988 记录了 Float8_e4m3fn 转到 MPS 的实际用户报告。PyTorch 的 MPS fallback 是有条件的机制,不是把任意 CUDA 或 Float8 算法自动转换为等价 CPU 算法。 I10 P05 P04

需要区分的情况

1. 模型文件使用一种存储精度,而所选加载器试图直接以设备不支持的计算类型运行。

2. 自定义节点硬编码 dtype 或设备,绕过了核心适配逻辑。

3. 某种量化路线需要专用加载器;普通 FP8、GGUF 与其他格式不能仅按“都是低精度”互换。

建议的操作顺序

以下顺序是基于上述资料整理的诊断方案,不代表上游已经为你的环境确认了原因。

第 1 步。 记录准确文件名、模型家族、加载器类名和 Torch 版本,截取首次 dtype 报错而不是最后一条队列失败信息。

第 2 步。 查该模型和加载器的 Mac 支持说明,寻找明确支持的权重与计算精度组合。

第 3 步。 在环境副本使用适配的非 FP8 文件或正确解量化加载路线;先确认更高精度所需内存,再下载更大文件。

第 4 步。 最小示例仍失败时提交文件身份与版本,避免盲目在所有节点加入 .float() 或随意设置后端 fallback。

如何判断处理有效

同一加载器不再尝试将不支持的数据类型送入 MPS,并能完成至少一次小输入运行;只加载成功不代表全部算子支持。

注意事项与尚未确认的部分

本文引用的是带时间的个案,不构成对未来 PyTorch 支持范围的永久判断。不要为了修复 Mac 去安装只适用于 NVIDIA 的 CUDA wheel。

资料核对日期:2026-09-21。本站未执行此工作流,未进行 GPU、最低显存或耗时测试。

原始资料

相关排查与操作

还没解决?

排查下一个可能的原因

同样的现象可能来自不同原因。可以按顺序查看下面这些相关条目。

  1. Float / Half / BFloat16 不一致:沿调用栈定位失败运算mat1 and mat2 must have the same dtypedtype 错误不同于矩阵尺寸或设备错误。先看调用栈和不兼容的运算输入;仅凭 KSampler 报错不能判定是哪一组件造成了类型不一致。
  2. GGUF 文件无法加载:容器格式相同不代表模型用途相同UnetLoaderGGUF下载 GGUF 后,普通 checkpoint 节点找不到它或专用加载器仍报错。需要先确认该文件是受到当前节点支持的扩散模型或文本编码器,而不是任意聊天模型的 GGUF。
  3. Mac 的 MPS backend out of memory:先看统一内存压力MPS backend out of memoryApple Silicon 上的任务触发 MPS 内存上限。Mac 使用统一内存,浏览器、其他应用、模型和中间张量会共同影响可用空间,不能把机器总内存全部视为可分配给当前生成任务。
把完整日志粘贴到报错排查工具

这篇内容对你有帮助吗?

匿名统计,只记录“有/没有帮助”的计数,不记录账号、IP 地址或设备信息。

资料来源

基于上游文档、源代码或标注为个案的错误报告整理。诊断顺序由本站编排;没有执行、硬件测试或保证修复的结论。

01Float8_e4m3fn unsupported on MPS资料核对: 2026-09-2102MPS environment variables资料核对: 2026-09-2103PyTorch local installation资料核对: 2026-09-21

报告问题 · 8191a873-08ab-547c-b2ba-102a4c681867