【CANN训练营0基础赢满分秘籍】 直播课笔记 2023.3.16 零基础带你入门昇腾AI(上)

晟腾AI全栈架构

晟腾计算产业是基于晟腾系列处理器和基础软件构建的全栈AI计算基础设施、行业应用及服务,包括晟腾系列处理器、Atlas系列硬件、CANN(异构计算架构)、AI计算框架、应用使能、全流程开发工具链、管理运维工具、行业应用及服务等全产业链。
在这里插入图片描述

Atlas系列硬件

Atlas系列硬件基于晟腾系列AI处理器(其中Ascend 310用于推理场景,Ascend 910用于训练场景),通过模块、标卡、小站、服务器、集群等丰富的产品形态,打造面向“端、边、云”的全场景AI基础设施方案。
在这里插入图片描述

NPU介绍

晟腾AI处理器的计算核心主要由 AI Core构成,其基本结构如下图所示,包括了三种基础计算资源:矩阵计算单元、向量计算单元和标量计算单元。
在这里插入图片描述

CANN AI异构计算架构

在这里插入图片描述

PyTorch适配晟腾AI处理器方案

在这里插入图片描述

PyTorch模型迁移介绍

将基于PyTorch的训练脚本迁移到晟腾AI处理器上进行训练,目前有以下三种方式:自动迁移(推荐)、工具迁移、手工迁移,且迁移前要保证该脚本能在GPU、CPU上运行。

  • 自动迁移:训练时,在训练脚本中导入脚本转换库,导入后执行训练。训练脚本在运行的同时,会自动将脚本中的CUDA接口替换为晟腾AI处理器支持的NPU接口。整体过程为:边训练边转换。
  • 工具迁移:训练前,通过脚本迁移工具,自动将训练脚本中的CUDA接口替换为晟腾AI处理器支持的NPU接口,并生成迁移报告(脚本转换日志、不支持算子的列表、脚本修改记录)。训练时,运行转换后的脚本。整体过程为:先转换脚本,再进行训练。
  • 手工迁移:算法工程师通过对模型的分析、GPU与NPU代码的对比进而对训练脚本进行修改,以支持再晟腾AI处理器上执行训练。迁移要点如下:
    • 定义NPU为训练设备,或将适配GPU的接口切换至适配NPU的接口。
    • 多卡迁移需修改芯片间通信方式为hccl

自动迁移——只需一行代码

功能介绍

仅PyTorch1.8.1版本以上使用,自动迁移方式较简单,且修改内容最少,只需在训练脚本中添加引入库代码。

使用方法

	from torch_npu.contrib import transfer_to_npu

工具迁移——脚本转换工具(msFmkTransplt)

功能介绍

  • 脚本转换工具根据适配规则,对用户脚本给出修改意见并提供转换功能,提高了脚本迁移速度,降低了开发者的工作量。
  • 原脚本需要在GPU环境下且基于Python3.7及以上能够跑通,脚本转换后的执行逻辑与转换前保持一致。
  • 此脚本转换工具当前支持PyTorch1.5.0和1.8.1版本的训练脚本转换

执行转换

  • 进入脚本转换工具所在路径
    cd Ascend-cann-toolkit安装目录/ascend-toolkit/latest/tools/ms_fmk_transplt/
    
  • 执行脚本转换
    ./pytorch_gpu2npu.sh -i 原始脚本路径 -o 脚本迁移结果输出路径 -v 原始脚本框架版本
    
  • 完成脚本转换
    ├── xxx_msft/xxx_msft_multi              // 脚本迁移结果输出目录。
    │   ├── 生成脚本文件                 // 与迁移前的脚本文件目录结构一致。
    │   ├── msFmkTranspltlog.txt         // 脚本迁移过程日志文件,日志文件限制大小为1M,若超过限制	将分多个文件进行存储,最多不会超过10个。
    │   ├── unsupported_op.xlsx          // 不支持算子列表文件。
    │   ├── change_list.csv              // 修改记录文件。
    │   ├── run_distributed_npu.sh       // 多卡启动shell脚本。
    │   ├── ascend_function              // 如果启用了Replace Unsupported APIs参数,会生成该包含等价算	子的目录。
    │   ├── ascend_modelarts_function 
    │   │   ├── modelarts_path_manager.py    // 启用ModelArts参数,会生成该路径映射适配层代码文件。
    │   │   ├── path_mapping_config.py       // 启用ModelArts参数,会生成该路径映射配置文件。
    

手工迁移——Step1 迁移前的准备

在这里插入图片描述

手工迁移——Step2 单卡模型迁移

单卡迁移主要修改点:定义为NPU为训练设备,并将适配GPU的接口切换至适配NPU的接口
在这里插入图片描述
推荐使用写法二

手工迁移——Step3 多卡模型迁移

多卡代码迁移的主要修改点:除单卡迁移包含的3个修改要点外,在分布式场景下,还需要切换通信方式。
在这里插入图片描述

手工迁移——Extra 报错排查

在这里插入图片描述

Demo获取&运行

Modelzoo地址: https://gitee.com/ascend/ModelZoo-PyTorch
在这里插入图片描述

学习资源推荐

晟腾社区: https://www.hiascend.com/
晟腾入门课(PyTorch): https://www.hiascend.com/zh/developer/courses/detail/1627489957872480258
CANN:https://www.hiascend.com/zh/software/cann
开发者文档:https://www.hiascend.com/zh/document
晟腾论坛: https://www.hiascend.com/forum/
PyTorch:https://www.hiascend.com/software/ai-frameworks
ModelZool:https://www.hiascend.com/software/modelzoo

配套文档需要可以自取

配套文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星火飞花

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值