
近日,PyTorch 正式发布了 v2.9.1 版本,这是一次专注于修复回归问题和隐性正确性错误的 Bug Fix Release。本次更新主要针对 PyTorch v2.9.0 中出现的一些性能回退、分布式计算问题、编译器错误等进行修复与优化。以下为详细更新内容。
一、回归问题修复
- F.conv3d 在 bfloat16 输入下的显著内存回退问题
在 v2.9.0 中,F.conv3d使用 bfloat16 输入时出现严重的内存占用回退。
本次版本提供了解决方案,如受影响建议从 PyPI 安装nvidia-cudnn包版本 9.15+。
二、Torch.compile 相关修复与优化
- 修复 Inductor 在编译 Gemma 时的错误。
- 修复
InternalTorchDynamoError在字节码转换过程中的问题。 - 修复
error_on_graph_break配置下发生的隐性正确性错误,该错误会导致在非空 checkpoint 情况下出现不必要的 graph break 恢复。 - 提升性能:
- 使用
mark_static_address配合 cudagraphs 时避免重复编译。 - 在
torch inductor中缓存get_free_symbol_uses以提升性能。
- 使用
- 修复 Inductor 图分区在 vLLM 场景下的注册设计问题。
- 修复
torch.compile中出现的频繁警告信息。 - 修复
tracer_output变量未初始化导致的异常。 - 修复
torch.bmm与torch.compile在 v2.9.0 版本下的崩溃问题。
三、其他修复与改进
- 修复新 TF32 控制 API 下频繁产生的警告信息。
- 修复分布式计算中,
gather输入非 contiguous 引发的崩溃。 - 修复对大张量进行索引时导致的无效配置参数问题。
- 修复
CUDNN_ATTENTION中的数值计算问题。 - 修复在
fused_scaled_matmul_reduce_scatter中的对称内存问题。 - 改进 libtorch 稳定 ABI 文档。
- 修复 PyPI 项目描述部分图片显示问题。
四、总结
代码地址:github.com/pytorch/pytorch
PyTorch v2.9.1 是一次重要的修复版本,针对 v2.9.0 的性能回退与编译器错误进行了集中处理,并在分布式、内存管理、数值计算等方面做出了优化。如果你的项目正在使用 v2.9.0,并且出现了相关问题,推荐及时升级至 v2.9.1 ,并确保相关依赖(如 nvidia-cudnn)版本满足要求,以获得最佳的性能与稳定性。