PyTorch 2.5 发布带来一些新特性和改进

主要亮点 (Highlights)]

  • SDPA CuDNN 后端 :为 torch.nn.functional.scaled_dot_product_attention 提供了新的 CuDNN 后端,可以在 NVIDIA H100 或更新的 GPU 上提供高达 75% 的加速。
  • torch.compile 区域编译 :通过 torch._dynamo.config.inline_inbuilt_nn_modules 允许编译重复的 nn.Module(例如大型语言模型中的变换器层)而无需重新编译,从而减少编译延迟。
  • TorchInductor CPU 后端优化 :包括 C++ 后端代码生成和 FX 融合,支持向量化和所有 Inductor IR 操作,兼容 Linux 和 Windows 系统。

PyTorch 2.5.0版本的发布带来了一系列新特性、改进、性能优化以及bug修复,旨在提升用户体验、增强功能和提高执行效率。以下是对PyTorch 2.5.0版本的全面总结:

新特性和改进

  1. SDPA CuDNN后端:引入了新的CuDNN后端,为使用H100或更新型号GPU的SDPA用户提供了默认的速度提升。

  2. torch.compile的区域编译 :允许用户编译重复的nn.Module,而无需重新编译,减少了编译延迟并可能轻微降低性能。

  3. TorchInductor CPU后端优化:包括CPP后端代码生成和FX融合,支持向量化操作和静态/符号形状,兼容Linux和Windows操作系统。

  4. FlexAttention API:一个灵活的API,允许用少量代码实现多种注意力机制,如滑动窗口、因果掩码等,并自动生成反向传播。

  5. 编译自动微分:作为PT2技术栈的扩展,允许捕获完整的反向传播过程,提高了自动微分的灵活性。

  6. 飞行记录器:一个调试工具,用于捕获集体操作的信息,帮助快速识别和解决作业卡住的问题。

  7. 最大自动调优CPU支持:Inductor CPU后端在编译时配置多个操作实现,并选择最佳性能的一个。

  8. TorchInductor在Windows上的支持:支持MSVC、clang和Intel编译器。

  9. FP16在CPU路径上的支持:支持在CPU上使用FP16数据类型,有助于提升性能。

  10. 自动加载设备扩展:简化了设备扩展的集成过程,无需手动导入。

  11. 增强的Intel GPU支持:扩展了对Intel GPU的支持,包括数据中心和客户端GPU。

向后不兼容的变更

  • 分布式处理:移除了一些旧的选项和方法,以反映代码结构的正确性。
  • 导出功能 :移除了dynamic_dim()方法,改用Dims来指定动态形状。
  • Inductor:更新了基准测试路径,从使用Triton的基准测试工具转移到内部Inductor工具。

性能优化

  • CUDA:为深度卷积反向操作生成内核,调整了tile启发式规则以提高性能。
  • 分布式:添加了CPU分析器的动态活动切换API。
  • Dynamo :手动实现了nn.Module.__getattr__nn.Module._call_impl,优化了小型元组的guard。
  • Inductor:添加了对BF16->FP32转换的NEON实现,支持了INT8数据类型的masked vectorization。

文档和开发者支持

  • 提供了详细的文档更新,包括新特性的使用说明、API文档的改进和错误信息的优化。

安全性更新

  • Inductor:放宽了对大小符号可以为0的统一检查。

其他改进

  • Autograd前端 :支持GradientEdge作为torch.autograd.grad的输出。
  • 分布式:引入了带有分析器的Flight Recorder,用于捕获集体操作的诊断信息。
  • Dynamo :引入了torch._dynamo.config.enable_compiler_collectives,用于跨等级同步编译。
  • 导出功能 :支持export_for_training,自动动态形状。
相关推荐
慕容卡卡1 分钟前
Claude 使用神器(web页面)--CloudCLI UI
java·开发语言·前端·人工智能·ui·spring cloud
easy_coder2 分钟前
ReAct Agent 陷入死循环?私有云部署诊断中的陷阱与破局之道
人工智能·云计算
AI技术增长3 分钟前
Pytorch图像去噪实战(九):SwinIR图像去噪实战,用Transformer解决CNN纹理恢复不足问题
pytorch·cnn·transformer
forEverPlume3 分钟前
SQL如何统计分组内不重复值的数量_COUNT与DISTINCT结合应用
jvm·数据库·python
医学AI望远镜4 分钟前
医学检测结合自监督学习:两篇新论文解析3D头部CT与目标检测进展!
人工智能·计算机视觉·医学图像
ai产品老杨4 分钟前
深度架构解析:基于异构计算与 Docker 容器化的 AI 视频管理平台实战
人工智能·docker·架构
steven_yzx10 分钟前
自动驾驶相机坐标系转换2
人工智能·数码相机·自动驾驶
啦啦啦_999912 分钟前
案例之 逻辑回归_癌症预测
算法·机器学习·逻辑回归
丝雨_xrc13 分钟前
Claude Opus 4.7 新手快速上手指南
大数据·网络·人工智能
QYR-分析13 分钟前
全球汽车微孔锂电铜箔市场分析及发展机遇
大数据·人工智能·汽车