3. 算力基础

在智能驾驶系统中,算力是支撑感知、融合、预测、规划与控制等算法实时运行的底层资源。理解算力,不能只记住“多少 TOPS”这个数字,而要弄清它由什么运算构成、在什么精度下测得、实际能跑出多少有效性能。本节围绕 TOPS、FLOPS、MAC 与算力利用率四个核心概念展开,并说明不同数值精度对算力的直接影响。

一、从一次乘加说起:MAC 是最小运算单元

神经网络中绝大多数计算是“乘加”操作:把两个数相乘,再累加到结果上。这个操作称为 MAC(Multiply-Accumulate,乘加运算)。卷积、全连接、矩阵乘法都可以拆解为大量 MAC。因此,MAC 是衡量算力最基础的“原子单位”。

一次 MAC 包含一次乘法和一次加法,通常计为 2 次运算(2 OPS)。例如一个 3×3 卷积核在单个位置计算一次,需要 9 次 MAC,即 18 次运算。理解这一点,就能明白为什么芯片厂商标称的算力数字往往很大——它统计的是每秒能完成多少次这样的基本运算。

二、FLOPS 与 TOPS:算力的两种计量口径

FLOPS(Floating-point Operations Per Second)表示每秒浮点运算次数,常用于 GPU、CPU 等以浮点计算为主的芯片。TOPS(Tera Operations Per Second)表示每秒万亿次运算,其中“Operations”通常是整数或混合精度运算,是智能驾驶 NPU、AI 加速器最常用的算力单位。

两者关系可以简单理解为:1 TOPS = 1012 OPS。若某芯片标称 200 TOPS INT8,意味着理论上每秒可完成 200 万亿次 8 位整数运算。需要注意的是,TOPS 与 FLOPS 不能直接等价换算,因为它们的运算类型和精度口径不同,比较时必须对齐精度与统计方式。

核心换算关系:1 TOPS = 1000 GOPS = 1012 OPS;1 MAC = 2 OPS。若某网络共需 N 次 MAC,则总运算量约为 2N OPS。

三、精度如何改变算力:INT8、FP16 与 FP32

同一颗芯片在不同数值精度下,算力差异可能达到数倍。原因在于:低精度数据占用位宽更小,乘法器、累加器和存储带宽的利用率更高,单位时间内可并行处理的运算更多。常见精度及其典型特征如下表所示。

精度类型 位宽 典型算力倍率 适用场景
INT8 8 bit 基准 1× 感知主干、卷积网络推理
INT4 4 bit 约 2× 轻量化模型、部分量化网络
FP16 / BF16 16 bit 约 0.5×~1× 训练、部分高精度推理
FP32 32 bit 约 0.25× 或更低 高精度训练、科学计算

以某 NPU 为例,若 INT8 算力为 256 TOPS,则 FP16 可能只有 128 TFLOPS 左右,FP32 可能进一步降至 32 TFLOPS 量级。因此,看到“256 TOPS”时,必须追问:这是 INT8 还是 FP16?是否包含稀疏加速?否则数字没有可比性。

四、算力利用率:标称算力与实际性能的差距

标称算力是理论峰值,实际运行中很难跑满。真正决定系统表现的是算力利用率(Utilization),即实际有效算力与理论峰值之比。它受限于内存带宽、数据搬运、算子调度、并行度、模型结构等多种因素。

常见影响因素包括:

  • 内存墙:数据搬运速度跟不上计算速度,算力单元等待数据而空转。
  • 算子碎片化:小算子、非规则算子难以高效映射到硬件阵列。
  • 批处理不足:batch size 过小,无法填满并行计算单元。
  • 精度切换开销:混合精度计算中频繁转换格式,增加额外开销。
  • 调度与同步:多核、多任务竞争导致等待和空泡。

工程上,一个优化良好的感知模型在 NPU 上的利用率通常可达 40%~70%,而未经优化的模型可能只有 10%~20%。这意味着标称 200 TOPS 的芯片,实际有效算力可能只有 40~140 TOPS。规划算力时,必须按有效算力而非峰值算力做预算。

五、案例:同一模型在不同精度下的算力账

假设某 BEV 感知网络共有 50 GMAC(500 亿次乘加),即约 100 GOPS 的运算量。若要求实时运行在 30 FPS,则每秒运算需求为:

单帧运算量 = 100 GOPS
目标帧率   = 30 FPS
所需算力   = 100 × 30 = 3000 GOPS = 3 TOPS

若 INT8 利用率 60%,则需标称算力:
3 TOPS ÷ 0.6 = 5 TOPS(INT8)

若改用 FP16,算力倍率约 0.5×:
所需标称算力 ≈ 10 TFLOPS(FP16)

这个例子说明:同一网络,精度从 INT8 提升到 FP16,所需标称算力可能翻倍。因此在算力规划中,精度选择不是“越高越好”,而是要在精度损失与算力成本之间做权衡。

实用建议:评估芯片时,先确认算力对应的精度(INT8/FP16/FP32),再确认是否含稀疏加速,最后用目标模型实测利用率,三者结合才能得到可信的有效算力。

六、常见误区与复盘

误区一:只看 TOPS 数字大小。不同精度、不同统计口径下的 TOPS 不可直接比较,必须对齐精度和测试条件。

误区二:把峰值算力当有效算力。峰值只是上限,实际利用率受内存带宽和调度影响,规划时应留出 30%~50% 余量。

误区三:忽视精度对算力的影响。同一芯片 INT8 与 FP32 算力可能相差 4 倍以上,模型精度需求直接决定算力预算。

误区四:忽略 MAC 与 OPS 的换算。把 MAC 数直接当作 OPS 数,会导致算力需求被低估一半。

复盘来看,算力规划的正确顺序是:先明确模型运算量(MAC/OPS),再确定精度需求,然后按目标帧率计算所需有效算力,最后结合利用率反推标称算力并留出余量。只有把 TOPS、FLOPS、MAC、精度和利用率放在同一张账上,算力规划才真正可靠。

算力基础概念关系图 MAC 乘加运算 1 MAC = 2 OPS 神经网络最小运算单元 数值精度 INT8 / INT4 / FP16 / FP32 精度越低,算力倍率越高 算力单位 TOPS / FLOPS / GOPS 1 TOPS = 10¹² OPS 利用率 40%~70% 实际/峰值 有效算力 = 标称算力 × 精度倍率 × 利用率 例:200 TOPS(INT8) × 0.5(FP16) × 0.6 = 60 TFLOPS 有效算力 内存带宽 数据搬运瓶颈 算子调度 碎片化与空泡 批处理规模 并行度不足 精度切换 格式转换开销 算力规划顺序:模型运算量 → 精度需求 → 目标帧率 → 有效算力 → 标称算力(留余量) 对齐精度与统计口径,才能让 TOPS 数字真正可比