2、AI芯片基础:AI芯片的分类(GPU、NPU、TPU、FPGA)、典型架构(冯诺依曼与数据流)、算力指标(TOPS、TFLOPS)与能效比
AI芯片是承载深度学习训练与推理任务的物理基石。不同应用场景对算力类型、精度要求、功耗约束和延迟敏感度差异巨大,因此理解芯片分类、架构本质和量化指标,是进行算子优化和架构选型的前提。本章将系统梳理AI芯片的四大主流品类、两种核心计算架构范式,以及衡量芯片性能的关键指标体系,帮助开发者建立从硬件底层到软件优化的完整认知框架。
2.1 AI芯片分类:从通用到专用的算力谱系
2.1.1 核心原理:不同芯片的算力设计哲学
AI芯片的本质差异在于并行度组织方式和数据精度支持。GPU采用SIMT(单指令多线程)架构,通过数千个CUDA核心实现大规模线程级并行,适合训练阶段的大矩阵运算;NPU(神经网络处理单元)则针对卷积和矩阵乘加设计了专用的脉动阵列或乘加单元阵列,以低精度(INT8/INT16)换取更高吞吐;TPU是Google为Transformer等模型深度定制的ASIC,其脉动阵列在矩阵乘法上能效比极高;FPGA则通过可编程逻辑门阵列实现硬件重构,在特定算子定制上具有灵活性。
| 维度 | GPU | NPU | TPU | FPGA |
|---|---|---|---|---|
| 计算范式 | SIMT并行 | 脉动阵列/乘加阵列 | 脉动阵列 | 可重构逻辑 |
| 典型精度 | FP32/FP16/BF16 | INT8/INT4 | BF16/FP8 | INT8/FP16 |
| 能效比 | 中 | 高 | 极高 | 中高 |
| 灵活性 | 高 | 中 | 低 | 极高 |
| 适用场景 | 训练/通用推理 | 边缘推理/端侧 | 云端大模型 | 原型验证/定制加速 |
2.1.2 判断方法:如何根据场景选择芯片
选择芯片需考虑三个约束:延迟预算(实时推理 vs 离线训练)、功耗墙(边缘设备 vs 数据中心)、算子多样性(标准卷积 vs 自定义算子)。若模型包含大量动态shape或控制流,GPU更合适;若模型结构固定且追求极致能效,NPU/TPU是首选;若需要快速原型验证或频繁修改硬件逻辑,FPGA具备不可替代的优势。
2.1.3 案例拆解:边缘端人脸检测芯片选型
某安防摄像头产品需要实现实时人脸检测(30FPS),模型为轻量级YOLOv5s(INT8量化后约4.2M参数)。初始方案采用GPU(Jetson Nano),功耗约5W,实测帧率28FPS,但整机功耗超标。后改用NPU(算力4 TOPS,功耗1.5W),通过算子融合和内存重排,帧率提升至35FPS,功耗下降70%。关键优化点:将卷积+BN+ReLU融合为单算子,减少DRAM访问次数;使用NHWC内存布局提升缓存命中率。
2.1.4 常见误区与复盘
- 误区一:认为TOPS越高芯片越好。实际需结合精度和功耗,例如INT4算力是INT8的两倍,但精度损失可能影响模型效果。
- 误区二:忽略内存带宽瓶颈。许多NPU的算力峰值很高,但片上SRAM容量有限,导致数据搬运成为瓶颈。
- 复盘要点:选型时应先做算子级profiling,统计各算子的计算密度(FLOPs/Byte),再匹配芯片的算术强度(Arithmetic Intensity)。
2.2 典型架构:冯诺依曼与数据流
2.2.1 核心原理:两种架构的存储与计算关系
冯诺依曼架构将存储单元和计算单元分离,指令从内存取回后由控制单元解码执行,数据在CPU/GPU与内存之间反复搬运。其优势在于通用性强,但访存带宽成为性能天花板(即冯诺依曼瓶颈)。数据流架构则颠覆了这一范式:计算节点直接相连,数据在节点间流动时触发计算,无需中央控制指令。NPU/TPU中的脉动阵列是典型代表,数据从阵列边缘流入,经过每个处理单元(PE)时完成乘加操作,中间结果直接传递给相邻PE,极大减少了访存次数。
2.2.2 判断方法:识别算子的架构适配性
判断一个算子更适合哪种架构,可计算其算术强度(Arithmetic Intensity = FLOPs / Bytes)。若算术强度大于芯片的峰值算力与带宽之比(即Roofline模型中的转折点),则该算子是计算密集型,适合数据流架构;反之则为访存密集型,冯诺依曼架构的缓存优化更有效。例如,全连接层算术强度高,适合NPU;而Gather/Scatter操作访存密集,GPU的缓存层次更占优势。
2.2.3 案例拆解:Transformer中矩阵乘法的架构映射
以BERT-base的QKV投影矩阵乘法(batch=32, seq_len=128, hidden=768)为例,单次矩阵乘法FLOPs约为2×32×128×768×768≈4.8GFLOPs。在TPU v4上,脉动阵列将矩阵分块为128×128的tile,数据从HBM加载到片上SRAM后,通过脉动数据流完成计算,实际利用率达85%以上。而在CPU上,由于缓存容量限制,相同计算需要多次访存,利用率不足30%。这解释了为何TPU在Transformer推理中能效比远超CPU。
2.2.4 常见误区与总结
- 误区一:认为数据流架构完全不需要缓存。实际上,NPU的片上SRAM(如达芬奇架构的L0/L1缓存)是数据流高效运转的关键。
- 误区二:忽略控制流开销。数据流架构对if-else、循环等控制流支持较弱,若模型包含动态分支,会导致PE利用率下降。
- 总结:算子优化时,应优先将计算密集且数据复用率高的算子(卷积、MatMul)映射到数据流单元,将访存密集算子(Softmax、LayerNorm)保留在通用计算单元。
2.3 算力指标:TOPS、TFLOPS与能效比
2.3.1 核心原理:指标的定义与计算口径
TOPS(Tera Operations Per Second)表示每秒万亿次整数运算,通常以INT8精度为基准;TFLOPS表示每秒万亿次浮点运算,需明确精度(FP32、FP16、BF16)。能效比则用TOPS/W或TFLOPS/W衡量,反映每瓦功耗能提供的算力。值得注意的是,不同厂商的指标口径可能不同:有的标称峰值算力(理论最大值),有的标称实际可达算力(考虑内存带宽和利用率)。
| 指标 | 计算方式 | 典型值参考 | 注意事项 |
|---|---|---|---|
| TOPS | MACs × 2(乘加算两次运算) | 边缘NPU:4-30 TOPS | 需确认精度(INT8/INT4) |
| TFLOPS | FLOPs / 时间 | GPU:10-100 TFLOPS | FP16通常为FP32的2倍 |
| 能效比 | 算力 / 平均功耗 | NPU:5-15 TOPS/W | 需区分峰值与持续功耗 |
2.3.2 判断方法:如何评估芯片的真实性能
评估芯片性能不能只看峰值指标,需结合实际算子利用率。建议使用Roofline模型:绘制芯片的算力上限(水平线)和带宽上限(斜线),将目标算子的算术强度映射到图中,若落在斜线下方则为访存瓶颈,需优化数据布局;若落在水平线下方则为计算瓶颈,需提升并行度。此外,应使用与目标场景一致的精度和batch size进行benchmark,避免厂商测试条件与真实负载不符。
2.3.3 案例拆解:ResNet-50在GPU与NPU上的能效对比
以ResNet-50推理(batch=1,INT8)为例:NVIDIA A10 GPU标称INT8算力为250 TOPS,实测功耗75W,能效比约3.3 TOPS/W;某边缘NPU标称INT8算力为12 TOPS,实测功耗2.5W,能效比约4.8 TOPS/W。虽然GPU算力高,但NPU在能效比上更优。进一步分析发现,NPU通过脉动阵列将卷积算子的利用率提升至70%,而GPU在batch=1时利用率仅35%。这说明能效比不仅取决于硬件,更取决于算子与架构的匹配度。
2.3.4 常见误区与复盘
- 误区一:混淆MACs与FLOPs。1次MAC(乘加)包含1次乘法和1次加法,计为2 FLOPs,但部分厂商按1 FLOPs计算,导致指标虚高。
- 误区二:忽略精度切换的影响。FP16算力通常是FP32的2倍,但若模型需要FP32精度,则实际性能减半。
- 复盘建议:建立算子级性能基线,在目标芯片上运行标准benchmark(如MLPerf),记录实际吞吐和功耗,作为后续优化效果的对照。