第二章 PyTorch模型迁移&调优
目标
- 了解 Pytorch 是如何适配到昇腾平台上的
- 了解 Davinci 硬件架构以及什么样的模型在昇腾上更亲和·了解软件术语和 Ascend - Pytorch 的安装步骤
- 了解如何将原生 Pytorch 的模型代码是如何适配到 Ascend - Pytorch
前置知识
- 对原生 Pytorch 的软件架构有一定了解.
- 对昇腾芯片及 CANN 软件栈有一定了解·
- 对原生 Pytorch的使用方法有一定了解·
- 对混合精度训练有一定了解
软件架构及Ascend-Pytorch(1.8)安装
概念 | 描述 |
---|---|
CANN | 统一的异构计算框架,提供了计算能力 |
PTAdapter | 使Pytorch适配昇腾AI处理器系列的软件包 |
Driver+Firmware | 驱动包和固件包 |
A+X(Ascend+X86) | 昇腾卡+X86CPU的服务器形态 |
A+K(Ascend+KunPeng(ARM)) | 昇腾卡+鲲鹏CPU的服务器形态 |
参考链接
https://www.hiascend.com/software/ai-frameworks
前提条件
1.已完成 CANN 开发或运行环境的安装,确保相应 os 依赖(如 python 、 numpy 等)已安装完成。
2.需确保 CMake >=3.12.0, gcc >=7.3.0
3.建议用户直接在安装环境中进行编译。如果在其他环境中编译,需要编译环境和安装环境的 OS 版本、依赖版本保持一致。
步骤:
1.安装依赖:pip3 install pyyaml wheel
2.安装官方 torch 包:-pip3 install torch ==1.8.1+ cpu
3.编译生成 pytorch 件的二进安装包。
git clone -- b maste https://gitee.com/ascend/pytorch.git
-cd pytorch && bash ci / build . sh - python -3.7
4.安装插 torchnpu 包
-pip3 install - upgrade dist / torch _ npu -1.8.1- xooxwhl
5.安装混合精度模块(可选)
-https://gitee.com/ascend/apex
Pytorch模型迁移——三种方法
- 手工迁移
- 脚本转换工具(msFmkTransplt)
- 自动迁移(推荐)
Pytorch模型迁移——手工迁移
Pytorch模型迁移——脚本转换工具迁移
Pytorch模型迁移——自动迁移
本章总结
介绍了 Pytorch 在昇腾上的适配原理
-
新增 npu 的 device 类型,开辟新的路径
-
通过 npu 的 device 类型,结合适配层,调用 npu 底层计算能力
-
通过适配 npu 上的内存管理和流管理机制等,使能任务运行
-
通过适配 HCCL 通讯协议,使能分布式训练
介绍了芯片硬件架构及相应的影响
介绍了昇腾的软件栈及 Pytorch 的安装向导 PyTorch 模型迁移三种方法
- 手工迁移(1.前期准备2.单 P 迁移3.多 P 迁移4.Debug)
- 脚本转换工具迁移
- transfer _ to _ npu 自动迁移(推荐)