昇腾 Ascend 概念澄清 Host、Device、AI core、AI CPU、DVPP、AIPP、AscendCL、AscendC
flyfish
Ascend C开发算子,偏低。
AscendCL 可以开发应用,可以分开发算子,可以开发图,编程离不开,较大的概念。
AI core、AI CPU、DVPP都属于计算资源。
Ascend C开发的算子运行在AI Core上。
AIPP用于在AI Core上完成图像预处理。

DVPP AIPP
从下图找到AscendCL的位置
AscendCL(Ascend Computing Language)是一套用于在昇腾平台上开发深度神经网络应用的C语言API库。
图中媒体数据处理
就是DVPP
AIcore、AI CPU、DVPP都属于计算资源
DVPP(Digital Vision Pre-Processing)DVPP是昇腾AI处理器内置的图像处理单元
AIPP(Artificial Intelligence Pre-Processing)人工智能预处理,在AI Core上完成数据预处理。

你问我AIPP算什么?我现在告诉你,你们DVPP不敢管的事,我们AIPP管。
先斩后奏,昇腾特许!这就是AIPP,够不够清楚。
AIPP、DVPP可以分开独立使用,也可以组合使用。
组合使用场景下,一般先使用DVPP对图片/视频进行解码、抠图、缩放等基本处理,
但由于DVPP硬件上的约束,DVPP处理后的图片格式、分辨率有可能不满足模型的要求,
因此还需要再经过AIPP进一步做色域转换、抠图、填充等处理。
执行层
AI Core
基于Ascend C开发的算子运行在AI Core
上
AIPP(Artificial Intelligence Pre-Processing)用于在`AI Core`上完成图像预处理,
包括色域转换(转换图像格式)、
图像归一化(减均值/乘系数)、
抠图(指定抠图起始点,抠出神经网络需要大小的图片)等
AI Core架构本质上是为了适应某个特定领域中的常见应用和算法,通常称为“特定域架构”(Domain Specific Architecture,DSA)
。
AI Core不同于传统的支持通用计算的CPU和GPU。
AI Core也不同于专用于某种特定算法的专用芯片ASIC(Application Specific Integrated Circuit)
。
昇腾AI处理器的计算核心主要由AI Core构成,从控制上可以看成是一个相对简化的现代微处理器的基本架构。
Ascend C
Ascend C编程语言设计的目标
- 高性能,能够写出高性能算子.
- 完备性,能够发挥芯片的能力.
- 易于编程:易于学习理解,符合编程习惯,简化编程模型,在编程语言层面解决3个关键问题:地址管理,流水同步,复杂指令映射问题。
- 易于调试
- 兼容性:跨代芯片的算子源码兼容,昇腾系列芯片升级时只需要对算子源码进行重新编译即可.
方案
-
C++编程,位置太高
满足2,3,5条件:表达完备,容易学习,跨片兼容无法满足1,4条件高性能和调试;目前编译器工业领域仍然无法解决达芬奇的3个关键技术难题。 -
目标编程语言? Ascend C
基于抽象架构,使用C++语法和一组编程API,实现自动流水同步,Buffer地址管理,解决3个关键技术问题,并提供CPU调试能力,可以基本满足1,2,3,4,5。 -
Intrinsic编程,位置太低不易用
满足1,2,4条件:表达完备,高性能,易于调试;无法满足3,5条件易用性,跨芯片兼容。
Ascend C架构组成
- AI Core算子编程使用C++和Ascend C类库API
- Ascend C类库基本API
计算: 向量计算APL,矩阵计算AP
搬运APl:DataCopy
同步API: Que API,Buffer AP! - Ascend C类库高阶API
Matmu
Conv
…
Ascend C算子编程是SPMD编程
- 算子程序被调用时启动N个实例运行每个运行实例称为block,他们之间唯一区别是运行时实例ID不同,block idx的值不同
- 所有block被调用时,都执行相同的代码,有相同的参数
- block概念类似线程(进程),block_idx类似ThreadID(进程ID)
- 算子程序需要使用block idx来进行数据并行,计算切分
AI CPU
AI CPU
负责执行昇腾AI处理器的CPU类算子(包括控制算子、标量和向量等通用计算)
你问我AI CPU算什么?我现在告诉你,你们AI core不敢管的事,我们AI CPU管。
先斩后奏,昇腾特许!这就是AI CPU,够不够清楚。
Host
指与Device相连接的X86服务器、ARM服务器,会利用Device提供的NN(Neural-Network )计算能力,完成业务。
Device
指安装了昇腾AI处理器的硬件设备,利用PCIe接口与Host侧连接,为Host提供NN计算能力。