3、算力指标深度解读:TOPS、FLOPS、MACs、GOPS的含义与区别、有效算力与峰值算力的差距、如何根据功能需求估算算力。
各位工程师朋友,咱们今天聊聊算力指标。说实话,这可能是选型时最容易被忽悠的地方。厂商宣传的算力动辄几百TOPS,但实际用起来,嗯,你懂的。
3.1 这些指标到底在说什么?
先理清几个基本概念。我习惯把它们分成两类:一类是理论峰值,一类是实际有效。
TOPS(Tera Operations Per Second)
万亿次操作每秒。这是目前智能驾驶芯片最常用的指标。注意,它通常指整数运算,尤其是INT8精度。为什么?因为神经网络推理主要用INT8,速度快、功耗低。
核心区别:
- TOPS:整数运算,主要用于AI推理
- FLOPS:浮点运算,主要用于训练或高精度计算
- MACs:乘加运算次数,衡量计算量
- GOPS:十亿次操作每秒,常用于DSP或传统算法
举个例子。我去年评估一款芯片,厂商标称200 TOPS(INT8)。但仔细看小字,那是稀疏化后的理论值。实际跑ResNet-50,能到120 TOPS就不错了。所以,别只看数字。
FLOPS vs TOPS
FLOPS是浮点运算。智能驾驶里,训练用FP32/FP16,推理用INT8/INT4。你想想看,一个FP32的MAC操作,功耗是INT8的4倍以上。所以芯片厂商拼命推INT8算力,就是这个道理。
| 指标 | 精度 | 典型用途 | 换算关系(约) |
|---|---|---|---|
| 1 TOPS | INT8 | 推理 | ≈ 0.5 TFLOPS (FP16) |
| 1 TFLOPS | FP32 | 训练 | ≈ 2 TOPS (INT8) |
| 1 GOPS | INT16 | 传统算法 | ≈ 0.001 TOPS |
MACs 与 GOPS
MACs是乘加操作次数。一个MAC = 一次乘法 + 一次加法。在卷积神经网络里,90%以上的计算都是MAC。我个人习惯用MACs来估算模型的计算量,再反推需要的TOPS。
GOPS常用于DSP或传统视觉算法。比如做车道线检测,用Canny边缘检测,那就是GOPS级别的计算。但一旦上深度学习,直接跳到TOPS。
3.2 峰值算力 vs 有效算力
这是最大的坑。峰值算力是芯片在理想条件下(比如所有MAC单元全速运行、数据在片上SRAM)的理论最大值。但实际中,你永远达不到。
我曾经踩过的坑:
选了一款标称100 TOPS的芯片,结果实际跑多传感器融合模型,有效算力只有40 TOPS。原因?内存带宽不够,数据搬运占用了大量时间。从那以后,我选型必看三个指标:算力、带宽、内存延迟。
有效算力通常只有峰值算力的30%~70%。影响因素包括:
- 内存带宽:数据喂不饱计算单元
- 算子利用率:有些算子(如池化、激活)计算密度低
- 数据精度:INT8 vs FP16,实际吞吐差很多
- 模型结构:稀疏模型、剪枝模型对硬件不友好
我的经验法则:
选型时,按峰值算力的50%来估算有效算力。如果芯片有专门的数据预取引擎或稀疏计算支持,可以放宽到60%~70%。但别信厂商说的80%以上,除非你亲自测过。
3.3 如何根据功能需求估算算力?
这是实战环节。我一般分三步走:
第一步:列出功能模块
智能驾驶功能通常包括:
- 感知:目标检测、语义分割、车道线检测
- 融合:多传感器融合(Camera + LiDAR + Radar)
- 规划:路径规划、行为预测
- 控制:车辆控制、执行器接口
第二步:估算每个模块的计算量
以感知为例。假设你用ResNet-50做目标检测,输入分辨率1920x1080,帧率30fps。
# 估算计算量
# ResNet-50 一次推理约 4.1 GMACs
# 输入分辨率 1920x1080,需要下采样到 224x224
# 但实际多尺度检测,计算量翻倍
单帧计算量 = 4.1 GMACs * 2(多尺度) = 8.2 GMACs
每秒计算量 = 8.2 GMACs * 30 fps = 246 GMACs
换算成TOPS:246 GMACs ≈ 0.246 TOPS(INT8)
等等,这只是单模型。实际感知系统通常跑3~5个模型(检测、分割、跟踪)。再加上融合和规划,总计算量轻松上1~2 TOPS。
注意:这只是推理计算量。实际系统还有数据预处理(图像缩放、归一化)、后处理(NMS、聚类)、通信开销。这些通常占20%~30%的算力。
第三步:考虑冗余和余量
我建议留出30%~50%的算力余量。为什么?
- 未来算法升级(比如从ResNet换到Transformer)
- 多任务并行(同时跑多个模型)
- 安全冗余(ASIL-D要求)
举个例子。L2级辅助驾驶,大约需要10~30 TOPS(有效算力)。L3级,需要50~100 TOPS。L4/L5,200 TOPS以上。这是基于当前主流算法的估算。但记住,算法每年都在变,算力需求也在涨。
3.4 知识体系图
下面这张图总结了算力指标的核心逻辑。我建议你保存下来,选型时对照着看。
3.5 避坑指南
我曾经犯过的错:
选型时只看TOPS,没注意内存带宽。结果芯片算力够,但数据搬不过来,帧率上不去。后来我学乖了,选型必看三个参数:
- 算力:TOPS(INT8)
- 带宽:DDR带宽,至少256 GB/s以上
- 内存:片上SRAM大小,决定能否放下模型权重
这三个参数缺一不可。否则就是木桶效应,最短的那块板决定了系统性能。
另外,别被「稀疏算力」忽悠。有些芯片支持稀疏计算(比如50%稀疏),理论算力翻倍。但实际模型稀疏度很难达到50%,而且稀疏计算对硬件有特殊要求。我建议按稠密算力来评估,稀疏算力当bonus。
好了,算力指标这块就聊到这。记住一句话:峰值算力是广告,有效算力是现实。选型时多问一句「实际跑XX模型能到多少?」,比看参数表有用得多。
我的个人习惯:
每次选型,我都会拿一个典型模型(比如ResNet-50或YOLOv8)在目标芯片上跑一遍,测实际帧率和功耗。厂商给的参数表,嗯,参考一下就好。实测数据才是王道。
公众号:蓝海资料掘金营,微信deep3321