华为CANN训练营笔记[1]——架构介绍

1. 课程概述及安排

2. AI应用开发课程

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

2.1.1 AI基础软硬件平台

1. 处理器有310和910

2. AI Core



华为CANN训练营笔记[1]——架构介绍_第1张图片

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训练营笔记[1]——架构介绍_第2张图片

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

4. 昇腾计算执行层

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

  • Graph Executor:图执行器,对整图进行推导,基于整图进行优化,进行图执行引擎的最优化分配
  • HCCL:实现参与并行计算中,所有计算单元的梯度聚合功能,为多机多卡训练提供高效地数据传输能力
  • AIPP:用于在AI Core上图形预处理。改变图像尺寸,转换图像格式,改变图像像素。
  • Runtime:为神经网络的任务分配提供资源管理通道。
    华为CANN训练营笔记[1]——架构介绍_第3张图片

5. 昇腾计算基础层

华为CANN训练营笔记[1]——架构介绍_第4张图片

2.1.3 CANN关键特性

华为CANN训练营笔记[1]——架构介绍_第5张图片

1. 模型压缩工具AMCT

量化

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

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

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

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

2. ATC 模型编译

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

华为CANN训练营笔记[1]——架构介绍_第6张图片

3. AOE 智能调优

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

调优:将计算和搬运充分并行、提高硬件的利用率和网络的计算性能
华为CANN训练营笔记[1]——架构介绍_第7张图片

4. 开发流程

华为CANN训练营笔记[1]——架构介绍_第8张图片

5. ACE 异构加速

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

6. 训练场景下模型开发

华为CANN训练营笔记[1]——架构介绍_第9张图片

7. TensorFlow 模型迁移及训练

华为CANN训练营笔记[1]——架构介绍_第10张图片

8. 多P训练

华为CANN训练营笔记[1]——架构介绍_第11张图片

2.1.4 CANN算子开发

算法由算子组成,CANN提供大量算子,当模型中存在CANN不支持算子,或算子参数不满足要求则需要算子
华为CANN训练营笔记[1]——架构介绍_第12张图片
AICore 和 AI CPU是主要的算子计算单元。

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

华为CANN训练营笔记[1]——架构介绍_第13张图片

1. 算子开发流程

华为CANN训练营笔记[1]——架构介绍_第14张图片
华为CANN训练营笔记[1]——架构介绍_第15张图片

2. 问题定位定界 log

华为CANN训练营笔记[1]——架构介绍_第16张图片

2.1.5 全流程开发工具链

华为CANN训练营笔记[1]——架构介绍_第17张图片

2.1.6 开放生态

很牛就完事了

你可能感兴趣的:(CANN,Ascend,人工智能,深度学习,华为云)