HiSpark AI

- 软件资料
  - AMCT模型压缩工具用户指南
    - 学习向导
    - 概述
    - 准备环境
    - 快速入门
    - AMCT（PyTorch）
    - AMCT（ONNX）
    - AMCT（TensorFlow）(不支持)
    - AMCT（Caffe）(不支持)
    - 命令行参数说明
    - 样例列表
    - FAQ
    - 附录
  - ATC离线模型编译工具用户指南
    - 学习向导
    - ATC简介
    - 准备环境
    - 快速入门
    - 初级功能
    - 高级功能
    - 参数说明
    - 专题
    - 参考
    - FAQ
  - HiSpark Studio AI for VS Code使用指南
    - 前言
    - HiSpark Studio AI简介
    - 数据准备与环境搭建
    - Hi3863操作指南
    - Hi3322操作指南
  - HiSpark.AI API开发指南
    - 前言
    - 简介
    - 接口调用流程介绍
    - HiSpark.AI API参考
    - 样例使用指导
    - FAQ
  - HiSpark.AI 快速入门指南
    - 前言
    - 简介
    - 开发板准备
    - 开发环境准备
    - 样例运行
    - 常见错误
  - HiSpark.AI 转换工具使用指南
    - 前言
    - Converter_lite工具使用环境搭建
    - 快速入门
    - 基础知识
    - 初级功能
    - 参数说明
    - 算子规格参考
    - 专题
  - Nano AI应用开发指导书
    - Nano AI应用界面
    - Nano 芯片支持数据类型和典型模型性能
    - Nano AI资料清单
    - Nano AI应用开发流程
    - FAQ
  - 应用开发指南
    - 简介
    - 准备环境
    - 编程接口与调用流程
    - 初始化与去初始化
    - 运行时资源管理
    - 模型管理
    - 更多特性
    - 应用编译&运行
    - 精度/性能优化
    - acl API参考
    - FAQ案例集
    - 附录
  - 开发环境安装指南
    - 简介
    - 获取软件包
    - 安装前准备
    - 安装
    - 常用操作
    - FAQ
    - 附录
    - Compiler的库文件存在路径
  - 术语和缩略语
    - 术语和缩略语
  - 模型评估脚本使用指南
    - 简介
    - 使用前准备
    - 使用步骤
  - 精度调试工具用户指南
    - 简介
    - 使用前准备
    - GPU vs NPU（TensorFlow离线推理）-IPV350不支持
    - GPU vs NPU（ONNX离线推理）-IPV350不支持
    - NPU vs NPU（离线推理）
    - 比对结果说明
    - 比对结果分析
    - 扩展功能
    - 附录
  - 驱动日志说明文档
    - 简介
    - 日志分类
    - 异常场景
    - 典型案例

# 术语和缩略语

A-E

