深度解读 · 约 6 分钟阅读
PyTorch MPS 解读:解码、正确性与驱动内存要分别测量
Hugging Face PyTorch 团队说明2.15候选版的Metal内核改动;分组解码、FP8存储、填充内存和2.16展望各有不同证据范围。
- 本站发布
- 原文发布
- 核实时间
Hugging Face 的 PyTorch 贡献者于10月20日说明,专用 Metal 内核如何改变 Apple 芯片上 MPS 后端的执行路径。文章提供2.15候选版尝试入口,并单列2.16展望。读者应沿具体瓶颈和测量判断收益,不能把某个加速倍数推广到所有Mac任务。
听读资讯
朗读当前文章,或连续收听资讯。
正在准备听读…
设备语音
朗读由浏览器或设备处理,AISubHub 不向音频 API 发送文本。可用语音及锁屏播放能力因设备而异。
继续播放时可能重复一小段。
一分钟速览
- 原文要求Apple芯片、macOS 15及以上、Python 3.11及以上;2.15候选版与2.16 nightly或审核中工作分别说明。
- M3 Ultra配合torch.compile的分组矩阵乘法解码专用路径,在所示实验中约提升至1.3倍吞吐;softmax微秒数据属于独立算子测量。
- 一次28分块Wan2.2 VAE解码的驱动内存峰值由270.135降至8.108 GiB,但分配器保留峰值都为8.070 GiB,不能混为同一指标。
一、先核版本,再判断改了哪段执行
作者自述为Hugging Face的PyTorch团队,与上游维护者和社区共同改进MPS,主要方向是把部分MPSGraph路径换成专用Metal内核。这属于后端工程优化,不是新模型发布;内核更快,也不代表模型回答更准确。原文环境要求Apple芯片Mac、macOS 15及以上和Python 3.11及以上。
正文明确邀请在独立环境尝试2.15候选版,后文则讨论2.16的nightly或仍在审核的改动。本站未另核后续稳定版状态。复现比较应记录确切构建、设备、数据类型、编译设置和任务;否则容易把未来路径误当成当前已测版本的能力。
二、解码专用路径优化重复的小操作
预填充处理一段输入,解码则反复为下一个token处理小输入。原文把F.linear接到已有矩阵向量内核,并融合适用的偏置加法:96种BF16层形状的几何平均加速为1.23倍,小投影受益较多,已接近带宽上限的大层仍接近1倍。这是层级测量,不是整模型平均提速。
MoE分组矩阵乘法改为在GPU读取分组偏移,避免先复制到CPU再逐组循环。图中M3 Ultra配合torch.compile,Qwen3.6-35B-A3B在512上下文从38.7到51.7 token每秒,2048上下文从36.8到48.7。原文另列相对2.14的更大整版提升;这些基线与约1.3倍的内核比较、后续2.16数据不同,不能相加或相乘。
三、FP8存储与softmax耗时回答不同问题
新增torch.float8_e4m3fn张量,每值1字节,相对FP16或BF16的2字节减少存储;F.scaled_mm支持逐张量和逐行缩放。这不等于整个应用内存减半,其他张量、临时缓冲和运行时分配仍存在,量化及输出类型也影响数值。原文把原生FP8矩阵乘法放在未来Metal着色器工作中,不能把当前存储支持写成普遍硬件加速。
softmax图测的是单行FP32 logits:词表128256时,MPSGraph为57.4微秒,Metal内核为7.1微秒,正文四舍五入为57与7。单个采样环节约8倍提速不等于整段生成快8倍。本站分析应同时测完整路径,保留每次调用的单位,不把算子微秒数转述成没有依据的响应秒数。
四、填充问题藏在分配器之外
Wan示例限定为Wan2.2-TI2V-5B-Diffusers的28分块VAE解码,共8764次常量填充。迁移到Metal后,驱动内存峰值从270.135降至8.108 GiB;分配器保留峰值却都为8.070 GiB,张量分配峰值仅从4.422到4.095 GiB。只看分配器指标会漏掉这次问题的大部分,也不能据此说所有视频模型只需8 GiB。
正确性是另一项收益:Qwen-Image-2.1 VAE编码解码往返与CPU参考的PSNR,从10.06升至29.95 dB。这是指定重建流程的吻合度,不是通用文生图质量分。复数线性代数、反向计算和注意力广播也有改动;升级应在相同形状与模型下,分别核输出、驱动峰值和吞吐。
五、把未来改动与本地验证分开
2.16展望涉及命令缓冲提交、全部Metal注意力和更多算子迁移,作者提醒部分工作仍在审核。未来注意力示例使用M5 Pro和特定头维度,与前面的M3 Ultra解码不同;这些数字或单个动态库体积缩小,都不能当作任何Mac安装2.15候选版后的实测效果。
公开MPS流及张量流记录接口增加Python调度控制,但示例仍在读取结果前同步;原文也列出剩余操作限制和消除编译图中断的后续工作。本站建议在独立环境测试实际数据类型、形状、同步与数值容差。本文完整读过正文及三图,未安装PyTorch、运行示例、审读链接PR或复现性能、画质与内存结果。
有什么影响
本站分析:后端升级应分别记录完整解码吞吐、算子耗时、输出正确性和驱动内存峰值,判断哪项改动对应本应用瓶颈,不把内核结果推广为所有模型的效果。
限制与可用性
所有测量归属Hugging Face的PyTorch贡献者及其指定配置。原文把2.15候选版和2.16工作区分,本站未核后续稳定版可用性;未安装执行、复现基准或审阅链接实现,不能保证普遍提速、内存适配或数值质量。
来源与证据
原文发布: · 核实时间:
AI 辅助采编,依据所列一手来源核实。厂商自报结论注明归属,收录不代表背书。