1. 课程概述及安排

2. AI应用开发课程

2.1 昇腾软硬件基础知识入门

2.1.1 AI基础软硬件平台

1. 处理器有310和910

在这里插入图片描述

2. AI Core

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.2 异构计算架构CANN

华为针对AI场景推出的异构计算架构,包含统一的编程语言、统一网络构图接口、高性能计算引擎以及算子库。
在这里插入图片描述

1. Ascend CL昇腾计算语言开发接口

昇腾计算开放编程框架,封装底层昇腾计算服务接口,提升编程易用性。

  • 应用开发接口: 提供深度学习推理计算,图像预处理,单算子加速计算能力
  • 图开发:提供统一网络构图接口(支持通过算子原型构图;支持通过Parser解析为IR图)
  • 算子开发:多种算子开发

在这里插入图片描述

2. 昇腾计算服务层

在这里插入图片描述

昇腾算子库AOL

基于深度学习构建的模型是由一个个计算单元组成,称这些计算单元为算子,负责不同的计算逻辑。算子在硬件上的加速计算构成了加速神经网络的核心。NN算子库占据了大部分,一般来说无需自行调试算子。

  • BLAS:进行基本向量、矩阵等基本线性代数运算
  • DVPP:媒体数据处理能力,图像、视频编解码等
  • AIPP:图片归一化等

DVPP和AIPP:二者可以独立 组合。组合时一般先使用DVPP对图像进行编解码,抠图,缩放等处理。但DVPP处理后的图像可能不满足分辨率要求,因此还要经过AIPP进行色域转化,抠图和填充处理

昇腾调优引擎AOE

AOE用于对模型、算子、子图等进行调优,提升网络能力。AOE调优过程包括生成调优策略、编译以及在运行环节上验证,形成闭环调优过程。

3. 昇腾计算编译层

CANN向上可以适配不同的AI框架

训练/在线推理服务应用

如下图所示Mindspore本身属于全栈,在该框架下训练的模型不需要经过图转化就可以在昇腾处理器上运行起来;而tf和torch则需要Adapter进行图转换,再经过图准备,图优化等操作得到可执行二进制文件。

轻量化推理应用(离线处理)

脱离AI框架的推理,支持MindSpore,tensorflow,caffe和onnx。pytorch训练的模型需要转换为onnx才能进行图转换。除MindSpore外的框架,都需要进行ATC转换得到CANN认识的中间表达(.om)。
在这里插入图片描述

如果CANN提供的算子不能满足需求,提供了TBE算子开发。

4. 昇腾计算执行层

图和算子编译得到的二进制结果,需要通过昇腾计算执行层才能在昇腾处理器上运行。

  • Graph Executor:图执行器,对整图进行推导,基于整图进行优化,进行图执行引擎的最优化分配
  • HCCL:实现参与并行计算中,所有计算单元的梯度聚合功能,为多机多卡训练提供高效地数据传输能力
  • AIPP:用于在AI Core上图形预处理。改变图像尺寸,转换图像格式,改变图像像素。
  • Runtime:为神经网络的任务分配提供资源管理通道。
    在这里插入图片描述
5. 昇腾计算基础层

在这里插入图片描述

2.1.3 CANN关键特性

在这里插入图片描述

1. 模型压缩工具AMCT
量化

支持量化、通道稀疏、张量分解、降低模型的数据量和计算量

量化:将权重和数据映射为整型,减少计算量

在这里插入图片描述

  • 量化感知:在重训练过程中进行量化(浮点->整型->浮点),用损失来模拟推理过程中的误差
张量分解和稀疏

张量分解:将一个大卷积分解为两个级联的小卷积以减少计算开销。需要重训练保证模型精度。
稀疏:用结构剪枝得到更小的网络模型。也需要进行重训练

在这里插入图片描述

2. ATC 模型编译

对于不能直接在昇腾AI处理器上推理的模型,需要使用ATC将它转换为适配昇腾AI处理器的om模型。

在这里插入图片描述

3. AOE 智能调优

模型在经过压缩(AMCT)和转换(ATC)和可以进行模型调优。存在生成调优策略、编译以及在运行环节上验证闭环优化过程。

调优:将计算和搬运充分并行、提高硬件的利用率和网络的计算性能
在这里插入图片描述

4. 开发流程

在这里插入图片描述

5. ACE 异构加速

CANN实现NPU,媒体加速器、CPU异构计算资源调度,满足业务端到端的计算需求。

6. 训练场景下模型开发

在这里插入图片描述

7. TensorFlow 模型迁移及训练

在这里插入图片描述

8. 多P训练

在这里插入图片描述

2.1.4 CANN算子开发

算法由算子组成,CANN提供大量算子,当模型中存在CANN不支持算子,或算子参数不满足要求则需要算子
在这里插入图片描述
AICore 和 AI CPU是主要的算子计算单元。

  • AI Core执行的算子称为TBE算子,执行矩阵、向量等计算,由python编写
  • AI CPU承担非矩阵类逻辑比较复杂的运算,基于C++

在这里插入图片描述
在这里插入图片描述

1. 算子开发流程

在这里插入图片描述
在这里插入图片描述

2. 问题定位定界 log

在这里插入图片描述

2.1.5 全流程开发工具链

在这里插入图片描述

2.1.6 开放生态

很牛就完事了
在这里插入图片描述

Logo

昇腾万里,让智能无所不及

更多推荐