术语/缩略语 | 含义
--- | ---
A
AccumulatedRelativeError | 累积相对误差算法。 精度比对算法之一，计算结果取值范围为0到无穷大，值越接近于0，表明越相近，值越大，表明差距越大。
Advisor | 专家系统。 用于聚焦模型和算子的性能调优Top问题，识别性能瓶颈，重点构建模型和算子瓶颈分析并提供优化推荐，支撑开发效率提升的工具。
ADK | Ascend Development Kit，解决方案提供的开发者套件包。 通过安装相关软件包后获得开发必需的API、库、工具链等开发组件。
AI | Artificial Intelligence，人工智能。 研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
AI CPU | 昇腾AI处理器上提供的用于通用计算的CPU，主要负责AI CPU算子计算和确定性任务的调度。
AIPP | Artificial Intelligence Pre-Processing，AI预处理。AIPP用于在AI Core上完成图像预处理，包括改变图像尺寸、色域转换（转换图像格式）、减均值/乘系数（改变图像像素），数据处理之后再进行真正的模型推理。
AMCT | Ascend Model Compression Toolkit，昇腾模型压缩工具。 是一个针对昇腾芯片亲和的深度学习模型压缩工具包，提供量化、张量分解等多种模型压缩特性，压缩后模型体积变小，部署到NPU IP加速器上后可使能低比特运算，提高计算效率，达到性能提升的目标。
AOE | Ascend Optimization Engine，昇腾调优引擎。 用于封装调优过程中的ATC编译及AscendCL运行服务接口，提供并行调优功能。
AOL | Ascend Operator Library，昇腾算子库。
AscendCL | Ascend Computing Language，昇腾编程语言。 提供运行时管理、单算子调用、模型推理、媒体数据处理等API，能够实现利用底层硬件计算资源，在CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等。
Ascend IR | Ascend Intermediate Representation，昇腾AI处理器专用的、用于表达计算流程的抽象数据结构。在本文档中，若无特殊说明，IR默认指代Ascend IR。
ATC | Ascend Tensor Compiler，昇腾张量编译器。 通过ATC，可以将开源框架的网络模型（如Caffe、TensorFlow等）转换成 NPU IP加速器支持的离线模型。模型转换过程中可以实现算子调度的优化、权值数据重排、内存使用优化等 通过ATC，可以进行算子编译。
B
Batch | 模型训练的一次迭代（即一次梯度更新）中使用的样本集。
Batch size | 模型迭代一次，使用的样本集的大小。
BIU | Bus Interface Unit，总线接口单元。AI Core与总线交互的接口。
C
CANN | Compute Architecture for Neural Networks，异构计算架构。 CANN是昇腾针对AI场景推出的异构计算架构，对上支持多种AI框架，对下服务AI处理器与编程，发挥承上启下的关键作用，是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景，提供高效易用的编程接口，支持用户快速构建基于昇腾平台的AI应用和业务。
CNN | Convolutional Neural Network，卷积神经网络。 是一种前馈神经网络，人工神经元可以响应周围单元，可以进行大型图像处理。
CosineSimilarity | 余弦相似度算法。 精度比对算法之一，计算结果取值范围为[-1,1]，比对的结果如果越接近1，表示两者的值越相近，越接近-1意味着两者的值越相反。
Cube | AI Core上的Cube计算单元，负责执行矩阵运算。Cube每次执行可完成两个float16类型的16x16矩阵的乘法操作。
D
DataFlow | 用于描述完整的计算流，该计算流由一个或多个计算处理点采用数据队列以数据驱动方式组成。
DDP | Distributed Data Parallel，分布式数据并行。
DDR | Double Data Rate，双倍数据速率。 严格的说DDR应该叫DDR SDRAM，人们习惯称为DDR，其中，SDRAM是Synchronous Dynamic Random Access Memory的缩写，即同步动态随机存取存储器。而DDR SDRAM是Double Data Rate SDRAM的缩写，是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的，仍然沿用SDRAM生产体系，因此对于内存厂商而言，只需对制造普通SDRAM的设备稍加改进，即可实现DDR内存的生产，可有效的降低成本。 与传统的单数据速率相比，DDR技术实现了一个时钟周期内进行两次读/写操作，即在时钟的上升沿和下降沿分别执行一次读/写操作。
DL | Deep Learning，深度学习。 是机器学习的分支，是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。
DVPP | Digital Vision Pre-Processing，数字视觉预处理。 提供对特定格式的视频和图像的进行解码、缩放等预处理操作，以及对处理后的视频、图像进行编码再输出的能力。
单算子比对 | 精度比对工具里Tensor比对的一种方式。选择网络模型中一个或多个参与计算的算子进行精度比对。
E
ECC | Error Checking and Correction，错误检查和纠错技术。 该技术在原来的数据位中增加校验位，通过检验位来检测数据错误，并具备错误纠正能力。
EMMC | Embedded Multimedia Card，多媒体存储卡。 是一种新的存储技术，外部提供的接口和SD卡接口类似，内部存储介质为Flash，并且内建坏块管理系统。
Epoch | 数据集的一次完整遍历。

F-J

