---
tags: [CANN]
doc_type: knowledge-note
返回目录: "[[计算机系/昇腾与CANN/大模型与算子专题学习导航|大模型与算子专题学习导航]]"
---

# day1昇腾AI产业生态与CANN架构基础

> [!note] 课堂随记
> 保留课堂顺序、个人表达和未完成的问题，仅修复明确的错字与代码格式。以下速记含待核实说法，学习时对照成熟专题。

## 课程目标与内容提纲

一生一平台、一生一模型、一生一竞赛

- 人工智能基础——模型、计算图、算子、张量
- 什么是 NPU——Davinci 架构、AI Core（Cube、vector、scalar、）多核并行
- 什么是 CANN 软件栈、一行代码的完整流程，CANN vs CUDA

- AI 的本质（模型=参数化函数、计算图=算子组合）
- NPU 架构（Davinci）
- CANN 软件栈（torch_npu 模型适配到驱动）
- 张量运算、矩阵乘法、Batch 运算、卷积加速

## 人工智能发展与概念

- 图灵测试
- 图灵机
- 文本背后还隐含着复杂的语义、文化、知识以及情感等、图灵测试是人工智能与一个充分条件，它本身没受识试图定义人工智能的范畴。

人工智能发展：从“感知理解世界”向“生成创造世界”延展

人工智能 ⊃ 机器学习 ⊃ 深度学习

- 机器学习：人工智能的一个实现途径，设计和分析算法模型，让计算机能够模拟人类
- 特点 1:特征由人工设计、可解释
- 特点 2:数据规模相对较小

深度学习：机器学习的特例，利用深度的神经网络，模拟人脑来解释数据

- 特点 1:从数据中直接学习、黑盒
- 特点 2:数据规模巨大

人工智能核心三要素：数据+算法+算力

算力：衡量计算设备执行算法，处理数据的能力关系到系统的运行效率和任务完成速度

算法：解决问题、实现特定功能的有序指令

数据：用来拟合的数据

算法理论基础：业务抽象成数据模型的表达式

## 建模、训练与推理

- 建模
- 训练
- 微调
- 推理

- 模拟 神经元：
- 突触强度、累积刺激、激发状态
- 权重、激活、状态
- 生物->人工神经元
- 基于前向传播和后向传播的神经网络开启了现代 AI 的大发展

- ImageNet 取得了巨大突破。被广泛认为现代 AI 的开始
- 海量数据+神经网络算法+大算力=现代 AI

- 开放态
- AI 训练：通过大量数据学习“规则”形成模型/算法
- 学生：学习、训练

- 部署态：
- AI 推理：利用已经训练好的“规则”，完成具体任务
- 参加比赛、考试

关注点：模型能力、数据质量、训练成本

- 模型训练出的模型/算法：进行应用或服务网
- 关注点：推理质量、成本时延、

- 从以算法为中心到以数据为中心，是 AI 大模型所带来的重大范式转移
- 数据的质量，决定了算法性能的上限，算法本身的设计，决定模型多少接近这个上限

## 计算图、算子与张量

- 深度学习把模型画成一张计算图（有向无环图）——用图的方式表示“谁算什么、数据怎么流”
- 由一个个计算单元组成，我们把这些计算单元作为算子（operator，OP），在网络模型中，代表一个数学公式

算子的名称

- 用于标志网络中的某个算子，如 conv 1/conv 2/pool 1
- conv 表示一次卷积运算
- 算子类型
- 网络中每一个算子根据算子类型进行算子实现的匹配，相同类型的算子的实现逻辑相同，在一个网络中

- （还有一个）
- 张量
- 是存储算子输入数据与输出数据的容器，而张量描述符 TensorDesc 是对输入数据与输出数据的描述，张量描述的数据结构包含如下属性

- 像数组
- 名称：用于对 Tensor 进行索引
- 形状 Shape
- 数据类型（dtype）
- 数据的排布方式（format） 数据的物理排布格式，定义了解读数据的维度（如）

- (D 0,D 1,..,DN-1)
- (4,20,20,3)

四个 for 循环

排布方式 format

- NHWC:
- Batch 数量
- Height：特征图高度，即垂直高度方向像素个数
- W:

轴（Axis） 

## NPU与异构硬件

AI 模型=计算图=算子组合->需要硬件执行 ->昇腾 NPU 就是专为 AI 加速计算而设计的芯片

- 为什么需要 NPU
- 计算密集
- AI 任务涉及数十亿甚至数千亿次的乘加运算
- 数据并行
- 卷积运算，彼此独立，可同时进行处理
- 低精度可接受
- AI 模型与计算误差有较高容忍度，使用半精度（FP16）或整型即可获得足够好的结果，大幅降低资源消耗
- 小模型 FP4/FP2 就可以了

- 昇腾 NPU：AI 计算的发动机
- 极致性能 高能效比 赋能模型
- 华为昇腾 AI 芯片，采用达芬奇架构，集成了超大规模的计算单元，是支持 AI 全场景应用的核心硬件基础

