处理器分类
CPU:中央处理器
GPU:图形处理器,又称显示核心、视觉处理器、显示芯片
- CPU有控制单元而GPU没有控制单元,需要CPU调度
NPU:神经网络处理器,又称AI芯片
- 在NPU中,芯片都用 MAC阵列(乘积累加运算,MAC/Multiply Accumulate) 给神经网络加速,许多运算(如卷积运算、点积运算、矩阵运算、数字滤波器运算、乃至多项式的求值运算)都可以分解为数个MAC指令
虽然GPU比CPU更擅长并行计算,但GPU和CPU本质上都属于通用处理器;AI芯片则针对性强,其目的是高效率地执行AI算法,也称为AI加速器,并衍生出了许多称呼,如NPU(神经网络处理器)、TPU(谷歌的张量处理器)、DPU(AMD加速处理器)、BPU(地平线Brain Processing Unit)等;
AI芯片也可能是以某一模块的形式体现,如TI TDA4的MMA、特斯拉FSD的NNA、英伟达的Tensor Core等。
常见算力计算方法
GFLOPS
FLOPS(Floating-point operations per second): 浮点运算性能单位 ,即每秒浮点运算次数。
GFLOPS(GigaFLOPS):每秒一万亿(10^9)次浮点运算的次数。
浮点运算的精度有:双精度(FP64),单精度(FP32),半精度(FP16),FP8,BFloat16(16bit,动态表达范围和FP32一样,但是精度低),TF32(TensorFloat32)等
不同精度下的算力关系接近为倍数关系,并存在例外情况(如指令重叠可以使计算吞吐翻倍)。
单个CPU/GPU的GFLOPS算力计算:主频 x 每时钟周期浮点计算次数 x CPU/GPU中核的个数
CPU的每时钟周期浮点计算次数根据CPU指令集的不同而定:
| 指令集 | 每时钟周期的单精度运算次数 | 每时钟周期的双精度运算次数 |
|---|---|---|
| SSE(128-bits) | 8 | 4 |
| AVX(256-bits) | 16 | 8 |
| AVX2(256-bits) | 32 | 16 |
| AVX512(512-bits) | 64 | 32 |
nvidia GPU的Cuda核心每时钟周期双精度浮点计算次数一般为2(1次FMA运算);
nvidia GPU的TENSOR核心可实现混合精度计算(如乘法精度FP16,加法精度FP32),每个TENSOR核心提供一个4x4x4矩阵处理数组,每个时钟周期可执行64次浮点混合乘加(FMA)运算,1 Tensor Core ≈ 64 CUDA Core
TOPS
OPS(Operations Per Second): 整数运算性能单位 ,即每秒整数运算次数,衡量 乘积累加矩阵(Multiply Accumulate, MAC)运算算力 ,一次MAC运算(a = a + (b x c))包含乘加共 两次运算 。
TOPS(TeraOPS):每秒一万亿(10^12)次整数运算的次数。
整数运算的精度有:INT8,INT4
不同精度下的算力关系接近为倍数关系
TOPS = MAC运算单元数量 * 2 * 主频