术语/缩略语 | 含义
--- | ---
F
FLOPS | Floating-Point Operations Per Second，每秒所执行的浮点运算次数。 常被用来估算电脑的执行效能，尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S，代表秒，而不是复数，所以不能省略掉。
Framework | NN框架执行引擎。 包括开源主流框架TensorFlow、PyTorch、Caffe等。系统针对开源主流框架提供适配插件，从而可利用NPU IP加速器加速计算能力。
G
GDAT | Gradient Auto Tuning，梯度自动调优。 GDAT是通过最大化反向计算与梯度聚合通信并行度，缩短通信拖尾时间的优化工具。分布式训练场景下，各个设备之间计算梯度后执行梯度聚合操作，梯度聚合算子的融合策略会影响反向计算结束后的通信拖尾时间，从而影响集群训练的性能和线性度。
GE | Graph Engine，图引擎。 提供了Graph/Operator IR作为安全易用的构图接口集合，用户可以调用这些接口构建网络模型，设置模型所包含的图、图内的算子、以及模型和算子的属性。
Global Memory/GM | 设备端的主内存，AI Core的外部存储，用于存储大规模数据，但需要优化访问模式以提升性能。
GPU | Graphics Processing Unit，图形处理器。 GPU是一种专门在个人电脑、工作站、游戏机和一些移动设备（如平板电脑、智能手机等）上做图像和图形相关运算工作的微处理器。
H
HDC | Host Device Communication，主机设备通信。 用于Host和Device之间通信模块，在Host和Device里面均有部署。
HDR | High Dynamic Range，高动态范围。 摄影术语，用来描述媒体应用，如数字影像和数字音频。
I
IFU | Instruction Fetch Unit，取指单元。 记录每一次icache访问情况
IPC | IP Camera，网络摄像机。
ISP | Image Signal Processing，图像信号处理。 主要用来对前端图像传感器输出信号处理的单元，以匹配不同厂商的图像传感器。
IMU | I/O Board Management Unit，IO板管理单元。
J
JPEGD | JPEG Decoder，JPEG图像解码器。 提供对JPEG格式的图像进行解码的能力。
JPEGE | JPEG Encoder，JPEG图像编码器。 提供对图像进行编码输出为JPEG格式的能力。
精度比对 | 通过NPU运行生成的dump数据与Ground Truth（基于GPU/CPU运行生成的npy数据）进行比对。实现自主研发算子与业界标准算子运算结果的差异比较。

K-O

