🧠 华为昇腾 NPU 完整架构 达芬奇架构 · 昇腾910/950

主图
graph TB subgraph Host["💻 主机 / 系统"] CPU["中央处理器 CPU
任务调度 · 资源管理"] HostMem["系统内存 DDR
数据准备 · 结果回收"] end subgraph NPU["🧠 昇腾 NPU 芯片"] PCIe["PCIe 接口
CPU-NPU 高速互联"] DVPP["数字视觉预处理
图像缩放/拼接/编解码"] HCCL["HCCL 通信
多卡互联 · 集群扩展"] subgraph AI_Core_Cluster["AI Core 集群 · 达芬奇架构核心"] direction TB AICore1["AI Core #1
─────────────
🟦 Cube ×1 (矩阵)
🟩 Vector ×1 (向量)
🟨 Scalar ×1 (标量)
📦 L0/L1/UB 缓存"] AICore2["AI Core #2
─────────────
🟦 Cube ×1 (矩阵)
🟩 Vector ×1 (向量)
🟨 Scalar ×1 (标量)
📦 L0/L1/UB 缓存"] AICore3["AI Core #3
─────────────
🟦 Cube ×1 (矩阵)
🟩 Vector ×1 (向量)
🟨 Scalar ×1 (标量)
📦 L0/L1/UB 缓存"] AICore4["AI Core #4
─────────────
🟦 Cube ×1 (矩阵)
🟩 Vector ×1 (向量)
🟨 Scalar ×1 (标量)
📦 L0/L1/UB 缓存"] MTE["⚡ 存储转换单元 MTE
硬件级 Img2Col
数据格式转换加速"] end subgraph Cache_Mem["片上缓存 / 缓冲区"] L2["L2 缓存
片上共享"] Buffer["输入/输出缓冲区
数据转置/格式转换"] Register["寄存器堆
各计算单元私有"] end subgraph VRAM["显存子系统"] HBM["HBM2e/HBM3 显存
带宽 1.2 TB/s
容量 64-80 GB"] MemoryCtrl["内存控制器
多通道 HBM 接口"] end end CPU -->|"任务下发"| PCIe HostMem -->|"数据加载"| PCIe PCIe -->|"命令 / 数据"| DVPP DVPP -->|"预处理数据"| AI_Core_Cluster PCIe -->|"直接调度"| HCCL HCCL -.->|"多卡通信"| AI_Core_Cluster AICore1 -->|"读写"| L2 AICore2 -->|"读写"| L2 AICore3 -->|"读写"| L2 AICore4 -->|"读写"| L2 AICore1 -.->|"寄存器"| Register AICore2 -.->|"寄存器"| Register AICore3 -.->|"寄存器"| Register AICore4 -.->|"寄存器"| Register L2 -->|"缓存一致性"| MemoryCtrl Buffer -->|"数据转置/搬运"| AI_Core_Cluster MemoryCtrl -->|"访存"| HBM AICore1 -.->|"专用加速"| MTE AICore2 -.->|"专用加速"| MTE AICore3 -.->|"专用加速"| MTE AICore4 -.->|"专用加速"| MTE
主机 & 系统 NPU 核心单元 Cube 矩阵单元 缓存 / 缓冲区 显存子系统 MTE 存储转换 ➡️ 数据流 · 控制流

🔬 辅助图 1 · AI Core 内部结构 达芬奇架构 · 铁三角 + MTE

放大
graph TB subgraph AICore["🔲 AI Core (达芬奇架构)"] Cube["🟦 Cube 计算单元
矩阵乘加 · 16×16×16
INT8/FP16 加速"] Vector["🟩 Vector 计算单元
向量运算 · 激活函数
归一化 · FP16/FP32"] Scalar["🟨 Scalar 计算单元
标量运算 · 控制流
流程控制 · 地址计算"] L0A["L0A Buffer
矩阵 A 输入"] L0B["L0B Buffer
矩阵 B 输入"] L0C["L0C Buffer
矩阵结果输出"] UB["Unified Buffer
统一缓冲区
向量/标量数据"] MTE_local["⚡ 存储转换单元 MTE
硬件数据格式转换
Img2Col 加速"] end L0A --> Cube L0B --> Cube Cube --> L0C L0C --> Vector Vector --> UB UB --> MTE_local MTE_local -->|"转置后数据"| L0A Scalar -->|"控制"| Cube Scalar -->|"控制"| Vector
Cube 矩阵 Vector 向量 Scalar 标量 MTE 转置 缓存/缓冲区

🗄️ 辅助图 2 · 存储层次 延迟 · 容量 · 带宽

金字塔
graph LR Reg["寄存器
各单元私有
1 周期"] L0["L0/L1 Buffer
L0A/L0B/L0C
~64KB · 极低延迟"] UB["Unified Buffer
~248KB
低延迟"] L2["L2 缓存
片上共享
~50 周期"] HBM["HBM2e/HBM3
64-80GB
1.2 TB/s · ~500 周期"] Reg --> L0 L0 --> UB UB --> L2 L2 --> HBM
⬆️ 越快 ⬇️ 越大 越往上越快 · 越往下越大

🧠 辅助图 3 · AI 推理数据流 大模型推理路径

AI 视图
graph LR Host["系统内存
模型权重/输入"] PCIe["PCIe
高速互联"] HBM["HBM3 显存
模型权重"] L2["L2 缓存
片上共享"] MTE["MTE
数据格式转换"] AICore["AI Core
Cube/Vector"] Out["推理结果"] Host -->|"加载模型"| PCIe PCIe -->|"DMA 传输"| HBM HBM -->|"权重读取"| L2 L2 -->|"数据转置"| MTE MTE -->|"优化格式"| AICore AICore -->|"矩阵/向量计算"| Out style MTE fill:#f0e8c0,stroke:#b3771a,stroke-width:2px style AICore fill:#f0e8d0,stroke:#8a6a2a,stroke-width:2px style Out fill:#e8f4e8,stroke:#2a7a3a,stroke-width:2px
主机/传输 显存/缓存 MTE 转置 AI Core

⚡ 辅助图 4 · 计算单元对比 Cube · Vector · Scalar

性能
graph TB subgraph Cube["🟦 Cube (矩阵)"] C1["16×16×16 矩阵乘加"] C2["1 指令 = 4096 次乘加"] C3["INT8/FP16 加速"] C4["AI 计算核心"] end subgraph Vector["🟩 Vector (向量)"] V1["向量运算"] V2["激活函数 · 归一化"] V3["FP16/FP32"] V4["灵活计算"] end subgraph Scalar["🟨 Scalar (标量)"] S1["标量运算"] S2["控制流 · 地址计算"] S3["流程控制"] S4["调度协调"] end C1 --> C4 V1 --> V4 S1 --> S4 style Cube fill:#fde8e8,stroke:#c0392b style Vector fill:#e8f4e8,stroke:#2a7a3a style Scalar fill:#fef3e0,stroke:#b3771a
Cube (矩阵) Vector (向量) Scalar (标量) 铁三角协同

📐 性能数据 (昇腾910)

Cube FP16: 256 TFLOPS · INT8: 640 TOPS
Vector FP16/FP32 灵活计算 · 激活函数/归一化
HBM2e 带宽 1.2 TB/s · 容量 64 GB

📖 昇腾 NPU 核心概念速查

15 项
达芬奇架构 核心架构
华为自研 NPU 架构,采用 Cube + Vector + Scalar 铁三角设计。 针对 AI 领域定制,覆盖端、边、云全场景。
设计理念DSA 特定域架构 核心单元Cube/Vector/Scalar 特色MTE 硬件转置
AI Core 计算核心
昇腾 NPU 的计算核心,包含矩阵(Cube)、向量(Vector)、标量(Scalar)三种计算单元, 配合多级缓存完成 AI 计算。
每芯片数量32 (910) 计算模式SIMD/SIMT 混合
Cube 矩阵计算单元 矩阵
执行 16×16×16 矩阵乘加,一条指令完成 4096 次乘加。 是 AI 训练/推理的算力核心。
每 AI Core1 个 精度支持INT8/FP16 910 FP16256 TFLOPS
Vector 向量计算单元 向量
执行向量运算,包括 激活函数、归一化、池化 等, 支持 FP16/FP32 精度。
每 AI Core1 个 精度支持FP16/FP32 典型用途激活/归一化
Scalar 标量计算单元 标量
负责 控制流、地址计算、标量运算,协调 Cube 和 Vector 的执行。
每 AI Core1 个 功能控制/调度
存储转换单元 MTE 特色
达芬奇架构特色,位于 NPU 芯片内部 AI Core 集群。 硬件级数据格式转换(如 Img2Col),大幅提升卷积效率。
功能数据格式转换 对比 GPU硬件加速 vs 软件实现 位置AI Core 集群内
CANN 异构计算架构 软件栈
华为 NPU 软件栈,向上兼容 PyTorch/MindSpore,向下使能昇腾硬件。 包含算子库、编译器等。
编程语言Ascend C 框架支持PyTorch/MindSpore
HBM 显存 显存
昇腾 NPU 专用高带宽内存,HBM2e/HBM3,为大模型提供高吞吐数据访问。
910B 带宽400 GB/s 910B3 带宽1.2 TB/s 容量64-80 GB
Unified Buffer 片内缓存
AI Core 内统一缓冲区,向量/标量计算的数据中转站, 容量约 248 KB
位置AI Core 内部 容量~248 KB 用途向量/标量数据
HCCL 通信库 多卡互联
华为集合通信库,支持多卡训练时的 AllReduce、Broadcast 等 集合通信操作。
功能多卡通信 对标NVIDIA NCCL
数字视觉预处理 DVPP 预处理
硬件级图像/视频预处理,包括 缩放、拼接、编解码, 减轻 AI Core 负担。
功能图像预处理 优势硬件加速
混合精度训练 AI 训练
Cube 支持 FP16/BF16 混合精度,在保持精度的同时大幅提升训练吞吐量。
精度支持FP16/BF16/INT8 910 FP16256 TFLOPS
昇腾910 旗舰芯片
华为云端训练芯片,32 个 AI Core,支持千亿参数大模型训练。 910B3 引入 HBM3e 内存。
AI Core32 个 FP16 算力256-320 TFLOPS 工艺7nm (N+1/N+2)
昇腾310 推理芯片
华为边缘推理 SoC,低功耗设计,面向端侧 AI 推理场景。 功耗仅 8W
FP16 算力8 TFLOPS INT8 算力16 TOPS 功耗8W
算力单位 性能
TFLOPS = 每秒 10¹² 次浮点运算 (万亿次)
TOPS = 每秒 10¹² 次整数运算 (万亿次)
910 FP16256 TFLOPS 310 INT816 TOPS

🧠 主图 + 4 辅助图 · 各自分工

主图:完整的昇腾 NPU 架构,MTE 位于 NPU 芯片内部 AI Core 集群。
辅助图 1:AI Core 内部结构 — Cube/Vector/Scalar 铁三角 + MTE
辅助图 2:存储层次金字塔 — 从寄存器到 HBM 的延迟与容量。
辅助图 3:AI 推理数据流 — HBM → L2 → MTE → AI Core 完整路径。
辅助图 4:计算单元对比 — Cube 4096次/指令FP16 256 TFLOPS

💡 核心差异:GPU 用 CUDA 核心做标量,Tensor Core 做矩阵;
昇腾 NPU 用 Cube 做矩阵(专用最强),Vector 做向量(灵活),Scalar 做标量(控制)