CPU vs NPU

- 异构计算：系统的指挥中心与全能老板
- NPU:AI 的超级工人与超值计算手
- Host Device
- Host：CPU 侧
- Device：NPU 侧

昇腾 AI 处理器抽象硬件架构

- 每一个 AI 处理器包含若干个 AI core，每个 AI core 包含：
- 计算单元
- 标量计算单元 执行地址计算、循环控制等标量计算工作
- 向量
- 矩阵
- 存储单元

- GM
- LM
- 搬运单元DMA
- MTE 1
- 内部并行架构抽象
- 异步指令流
- Scalar 计算单元读取序列，并把向量计算、矩阵计算、数据搬运指令发射给对应的指令队列
- 同步信号流
- 指令见可能
- 计算数据流

多核并行计算

- Tiling 数据切分
- 多核并行计算
- 隐式同步
- 昇腾 NPU
- Davinci 架构
- Ascend  CPU

NAVIDA 架构 NPU

## CANN软件栈与执行链

- CANN：对上适配 AI 框架，对下驱动 NPU 硬件
- 昇腾 AI 基础软硬件平台，构筑智能世界的基石
- 对上：PyTorch
- CANN：Compute Architecture for Neural Networks
- 加速库
- 算子库、通信库、领域加速库、图引擎
- 编程与编译 算子编程> Ascend C | PyPto
- 毕昇编译器
- 运行时
- 运行时启动
- 推理与翻译
- 加速器（上限）

框架适配层：无缝对接 AI 生态

- PyTorch 极简适配
- MindSpore 原生亲和
- TensorFlow 算子应算
- (ops-pytorch)
- 加速算子库 数学库 Ops-math
- ops-nn 神经网络库
- 计算机视觉库
- ops-cv
- Transformer 库(ops-transformer)
- 灵活开放：支持自定义算子扩展
- 加速库之通信库
- 多卡协同 打破算力孤岛 串联多 NPU 集群
- 加速库之图引擎 GE：全局优化的智慧大脑
- 图编译
- （Graph Compiler）
- 通过算子组合减少通信开销，智能复用内存降低鲜醇存储值，并且自动裂解算子执行程序形成流水线，让 NPU
- 图执行
- （Graph Executor）
- FFT 快速傅里叶变换
- BLAS 基础线性代数子程序库
- 编译与编程：AscendC
- pyasc
- C++
- 算子模板库、高阶 API、基础 API、tensor api
- 语言扩展层 C
- SIMD CAPI SIMT API
- 毕昇编译器

```python
output = torch.matmul(a.npu(), b.npu())

```

1. torch_npu 调用 CPU 内存的异步拷贝到 NPU 设备内存，完成数据的“上云”
2. 算子映射与图捕获 torch.matmul
3. 编译优化(GE+毕昇)
4. 硬件执行与结果就绪

- CANN vs CUDA
- 模
- 框架适配
- 算子库
- 通信库
- 图引擎
- 领域加速库
- 编程语言
- 运行时
- 驱动
- profiling

## Torch NPU实践与待补问题

NPU 实践

PyTorch Torch-npu (torch_npu) 

检查 NPU 的可用性 

```python
import torch
import torch_npu

torch.npu.is_available()
torch.npu.device_count()
if torch.npu.is_available():
    print(torch.npu.get_device_name(0))

```

- NPU 有优势？
- 计算密集型任务
- 批量并行处理
- 低精度计算可
- CPU 优势？

## 回顾与待核实

- AI 发展、图灵测试与机器学习的关系：[[计算机系/昇腾与CANN/人工智能发展与大模型计算本质|人工智能发展与大模型计算本质]]。原记录“充分条件”、手工特征与黑盒等说法过于绝对；“文本背后……”一句存在听记缺损，保留待核实。
- 张量、NCHW/NHWC、软件组件和矩阵乘执行路径：[[计算机系/昇腾与CANN/CANN软件栈与Torch NPU实践|CANN软件栈与Torch NPU实践]]。`.npu()` 的设备搬运不等于“上云”，普通 Eager 调用也不必逐次经过 GE 编译。
- Host/Device、Tiling 与硬件流水：[[计算机系/昇腾与CANN/异构计算基础与CANN架构整理|异构计算基础与CANN架构整理]]、[[计算机系/昇腾与CANN/Ascend C SIMD硬件内存与同步|Ascend C SIMD硬件内存与同步]]。原记录“隐式同步”“NAVIDA 架构 NPU”“Ascend CPU”缺乏明确上下文，暂不作为确定结论。
- 低精度的适用边界：[[计算机系/昇腾与CANN/大模型量化原理与部署|大模型量化原理与部署]]。原记录“小模型 FP4/FP2 就可以”不能作为普遍结论。
- 待补全：NHWC 的 W/C、Axis、四重循环示例、CPU 优势，以及“还有一个”“指令见可能”“推理与翻译”“加速器（上限）”等未完成片段。