术语/缩略语 | 含义
--- | ---
K
KullbackLeiblerDivergence | KL散度算法。 精度比对算法之一，计算结果取值范围为0到无穷大。KL散度越小，真实分布与近似分布之间的匹配越好。
L
L0A Buffer | AI Core内部物理存储单元，通常用于存储矩阵计算的左矩阵，与逻辑内存AscendC::TPosition::A2相对应。
L0B Buffer | AI Core内部物理存储单元，通常用于存储矩阵计算的右矩阵，与逻辑内存AscendC::TPosition::B2相对应。
L0C Buffer | AI Core内部物理存储单元，通常用于存储矩阵计算的结果，与逻辑内存AscendC::TPosition::CO1相对应。
L1 Buffer | AI Core内部物理存储单元，空间相对较大，通常用于缓存矩阵计算的输入数据。 矩阵计算的输入一般需要从GM搬运到L1 Buffer，然后分别搬运到L0A Buffer和L0B Buffer。L1Buffer与逻辑内存AscendC::TPosition::A1、AscendC::TPosition::B1相对应。
LLC | Last Level Cache，最后一级Cache。 在访问内存之前调用的共享最高级别缓存通常称为最后一级缓存（LLC）。
LLM | Large Language Model，大语言模型。 大语言模型是一种语言模型，由具有许多参数（通常数十亿个权重或更多）的人工神经网络组成，使用自监督学习或半监督学习对大量未标记文本进行训练。
Local Memory | AI Core的内部存储，包括L1 Buffer、L0A Buffer、L0B Buffer、L0C Buffer、Unified Buffer等存储单元。
Loss | 损失，预测值与实际值的偏差，深度学习用于判断模型好坏的一个标准。
M
MaxAbsoluteError | 最大绝对误差算法。 精度比对算法之一，计算结果取值范围为0到无穷大，值越接近于0，表明越相近，值越大，表明差距越大。
MaxRelativeError | 最大相对误差算法。 精度比对算法之一，计算结果取值范围为0到无穷大，值越接近于0，表明越相近，值越大，表明差距越大。
MeanAbsoluteError | 平均绝对误差算法。 精度比对算法之一，计算结果取值范围为0到无穷大。 MeanAbsoluteError趋于0，RootMeanSquareError趋于0，说明测量值与真实值越近似。 MeanAbsoluteError趋于0，RootMeanSquareError越大，说明存在局部过大的异常值。 MeanAbsoluteError越大，RootMeanSquareError等于或近似MeanAbsoluteError，说明整体偏差越集中。 MeanAbsoluteError越大，RootMeanSquareError越大于MeanAbsoluteError，说明存在整体偏差，且整体偏差分布分散。 不存在以上情况的例外情况，因为RMSE ≥ MAE恒成立。
MeanRelativeError | 平均相对误差算法。 精度比对算法之一，计算结果取值范围为0到无穷大，值越接近于0，表明越相近，值越大，表明差距越大。
MoE | Mixture-of-Experts，混合专家系统，是一种用于训练万亿参数量级模型的技术。MoE将预测建模任务分解为若干子任务，在每个子任务上训练一个专家模型（Expert Model），开发一个门控模型（Gating Model），该模型会根据输入数据分配一个或多个专家，最终综合多个专家计算结果作为预测结果。
MTE1 | Memory Transfer Engine 1，AI Core的数据传递引擎，负责将数据从L1 Buffer搬运到L0A Buffer或L0B Buffer等。注意：不同硬件能力可能有差异。
MTE2 | Memory Transfer Engine 2，AI Core的数据传递引擎，负责将数据从GM搬运到L1 Buffer、L0A Buffer、L0B Buffer、Unified Buffer等。注意：不同硬件能力可能有差异。
MTE3 | Memory Transfer Engine 3，AI Core的数据传递引擎，负责将数据从Unified Buffer搬运到Global Memory、L1 Buffer等。注意：不同硬件能力可能有差异。
N
NCS | Neural Compute Server，神经计算服务器。 NCS封装AscendCL运行服务接口，可接受外部远程上板请求，并且返回对应的性能数据。
NIC | Network Interface Controller，网络接口控制器。 也称为网络接口卡，网络适配器，LAN适配器，以及类似术语。是将计算机连接到计算机网络的计算机硬件组件。
NN | Neural Network，神经网络。 在机器学习和认知科学领域，是一种模仿生物神经网络的结构和功能的数学模型或计算模型。
NPU | Neural-Network Processing Unit，神经网络处理器单元。采用“数据驱动并行计算”的架构，专门用于处理人工智能应用中的大量计算任务。
O
OP | 算子（Operator，简称OP），是深度学习算法中执行特定数学运算或操作的基础单元，例如激活函数（如ReLU）、卷积（Conv）、池化（Pooling）以及归一化（如Softmax）。通过组合这些算子，可以构建神经网络模型。
OPAT | Operator Auto Tuning，算子自动调优。 OPAT是一种提升算子性能的优化器。AOE将一张整图输入给OPAT，OPAT内部进行算子融合，将融合得到的图进行算子粒度切分，针对每一个融合算子子图生成不同的算子调优策略，从而实现最优的算子性能，并将得到的最优策略保存在算子知识库。
OPP | Operator Package，算子库。

P-T