以特斯拉芯片为例,含2个加速单元NNA,每个NNA的MAC单元数量为96x96,可得单个NNA算力TOPS = (96 * 96) * 2 * 2GHz = 36.86 TOPS
TOPS为整数运算次数,TFLOPS为浮点数运算次数, 相同精度 下:1 TOPS ≈ 1 TFLOPS
在某些情况下,还使用TOPS/W来作为评价处理器运算能力的一个性能指标,TOPS/W用于度量在1W功耗的情况下,处理器能进行多少万亿次操作。
DMIPS
DMIPS:Dhrystone Million Instructions executed Per Second,以运行Dhrystone程序为基准,每秒执行了多少百万条 指令 。
- Dhrystone是测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量,用C语言编写。
DMIPS/MHz 表示CPU在单位MHz的运行速度下可以执行多少个DMIPS。如5DMIPS/MHz,表示如果CPU运行在1MHz的频率下,每秒可执行5百万条指令,如果CPU运行在5MHz的频率下,每秒可执行25百万条指令。
CPU的DMIPS算力计算:核的数量 * 主频 * DMIPS/MHz
如双核A53架构,主频为1.6GHz,性能为2.3DMIPS/MHz,算力DMIPS = 2 * 1660MHz * 2.3DMIPS/MHz = 7360 DMIPS
ARM处理器 Cortex-A 系列:
| Core | Architecture | bits | I-Cache | D-Cache | DMIPS/MHz |
|---|---|---|---|---|---|
| ARM11 | v7-A | 32 | 4-64K | 4-64K | 1.25 |
| Cortex-A5 | ARMv7-A | 32 | 4-64K | 4-64K | 1.57 |
| Cortex-A7 | ARMv7-A | 32 | 8-64K | 8-64K | 1.9 |
| Cortex-A8 | ARMv7-A | 32 | 16-32K | 16-32K | 2 |
| Cortex-A9 | ARMv7-A | 32 | 16-64K | 16-64K | 2.5 |
| Cortex-A12 | ARMv7-A | 32 | — | — | 3.5 |
| Cortex-A15 | ARMv7-A | 32 | 32K | 32K | 3.4 |
| Cortex-A17 | ARMv7-A | 32 | 32-64K | 32K | 3.2 |
| Cortex-A32 | ARMv8-A | 32 | 8-64K | 8-64K | 2.3 |
| Cortex-A35 | ARMv8-A | 32/64 | 8-64K | 8-64K | 2.5 |
| Cortex-A53 | ARMv8-A | 32/64 | 8-64K | 8-64K | 2.3 |
| Cortex-A55 | ARMv8.2-A | 32/64 | 64K | 64K | 2.7 |
| Cortex-A57 | ARMv8-A | 32/64 | 48K | 32K | 4.1 |
| Cortex-A72 | ARMv8-A | 32/64 | 48K | 32K | 4.7 |
| Cortex-A73 | ARMv8-A | 32/64 | 64K | 32-64k | 4.8 |
| Cortex-A75 | ARMv8.2-A | 32/64 | 64K | 64k | 5.2 |
ARM处理器 Cortex-M 系列:
| Core | Architecture | bits | DMIPS/MHz |
|---|---|---|---|
| Cortex-M0 | ARMv6M | 32 | 0.9~0.99 |
| Cortex-M3 | ARMv6M | 32 | 1.25~1.5 |
| Cortex-M4 | ARMv6M | 32 | 1.25~1.52 |
| Cortex-M7 | ARMv7-M | 32 | 2.14/2.55/3.23 |
不同算力指标的转换
-
不同精度下的同一算力指标接近为倍数关系
-
在 相同精度 下,可认为TOPS与TFLOPS相等
-
DMIPS一般是逻辑运算,TOPS是矩阵运算(乘加),两者没有直接关系
算力效率
决定算力真实值主要因素有:内存带宽,实际运行频率(即供电电压或温度),算法的batch size等。
地平线提出了 每秒准确识别帧率MAPS(Mean Accuracy-guaranteed Processing Speed) 概念和评估方法;
对比于算力(单位TOPS),每秒准确识别帧率(单位FPS)旨在反应更真实的性能指标。

