Ascend/pytorch

Ascend PyTorch adapter (torch_npu). Mirror of https://gitcode.com/Ascend/pytorch

解决的问题

TorchNPU 使 PyTorch 深度学习框架能够直接在华为 Ascend AI 处理器(NPU)上运行。它弥合了 PyTorch 的高级 API 与 Ascend NPU 特定硬件架构之间的差距,使开发者能够在不放弃 PyTorch 生态系统的情况下,利用 Ascend 的计算能力。

工作原理

它作为一个适配器插件,通过称为 PrivateUse1 的机制与 PyTorch 集成。提供多个核心功能模块:

  • 基础计算:实现 PyTorch 原生和自定义 API,以支持主流 AI 工作负载。
  • 分布式训练:使用 FSDP2 加速大规模训练,支持 AllReduce 和 AllGather 等集合通信原语以及 DTensor。
  • 图模式:结合动态图捕获、静态图优化和高效代码生成,加速训练和推理。
  • 内存管理:采用虚拟内存管理减少碎片化,并在分布式环境中优化跨流的内存重用。
  • 调试与调优:包含用于计算、内存和通信的性能分析工具,以及用于监控通信异常的 "WatchDog"。

适用人群

使用 PyTorch 并希望将模型迁移至或在华为 Ascend NPU 硬件上进行训练以提升性能的 AI 开发者和研究人员。

主要亮点

  • 无缝集成:继承成熟的 PyTorch 能力,同时增加 NPU 特定优化。
  • 分布式扩展:专为 FSDP2 和 DTensor 提供支持,实现高性能并行训练。
  • 性能优化:通过 NPUGraph 提供图模式,实现加速执行。
  • 硬件特定调优:提供深度性能分析和实时通信监控。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目