PyTorch: 2.12版本带来设备无关torch.accelerator.Graph、MX量化及100倍更快的linalg.eigh
PyTorch 2.12是PyTorch框架于2026年5月13日发布的新生产版本,包含2926个提交和457名贡献者。主要特性:torch.accelerator.Graph设备无关API支持CUDA、XPU及第三方后端;torch.export支持Microscaling MX量化(MXFP4/6/8);linalg.eigh通过cuSolver在CUDA上提速最高100倍;以及CUDA Graphs内的torch.cond支持。TorchScript已被正式移除。
本文由人工智能基于一手来源生成。
PyTorch基金会于2026年5月13日发布了框架2.12版本——包含2926个提交和457名贡献者的重磅更新。此版本标志着向多厂商加速器API的转型,同时支持激进量化,并在线性代数运算上实现了显著加速,同时正式移除TorchScript。
torch.accelerator.Graph如何改变图捕获方式?
torch.accelerator.Graph是全新的统一API,用于跨CUDA、XPU及第三方后端执行图捕获与回放,取代了torch.xpu.XPUGraph等设备专用实现。后端通过轻量级GraphImplInterface注册,c10::Stream和torch.Stream新增is_capturing()方法实现后端无关的流状态检查。该实现由英特尔工程师Guangye Yu通过PR #171269和#171285贡献。
torch.export中的MX量化带来什么?
torch.export.save和torch.export.load现在支持float8_e8m0fnu数据类型。此变更支持将MXFP4、MXFP6和MXFP8格式的激进压缩模型完整导出——对于在成本受限和边缘环境中部署大型语言模型至关重要。该贡献来自ARM工程师Chizkiyahu Raful,通过PR #176270实现。
2.12版本带来哪些加速改进?
linalg.eigh已从遗留MAGMA后端迁移至cuSolver,并在批处理操作中无条件使用syevj_batched。PyTorch团队报告在典型机器学习工作负载中CUDA上实现高达100倍加速——原本需要数分钟的操作现在仅需数秒。另一项关键优化:torch.cond数据依赖控制流现在可通过CUDA 12.4条件IF节点在CUDA Graphs中捕获,消除了此前对CUDA图树的回退机制。融合Adagrad优化器加入Adam、AdamW和SGD,支持fused=True参数。
移除TorchScript意味着什么?
TorchScript自2.10起弃用,并在2.12中正式移除。推荐替代方案:torch.export用于模型序列化,Executorch用于嵌入式运行时。CUDA 12.8 wheel不再包含在标准发布矩阵中——PyTorch推荐旧架构(Pascal、Volta)使用CUDA 12.6,Blackwell使用CUDA 13.0+。
与Joe Spisak、Andrey Talman和Alban Desmaison的在线问答活动定于2026年5月20日周三太平洋时间上午10点举行。
常见问题
- 什么是torch.accelerator.Graph?
- 这是一个跨CUDA、XPU及第三方后端统一执行图捕获与回放的API,取代了torch.xpu.XPUGraph等设备专用实现;后端通过轻量级GraphImplInterface注册,c10::Stream获得is_capturing()方法用于后端无关的流状态检查。
- 移除TorchScript意味着什么?
- TorchScript自2.10版本起被标记为弃用,并在2.12中正式移除;推荐替代方案是用于模型序列化的torch.export和用于嵌入式运行时的Executorch——现有生产代码必须在升级到2.12+之前完成迁移。