Ascend Extension for PyTorch插件是基于昇腾的深度学习适配框架,使昇腾NPU可以支持PyTorch框架,为PyTorch框架的使用者提供昇腾AI处理器的超强算力。
该插件最大限度地继承了PyTorch框架的动态图特性、原生开发方式以及体系结构,使得开发者在使用Ascend Extension for PyTorch时,几乎无需改变原有的开发习惯和代码风格。开发者可以继续使用熟悉的PyTorch接口和函数,只需在指定设备为昇腾NPU的情况下,即可将模型无缝迁移到昇腾平台上进行训练,大大降低了开发成本和迁移难度。
随着深度学习领域蓬勃发展,数据规模不断膨胀,模型复杂度的持续攀升,对计算平台的挑战日益增长。面对这些挑战,Ascend Extension for PyTorch从内存资源优化、通信性能优化、计算性能优化、辅助报错定位等方面精心打造了一系列独特的特性。为用户提供了一个高效、便捷的开发工具,具体特性请参见表1。
特性类别 |
特性名称 |
特性说明 |
---|---|---|
内存资源优化 |
使PyTorch自己管理虚拟内存和物理内存的映射。 |
|
支持训练过程中内存溢出时生成设备内存快照。 |
||
从so文件加载自定义NPU内存分配器。 |
||
多流情况下,优化内存使用情况,提高内存复用率。 |
||
通信性能优化 |
torch_npu_run是torchrun在大集群场景的改进版,提升集群建链性能。 |
|
支持以ranktable文件配置方式建立通信域。 |
||
计算性能优化 |
通过设置粗/细粒度绑核,优化Ascend Extension for PyTorch下发性能。 |
|
辅助报错定位 |
基于通信流做静默数据错误的特征值检测,识别精度问题。 |
|
在不影响大模型训练性能和精度的前提下,能快速稳定发现错误。 |
||
参数配置 |
可以针对不同的通信域配置不同的HCCL配置。 |