图中,横轴反应帧率,纵轴反应精度,MAPS即确定了精度的上下界后的多边形面积
车用主流芯片的算力研究
目前的车用主流芯片算力汇总如下
| 芯片/处理器 | TOPS | 精度 | 架构 | 备注 |
|---|---|---|---|---|
| 地平线(BPU) | ||||
| 征程®2 | 4 | — | 伯努利1.0 | |
| 征程®3 | 5 | — | 伯努利2.0 | 2核 BPU |
| 征程®5 | 128 | — | 贝叶斯 | |
| 征程®6 | 1000 | — | 未量产 | |
| Mobileye | ||||
| EyeQ4 Mid | 1.1 | INT8 | ||
| EyeQ4 High | 2 | INT8 | ||
| EyeQ5 Mid | 7 | INT8 | ||
| EyeQ5 High | 16 | INT8 | ||
| EyeQ6 Light | 5 | INT8 | ||
| EyeQ6 High | 34 | INT8 | ||
| EyeQ Ultra | 176 | INT8 | ||
| NVIDIA(Tensor Core) | ||||
| Jetson Xavier NX 8GB | 21 | INT8 | Volta | |
| Jetson Xavier NX 16GB | 21 | INT8 | Volta | |
| Jetson AGX Xavier Industrial (JAXi) | 30 | INT8 | Volta | 10 TFLOPS | 30 TOPS |
| Jetson AGX Xavier (JAX) | 32 | INT8 | Volta | 10 TFLOPS | 32 TOPS |
| Jetson AGX Xavier 64GB (JAX 64GB) | 32 | INT8 | Volta | 10 TFLOPS | 32 TOPS |
| Jetson Orin Nano 4GB | 20 | INT8 | Ampere | 20 (Sparse) / 10 (Dense) |
| Jetson Orin Nano 8GB | 40 | INT8 | Ampere | 40 (Sparse) / 20 (Dense) |
| Jetson Orin NX 8GB | 70 | INT8 | Ampere | 70 (Sparse) / 35 (Dense) |
| Jetson Orin NX 16GB | 100 | INT8 | Ampere | 100 (Sparse) / 50 (Dense) |
| Jetson AGX Orin 32GB | 200 | INT8 | Ampere | Sparse |
| Jetson AGX Orin 64GB | 275 | INT8 | Ampere | Sparse |
| Thor | 2000 | INT8 | 未量产 | |
| AMD Xilinx(DPU) | ||||
| Zynq UltraScale+(ZU2) | 0.4 | — | DPUCZDX8G | |
| Zynq UltraScale+(ZU3) | 0.9 | — | DPUCZDX8G | |
| Zynq UltraScale+(ZU5) | 1.4 | — | DPUCZDX8G | |
| Zynq UltraScale+(ZU7EV) | 2.7 | — | DPUCZDX8G | |
| Zynq UltraScale+(ZU9) | 4.1 | — | DPUCZDX8G | |
| Alveo U280 | 4.8 | — | DPUCAHX8L 单核 | |
| Alveo U280 | 8 | — | DPUCAHX8L 双核 | |
| Alveo U50 | 7.37 | — | DPUCAHX8H(2 cores (3 PEs + 3 PEs)) | |
| Alveo U50LV | 11.26 | — | DPUCAHX8H(2 cores (5 PEs + 5 PEs)) | |
| Alveo U280 | 17.2 | — | DPUCAHX8H(3 cores (4 PEs + 5 PEs + 5 PEs)) | |
| Alveo U55C | 14.74 | — | DPUCAHX8H(3 cores (3 PEs + 4 PEs + 5 PEs)) | |
| VCK5000(8pe_normal) | 76.8 | — | DPUCVDX8H | |
| VCK5000(6pe_dwc) | 57.6 | — | DPUCVDX8H | |
| VCK5000(6pe_misc) | 57.6 | — | DPUCVDX8H | |
| VCK5000(4pe_miscdwc) | 38.4 | — | DPUCVDX8H | |
| VCK5000(2pe_miscdwc) | 19.2 | — | DPUCVDX8H | |
| TI(MMA, Deep-learning matrix multiply accelerator) | ||||
| TDA4VM | 8 | INT8 | ||
| TDA4VMp | 24 | INT8 | TI roadmap提供,未量产 | |
| 黑芝麻 | ||||
| 华山二号 A1000L | 16 | INT8 | 16 TOPS (int8), 30 TOPS (int4) | |
| 华山二号 A1000 | 58 | INT8 | 58 TOPS (int8), 116 TOPS (int4) | |
| 华山二号 A1000 Pro | 106 | INT8 | 106 TOPS (int8), 196 TOPS (int4) ,未量产 | |
| INTEL NERVANA | ||||
| NNP I-1100 | 50 | INT8 | ||
| NNP I-1300 | 170 | INT8 | ||
| NNP T | 119 | INT8 | ||
| INTEL(AI Tensor 模块) | ||||
| Stratix 10 NX FPGA | 143 | INT8 | ||
| Tesla FSD(NNA) | ||||
| FSD 3.0 | 72 | INT8 | 2 NNA,36.8x2 | |
| 华为海思 | ||||
| 昇腾(HUAWEI Ascend)310 | 16 | INT8 | 华为达芬奇 | 16TOPS(INT8), 8TOPS(FP16) |
| 昇腾(HUAWEI Ascend)910 | 640 | INT8 | 华为达芬奇 | 640TOPS(INT8), 320TOPS(FP16) |
| 瑞萨 | ||||
| R-Car-V3H | 3.7 | — | ||
| R-Car-V3U | 60 | — | ||
| R-Car-V4H | 34 | — | ||
| 高通 | ||||
| Snapdragon 820 | 未提及 | |||
| Snapdragon 602 | 未提及 | |||
| 芯驰 | ||||
| V9 | 未提及 | |||
本文介绍了处理器的种类,包括CPU、GPU和NPU,强调了它们在处理能力上的差异。CPU具有控制单元,GPU擅长并行计算,而NPU专为高效执行AI算法设计。文章还讨论了各种算力单位,如GFLOPS、TOPS和DMIPS,以及如何计算和比较不同处理器的性能。特别提到了AI芯片在汽车领域的应用,列举了多个汽车主流芯片的算力数据。

3408

被折叠的 条评论
为什么被折叠?



