目录
前言
一、昇腾AI基础知识介绍
1.1. 全栈全场景解决方案
1.2.CANN逻辑框架
二、昇腾平台PyTorch模型迁移
2.1 PyTorch全景
2.2.PyTorch模型迁移例
前言
本文主要是记录一下新手入门的一些基础知识,因为之前对昇腾AI有所了解,所以还是主要记录CANN逻辑框架和PyTorch全景的一些笔记。
一、昇腾AI基础知识介绍
1.1. 全栈全场景解决方案
老师先介绍了全站全场景的框架(如图)
1.2.CANN逻辑框架
CANN是异构计算架构,能够释放其硬件的澎湃性能,也是各种AI框架的核心底层。
华为公司面向计算机视觉、自然语言处理、推荐系统、类机器人等领域量身打造了基于“达芬奇(DaVinci)架构”的昇腾(Ascend)AI处理器,开启了智能之旅。为提升用户开发效率和释放昇腾AI处理器澎湃算力,同步推出针对AI场景的异构计算架构CANN(Compute Architecture for Neural Networks),CANN通过提供多层次的编程接口,以全场景、低门槛、高性能的优势,支持用户快速构建基于Ascend平台的AI应用和业务。
昇腾AI异构计算架构(Compute Architecture for Neural Networks,CANN)被抽象成五层架构,如下图所示。
二、昇腾平台PyTorch模型迁移
目标
。了解Pytorch是如何适配到昇腾平台上的
。了解Davinci硬件架构以及什么样的模型在昇腾上更亲和
。了解软件术语和Ascend-Pytorch的安装步骤
。了解如何将原生Pytorch的模型代码是如何适配到Ascend-Pytorch
2.1 PyTorch全景
在线对接适配方案特性及优点:
- 最大限度的继承PyTorch框架动态图的特性。 最大限度的继承原生PyTorch上的使用方式,用户在移植到昇腾AI处理器设备上时,在开发方式和代码重用方面做到最小的改动。
- 最大限度的继承PyTorch原生的体系结构保留框架本身出色的特性,比如自动微分、动态分发、Debug、Profiling、Storage共享机制以及设备侧的动态内存管理等。
- 扩展性好。在打通流程的通路之上,对于新增的网络类型或结构,只需涉及相关计算类算子的开发和实现。框架类算子,反向图建立和实现机制等结构可保持复用。
pytorch能够使得显存占用更小,并且训练的速度提升为原来的2-4倍。
并且对于用户来说,尽量不需要改动代码,gpu和npu的的迁移顺畅。
NPU的介绍
2.2.PyTorch模型迁移例子
由于后面我报名的是进阶版,这里的模型迁移例子主要是新手班的内容,各位看官需要的话可以食用新手班的笔记。
主要是三种方法:
- 手工迁移
- 脚本转换工具(msFmkTransplt)
- 自动迁移(推荐)