昇腾AI基础知识
本文旨在介绍关于昇腾AI全栈的一些基础知识
昇腾AI全栈
昇腾AI全栈示意图
如上图,昇腾AI全栈可以分成四个大部分:
-
应用使能层面
此层面通常包含用于部署模型的软硬件,例如
API
、SDK
、部署平台
,模型库
等等。 -
AI框架层面
此层面包含用于构建模型的训练框架,例如华为的
MindSpore
、TensorFlow
、Pytorch
等。 -
异构计算架构
偏底层、偏通用的计算框架,用于针对上层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)
被抽象成五层架构,如下图所示。
异构计算架构
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)
等。