当我们谈到 NPU 的时候,一般指的是 HUAWEI 开发的 Ascend NPU 。因使用场景的不同(服务器,端侧),NPU 也有不同的形态,比如说在嵌入式开发中就不会使用 HBM

目前 NPU 可以与 GPU 的架构有一个对应关系,如下表所示:

GPUNPU解释
SMAI Core处理器
CUDA CoreAIV向量处理单元
Tensor CoreAIC矩阵处理单元
TMAMTE数据搬运单元
HBMGM设备内存
L1 Cache / Shared MemoryL1 Buffer / Unified BufferL1 缓存
RegisterL0 Buffer / Unified Buffer寄存器

那么既然 NPU 和 GPU 这么像,它们的区别是什么。我觉得是 NPU 的 AIV 和 AIC 是独立的,是享有独立的 L1 Cache 和 MTE 单元的。换句话说,AIV 和 AIC 如果想要配合(比如说 FA 所引入的 qkv 矩阵运算和 softmax 的 fusion),就会走一个“AIV L1 Cache L2 Cache L1 Cache AIC”的长通路,而 GPU 需要走“CUDA Core L1 Cache Tensor Core”的短通路,甚至可以直接走寄存器。

NPU 架构如图所示:

NPU-20260609163600480

来个动态图,展示不同的计算形式对应的不同单元,可以看到基本上是解耦的:

ascend

一个 AI Core 的样子:

NPU-20260611144703800

图中画的是一个 AIC 搭配两个 AIV ,实际上两者的比例是可以调整的。

此外 NPU 还有一个独特的东西,那就是 AI CPU ,它是一个 NPU 侧的 ARM64 执行单元,可以直接访问设备内存。它作为 AI Core 的补充,用于处理那些不适合 SIMD/SIMT 内核执行的任务