【2023·CANN训练营第一季】昇腾AI基础知识

50 阅读3分钟

昇腾AI基础知识

本文旨在介绍关于昇腾AI全栈的一些基础知识

昇腾AI全栈

image.png

昇腾AI全栈示意图

如上图,昇腾AI全栈可以分成四个大部分:

  • 应用使能层面

    此层面通常包含用于部署模型软硬件,例如APISDK部署平台模型库等等。

  • AI框架层面

    此层面包含用于构建模型训练框架,例如华为的MindSporeTensorFlowPytorch等。

  • 异构计算架构

    偏底层、偏通用的计算框架,用于针对上层AI框架的调用进行加速,力求向上支持多种AI框架,并在硬件上进行加速。

  • 计算硬件

    本层是AI计算的底座,有了强力的芯片及硬件设备,上层的加速才有实施的基础。

昇腾AI异构计算架构

华为公司面向计算机视觉、自然语言处理、推荐系统、类机器人等领域量身打造了基于“达芬奇(DaVinci)架构”的昇腾(Ascend)AI处理器,开启了智能之旅。

为提升用户开发效率和释放昇腾AI处理器澎湃算力,同步推出针对AI场景的异构计算架构CANN(Compute Architecture for Neural Networks) ,CANN通过提供多层次的编程接口,以全场景、低门槛、高性能的优势,支持用户快速构建基于Ascend平台的AI应用和业务。

昇腾AI异构计算架构(Compute Architecture for Neural Networks,CANN) 被抽象成五层架构,如下图所示。

image.png

异构计算架构

1. 昇腾计算语言接口

昇腾计算语言(Ascend Computing Language,AscendCL) 接口是昇腾计算开放编程框架,是对低层昇腾计算服务接口的封装。它提供**Device(设备)管理、Context(上下文)管理、Stream(流)管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理、Graph(图)管理*API库***,供用户开发人工智能应用调用。

2. 昇腾计算服务层

本层主要提供

  • 昇腾计算库

    例如神经网络(Neural Network,NN)库、线性代数计算库(Basic Linear Algebra Subprograms,BLAS)

  • 昇腾计算调优引擎库

    例如算子调优、子图调优、梯度调优、模型压缩以及AI框架适配器

3. 昇腾计算编译引擎

本层主要提供图编译器(Graph Compiler)TBE(Tensor Boost Engine)算子开发支持。前者将用户输入中间表达(Intermediate Representation,IR)的计算图编译成NPU运行的模型。后者提供用户开发自定义算子所需的工具。

4. 昇腾计算执行引擎

本层负责模型和算子的执行,提供如运行时(Runtime)执行内存分配、模型管理、数据收发等)、图执行器(Graph Executor)、数字视觉预处理(Digital Vision Pre-Processing,DVPP)、人工智能预处理(Artificial Intelligence Pre-Processing,AIPP)、华为集合通信库(Huawei Collective Communication Library,HCCL)功能单元

5. 昇腾计算基础层

本层主要为其上各层提供基础服务,如共享虚拟内存(Shared Virtual Memory,SVM)、设备虚拟化(Virtual Machine,VM)、主机-设备通信(Host Device Communication,HDC) 等。