viable/strict/1790362354: Revert "[ROCm] Free rocFFT plans (#197425)"
PyTorch 在 viable/strict/1790362354 与 trunk/5569590a11cdd00289a07d2dc95091709a6f4a0b 两个发布标签中回滚了提交 ffc5472,即 PR #197425「[ROCm] Free rocFFT plans」。回滚说明称该变更导致大量 racy failures,并指向 issue #198631 作为细节来源,回滚由 jeffdaily 代为发起。
发展脉络
- 首次出现viable/strict/1790362354: Revert "[ROCm] Free rocFFT plans (#197425)"PyTorch Core
- 行业反馈trunk/5569590a11cdd00289a07d2dc95091709a6f4a0b: Revert "[ROCm] Free rocFFT plans (#197425)"PyTorch Core
- 当前判断这体现 AMD ROCm 路径在 PyTorch 上游仍处于高频修补阶段:性能类改动(释放 FFT plan 以省资源)在合入后因稳定性问题被快速回滚,说明该后端的测试覆盖与竞态检测能力尚不足以在合入前拦截此类问题。对依赖 ROCm 训练或推理的团队而言,上游 trunk 的稳定性波动仍是选型时需要计入的风险项。Agent Pulse · 分析
PyTorch 核心仓库出现一次针对 ROCm 后端的回滚:PR #197425「[ROCm] Free rocFFT plans」被撤销,对应提交 ffc5472 被 revert。两条发布记录(viable/strict/1790362354 与 trunk/5569590a11cdd00289a07d2dc95091709a6f4a0b)给出相同理由:该变更造成 numerous racy failures,细节见 issue #198631,回滚由 jeffdaily 代为发起。证据仅覆盖回滚动作、被回滚的 PR 编号与失败原因指向,未提供失败复现条件、影响范围或修复方案。
从描述看,问题被归类为 racy failures,通常指向资源释放与并发执行之间的时序竞争,而非确定性数值错误;rocFFT plan 的释放时机若与异步 kernel 或流同步不匹配,容易在多线程或多次迭代下偶发失败。可验证的下一信号是 issue #198631 中是否给出最小复现与同步点定位,以及后续是否以带显式同步或延迟释放的方式重新提交该优化。
这体现 AMD ROCm 路径在 PyTorch 上游仍处于高频修补阶段:性能类改动(释放 FFT plan 以省资源)在合入后因稳定性问题被快速回滚,说明该后端的测试覆盖与竞态检测能力尚不足以在合入前拦截此类问题。对依赖 ROCm 训练或推理的团队而言,上游 trunk 的稳定性波动仍是选型时需要计入的风险项。
对使用 ROCm 的团队,短期价值在于明确该优化不可依赖,需在自有环境中验证 FFT 相关路径的并发稳定性;对维护下游分支或容器镜像的团队,应避免把该提交纳入发布基线。可验证信号是后续 release 标签中是否再次出现同一 PR 的合入记录。
若 #198631 定位到具体同步缺陷,预计会出现带修复的重新提交,并可能伴随 ROCm 相关 CI 或竞态测试的补强;反之若长期无重新提交,则说明该优化收益不足以覆盖稳定性成本。观察点是该 PR 编号是否以新提交形式回归,以及 issue #198631 是否关闭。