硬件层面的核心计算单元
这是NPU物理上执行计算的最小或基本单元,它们专门为神经网络中的特定操作而设计,效率极高。
MAC (Multiply-Accumulate) / MACC (乘加单元)
这是最核心、最基础的计算单位,也是神经网络计算的本质。
- 含义:执行一次“乘法”后,立即将结果与一个累加器中的值进行“加法”操作。
- 公式:
Result = Result + (A * B) - 重要性:神经网络的绝大部分计算,无论是卷积层的权重与特征图相乘,还是全连接层的矩阵乘法,都可以分解为海量的乘加运算,NPU内部集成了成千上万个MAC单元并行工作,其数量直接决定了NPU的计算能力。
- 衡量单位:我们常说一个NPU有“XXX TOPS”,其背后的基础就是MAC单元的吞吐量。1 TOPS (万亿次运算/秒) ≈ 1万亿次MAC操作/秒。
Systolic Array (脉动阵列)
这不是一个计算单位,而是一种硬件架构,但它至关重要,因为它决定了MAC单元如何高效地组织起来。
- 含义:一种由多个处理单元(通常是MAC单元)组成的网格状阵列,数据像血液在心脏中一样,按照固定的节奏(“脉动”)从阵列的一端流入,经过计算后从另一端流出。
- 优势:
- 高数据复用:中间结果在阵列内部被反复使用,极大减少了访问外部存储器(慢速)的次数。
- 并行计算:所有MAC单元可以同时工作,吞吐量极高。
- 能效比高:数据流动路径固定,控制简单,功耗低。
- 代表:Google的TPU(Tensor Processing Unit)就是脉动阵列架构的典范。
SIMD (Single Instruction, Multiple Data) / 向量处理单元
- 含义:单指令流多数据流,一个控制指令可以同时处理多个数据,一条“加法”指令可以同时将两个128位的向量寄存器中的16个8位整数或4个32位浮点数相加。
- 在NPU中的作用:用于处理数据并行度高的操作,如激活函数(ReLU, Sigmoid等)的计算,或者对一组数据进行相同的缩放、加法等,现代NPU通常会支持多种位宽的SIMD指令(如INT8, INT16, FP16, BFLOAT16)以适应不同精度需求。
数据格式量化单位
为了提升能效和降低带宽,NPU大量使用低精度整数计算。
- 含义:表示NPU原生支持的数据精度。
- 常见单位:
- INT8 (8位整数):目前最主流,在精度损失很小的情况下,能提供比FP32高4倍的吞吐量和更低的功耗。
- INT4 (4位整数):更极致的量化,用于对精度要求不高的场景,进一步压缩模型和提升速度。
- FP16 / BFLOAT16 (16位浮点数):用于需要更高精度的训练或推理场景,在保持数值稳定性的同时比FP32高效。
- 衡量:一个NPU的“XXX TOPS”通常会附带一个精度,如 “8 TOPS @ INT8”,表示在8位整数精度下,每秒可执行8万亿次运算。
软件/算法层面的计算单位
这是从模型和算法角度描述的计算任务,NPU的硬件单元就是为了高效执行这些任务而设计的。
FLOPs (Floating Point Operations) / GOPs (Integer Operations)
- 含义:衡量模型计算量的单位,FLOPs指浮点运算次数,GOPs指定点整数运算次数。
- 重要性:它是衡量AI模型复杂度的关键指标,一个模型的计算量是100 GOPs,意味着要完成一次推理,需要进行1000亿次整数运算。
- 与NPU的关系:NPU的TOPS值是峰值性能,而模型的GOPs/FLOPs是实际任务量。推理时间 ≈ 模型计算量 / NPU实际吞吐速度。
Tensor (张量) / Matrix (矩阵)
- 含义:神经网络中的数据(如图像、权重、特征)都以多维数组(张量)的形式存在,层与层之间的计算本质上是张量之间的运算(如矩阵乘法、卷积)。
- NPU的优化:NPU的内存架构和计算单元(如脉动阵列)都是为高效处理大规模张量运算而优化的,数据在NPU内部的传输和计算都是以“张量”为单位的。
Operation (算子)
- 含义:神经网络中的一个基本计算步骤,如卷积、池化、激活函数、全连接等。
- NPU的内核:NPU厂商会为这些常见算子提供高度优化的“内核”(Kernel),直接在硬件上执行,速度比通用计算快几个数量级。
性能衡量单位
这是最终用来评价NPU计算能力的量化指标。
TOPS (Tera Operations Per Second) / 万亿次运算/秒
- 含义:这是目前衡量NPU推理性能最常用、最核心的单位。
- 关键点:TOPS必须结合数据精度才有意义。
- 8 TOPS @ INT8:在8位整数精度下,每秒8万亿次运算。
- 2 TOPS @ FP16:在16位浮点精度下,每秒2万亿次运算。
- 16 TOPS @ INT4:在4位整数精度下,每秒16万亿次运算。
- 不能简单地说“我的NPU是8 TOPS”,必须说明在什么精度下。
FPS (Frames Per Second) / 帧率
- 含义:衡量端到端AI应用的性能,如实时视频分析、目标检测等。
- 重要性:这是对用户体验最直接的衡量,它不仅取决于NPU的TOPS,还受数据加载、预处理、后处理以及整个系统软件栈的影响,一个NPU可能理论性能很高,但如果软件优化不好,实际FPS也可能很低。
ms / 毫秒
- 含义:衡量完成一次推理任务所需的时间。
- 重要性:与FPS直接相关,
FPS ≈ 1000 / ms,一个模型在NPU上推理耗时50ms,则对应的处理速度就是20 FPS,这对于需要低延迟的应用(如自动驾驶、实时交互)至关重要。
| 层面 | 核心概念/单位 | 描述 |
|---|---|---|
| 硬件架构 | MAC (乘加单元) | 最根本的计算基石,神经网络计算的原子操作。 |
| Systolic Array (脉动阵列) | 核心硬件架构,高效组织和复用MAC单元。 | |
| 数据格式 (INT8, FP16等) | 决定了计算精度和效率,影响TOPS的实际值。 | |
| 软件/算法 | FLOPs / GOPs | 模型的计算量,衡量任务的复杂度。 |
| Tensor (张量) | 神经网络数据的基本形态,NPU优化的核心对象。 | |
| 性能衡量 | TOPS (万亿次运算/秒) | NPU的核心性能指标,必须注明精度。 |
| FPS (帧率) / ms (毫秒) | 端到端应用的最终性能指标,体现用户体验。 |
当你评价一个NPU时,不能只看它的“TOPS”数字,而要问:
- 它的基础计算单元是什么? (MAC)
- 它用什么架构来高效计算? (脉动阵列等)
- 它在什么精度下能达到这个TOPS? (INT8, FP16)
- 它实际跑我的AI模型(比如一个有50 GOPs的模型)时,能达到多少FPS或ms? (最终衡量标准)
标签: 人工智能NPU计算单位类型 NPU计算单位有哪些种类 人工智能NPU核心计算单位
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。