术语/缩略语 | 含义
--- | ---
P
PCIe | Peripheral Component Interconnect Express，一种串行外设扩展总线标准，常用于计算机系统中的外设扩展。
PMU | Performance Monitor Unit，性能监视单元。 PMU是CPU提供的一个单元，属于硬件的范畴。PMU通过访问相关的寄存器能读取到CPU的一些性能数据。
PNGD | PNG Decoder，PNG图像解码器。 提供对PNG格式的图像进行解码的能力。
PTQ | Post-Training Quantization，训练后量化。 在模型训练结束之后进行的量化，对训练后模型中的权重由浮点数量化到低比特整数，并通过少量校准数据基于推理过程对数据（activation）进行校准量化，从而尽可能减少量化过程中的精度损失
PWM | Pulse Width Modulation，脉冲宽度调制。 脉冲载波的脉冲持续时间脉宽随调制波的样值而变的脉冲调制方式。
Q
QAT | Quantization-Aware Training，量化感知训练。 在重训练过程中引入量化，通过重训练提高模型对量化效应的能力，从而获得更高的量化模型精度的一种量化方式。
R
RDMA | Remote Direct Memory Access，远程直接内存访问技术，它将数据直接从一台机器的内存传输到另一台机器，无需双方操作系统的介入，一般指可以跨过网络的内存访问方式。
RelativeEuclideanDistance | 欧氏相对距离算法。 精度比对算法之一，计算结果取值范围为0到无穷大，值越接近于0，表明越相近，值越大，表明差距越大。
RoCE | RDMA over Converged Ethernet，承载在融合以太网上的RDMA技术，即跨越以太网的RDMA通信方式。
RootMeanSquareError | 均方根误差算法。 精度比对算法之一，计算结果取值范围为0到无穷大。 MeanAbsoluteError趋于0，RootMeanSquareError趋于0，说明测量值与真实值越近似。 MeanAbsoluteError趋于0，RootMeanSquareError越大，说明存在局部过大的异常值。 MeanAbsoluteError越大，RootMeanSquareError等于或近似MeanAbsoluteError，说明整体偏差越集中。 MeanAbsoluteError越大，RootMeanSquareError越大于MeanAbsoluteError，说明存在整体偏差，且整体偏差分布分散。 不存在以上情况的例外情况，因为RMSE ≥ MAE恒成立。
Runtime | 为应用程序提供了针对NPU IP加速器的内存管理、Device管理、Stream管理、Event管理、Kernel加载与执行等功能。
S
Scalar | AI Core上的标量计算单元，主要负责标量数据运算和对其他单元（如MTE数据搬运单元、Vector矢量计算单元、Cube矩阵计算单元）的指令发射。
SDMA | System Direct Memory Access，系统直接内存访问技术，简称DMA，允许外围设备直接访问系统内存，而不需要CPU的干预。
SGAT | SubGraph Auto Tuning，子图自动调优。 SGAT是一种提升子图性能的优化器。一张完整的网络，会被拆分成多个子图。针对每一个子图，通过SGAT生成不同的调优策略。SGAT的调优算法通过获取每个迭代的调优策略性能数据，找到最优的调优策略，从而实现对应子图的最优性能。
SPI | Serial Peripheral Interface，串行外设接口。 SPI总线系统是一种同步串行外设接口，它可以使MCU（Microcontroller Unit，微控制单元）与各种外围设备以串行方式进行通信以交换信息。
StandardDeviation | 标准差算法。 精度比对算法之一，计算结果取值范围为0到无穷大。标准差越小，离散度越小，表明越接近平均值。
STARS | System Task and Resource Scheduler，系统任务和资源调度器。
T
Tensor | Tensor张量是算子计算数据的容器，是N维数据结构，最常见的是标量、矢量或矩阵。张量的元素可以包含整数值、浮点值或字符串值。
Tensor比对 | 张量比对，两个张量之间进行不同算法评价指标的数据比对操作，支持整网比对和单算子比对。
图模式 | 图模式是神经网络模型的一种运行模式，在图模式下用户首先将模型的计算过程构造成一张图，然后通过GE图引擎下发到昇腾硬件执行。该图模式下，可通过计算图优化、多流并行、内存复用和模型下沉等技术手段，加速模型执行效率，减少模型内存占用。

U-Z

术语/缩略语 | 含义
--- | ---
U
Unified Buffer/UB | AI Core内部存储单元，主要用于矢量计算，与逻辑内存AscendC::TPosition::VECIN、AscendC::TPosition::VECOUT、AscendC::TPosition::VECCALC相对应。
UDF | User Defined Function，用户自定义功能。
V
VDEC | Video Decoder，视频解码器。 提供对特定格式的视频进行解码的能力。
VENC | Video Encoder，视频编码器。 提供将图片编码为特定格式视频的能力。
Vector | AI Core上的Vector计算单元，负责执行矢量运算。其算力低于Cube，但灵活度高于Cube（如支持数学中的求倒数，求平方根等）。
VPC | Vision Preprocessing Core，视觉预处理核。 处理YUV、RGB等格式的图片，包括缩放、抠图、图像金字塔、色域转换等。
Y
YUV | Luminance-Chrominance，明亮度-带宽-色度。 Y表示明亮度（Luminance），即灰阶值，U和V表示色度（Chrominance），描述影像色彩及饱和度，用于指定像素的颜色。
Z
整网比对 | 精度比对工具里Tensor比对的一种方式。对网络模型中参与计算的所有算子进行精度比对。