3、AI芯片架构基础:CPU、GPU、NPU、DSP的区别与协同
做边缘部署这些年,我见过太多人一上来就盯着算力参数看。TOPS多少、FLOPS多少,觉得数字大就牛。但实际落地时,往往被内存带宽卡死,或者发现计算单元根本用不上。说白了,芯片架构这事儿,你得先搞清楚它「怎么算」和「怎么搬数据」。
今天咱们就把CPU、GPU、NPU、DSP这四兄弟掰扯清楚。它们不是谁取代谁的关系,而是各司其职。我习惯把它们比作一个团队:CPU是项目经理,GPU是绘图员,NPU是专用流水线工人,DSP则是信号处理专家。
3.1 四类核心架构的定位
CPU(中央处理器):通用性最强,擅长复杂逻辑控制和分支预测。但它的计算单元占比很小,大部分面积给了缓存和控制逻辑。我在项目中遇到过,用CPU跑一个简单的卷积,结果大部分时间花在指令调度上,真正算乘法的时间很少。
GPU(图形处理器):最初为图形渲染设计,拥有大量并行计算单元。一个GPU可能有几千个核心,但每个核心都很简单。它适合做矩阵乘法这类「数据并行」的任务。不过,GPU的功耗和体积在边缘场景下是个大问题。
NPU(神经网络处理器):专门为神经网络推理设计的加速器。它内部有固定的乘加阵列、激活函数单元、池化单元等。说白了,就是硬件直接实现神经网络算子,省去了指令开销。我做过一个对比,同样跑MobileNet,NPU比CPU快10倍以上,功耗却只有1/5。
DSP(数字信号处理器):擅长流式数据处理,比如音频编解码、图像滤波、FFT变换。它的特点是低延迟、低功耗,适合做实时信号处理。嗯,这里要注意,DSP和NPU有重叠,但DSP更灵活,NPU更专一。
核心区别一句话总结:
- CPU:什么都能干,但什么都干不快
- GPU:并行计算强,但功耗高
- NPU:神经网络专用,效率极高
- DSP:信号处理专家,延迟极低
3.2 协同工作模式
实际芯片里,这四类单元是协同工作的。我画了一张图,帮你理解它们之间的数据流。
你看,CPU是大脑,负责调度。DSP先做信号预处理,比如降噪、滤波。然后数据送到GPU或NPU做核心计算。最后结果通过共享内存交换。我做过一个语音唤醒项目,就是DSP先做VAD(语音活动检测),检测到人声后才唤醒NPU做识别,功耗降低了80%。
3.3 内存带宽:被忽视的瓶颈
你想想看,算力再强,数据搬不过来有什么用?内存带宽决定了单位时间内能搬多少数据。我见过一个项目,选了块标称20TOPS的芯片,结果实际跑模型时,内存带宽只有10GB/s,算力利用率不到30%。
内存带宽的计算公式很简单:
带宽 = 内存频率 × 位宽 / 8
举个例子,LPDDR4 3200MHz,64位宽:
带宽 = 3200 × 10^6 × 64 / 8 = 25.6 GB/s
嗯,这里要注意,实际可用带宽通常只有理论值的70%-80%,因为还有协议开销。
避坑指南:我曾经选型时只看算力,没注意内存带宽。结果模型跑起来,计算单元一直在等数据,GPU利用率只有15%。后来换了块带宽翻倍的芯片,同样的模型,推理速度提升了3倍。所以,算力和带宽要匹配,一般建议算力(TOPS)和带宽(GB/s)的比值在0.5-1之间。
3.4 计算单元与算力指标
计算单元是芯片真正干活的地方。不同类型的芯片,计算单元差异很大:
| 芯片类型 | 计算单元 | 典型数量 | 特点 |
|---|---|---|---|
| CPU | ALU(算术逻辑单元) | 4-16个核心 | 每个核心功能完整,支持复杂指令 |
| GPU | CUDA Core / Stream Processor | 数千个 | 每个核心简单,但数量多 |
| NPU | MAC(乘加阵列) | 数百到数千 | 专门做矩阵乘法,效率极高 |
| DSP | MAC + 特殊功能单元 | 数十到数百 | 支持SIMD,适合流式处理 |
算力指标这块,我经常被问到:TOPS和FLOPS到底有什么区别?
- TOPS:Tera Operations Per Second,万亿次操作/秒。通常用于整数运算(INT8、INT4)。NPU常用这个指标。
- FLOPS:Floating-point Operations Per Second,浮点运算次数/秒。GPU和CPU常用这个指标。
举个例子,一块标称10TOPS的NPU,如果做INT8推理,每秒能完成10万亿次整数运算。而一块标称5TFLOPS的GPU,每秒能完成5万亿次浮点运算。但要注意,TOPS和FLOPS不能直接换算,因为整数和浮点运算的复杂度不同。
我的经验:边缘部署时,我习惯优先看INT8的TOPS,因为大部分模型量化后都用INT8推理。而且,很多芯片的INT8算力是FP16的2倍,是FP32的4倍。所以,选型时别被FP32的FLOPS忽悠了,要看实际部署精度下的算力。
3.5 典型AI芯片算力对比
我整理了几款常见边缘AI芯片的算力指标,供你参考:
| 芯片型号 | INT8算力(TOPS) | FP16算力(TFLOPS) | 内存带宽(GB/s) | 典型功耗(W) |
|---|---|---|---|---|
| NVIDIA Jetson Orin NX | 70 | 35 | 102.4 | 15-25 |
| Rockchip RK3588 | 6 | 3 | 25.6 | 5-10 |
| Horizon Journey 5 | 128 | 64 | 204.8 | 35-50 |
| Qualcomm QCS8250 | 15 | 7.5 | 34.1 | 8-12 |
你看,同样是边缘芯片,算力跨度从6TOPS到128TOPS。选型时不能只看算力,还要看功耗和带宽。我做过一个无人机项目,功耗限制在10W以内,最后选了RK3588,虽然算力只有6TOPS,但配合NPU加速,跑轻量级模型完全够用。
最后说一句,芯片架构这事儿,没有最好的,只有最合适的。搞清楚你的模型特点、功耗预算、实时性要求,再回头选芯片,就不会被参数表忽悠了。