推理性能核心指标:吞吐量、延迟、算力利用率与功耗效率

各位同学,今天我们来聊聊NPU推理性能的四个核心指标。说实话,这玩意儿是衡量你模型跑得好不好的「硬通货」。我在做AI芯片优化那几年,见过太多人只盯着一个指标看,结果上线就翻车。你想想看,光看延迟低,但吞吐上不去,服务器扛不住;光看算力利用率高,但功耗爆炸,机房电费比模型推理还贵——这都不行。

所以,咱们得把这四个指标吃透。它们分别是:吞吐量(Throughput)、延迟(Latency)、算力利用率(Utilization)、功耗效率(TOPS/W)。下面我一个一个讲,顺便聊聊我在项目里踩过的坑。

1. 吞吐量(Throughput)

吞吐量,说白了就是「单位时间内能处理多少个请求」。比如你的NPU一秒能跑1000张图片,那吞吐就是1000 FPS(Frames Per Second)。

测量方法:

  • 固定batch size,跑一批推理任务,记录总耗时。
  • 公式:Throughput = 总样本数 / 总耗时。
  • 注意:要跑足够多的轮次(比如1000次以上),避免冷启动干扰。

重要:吞吐量受batch size影响很大。batch越大,吞吐通常越高,但延迟也会变长。所以别只看一个数,要结合场景看。

我的经验:我曾经优化过一个视频分析模型,一开始batch size设成1,吞吐只有200 FPS。后来我调成32,吞吐直接飙到1800 FPS。但注意,延迟从5ms变成了80ms——这就是典型的trade-off。

2. 延迟(Latency)

延迟,就是「一个请求从进来到出去花了多久」。用户感知最直接的就是这个。你刷抖音,点一下等3秒才出画面,那就是延迟太高。

测量方法:

  • 单次推理:记录从输入到输出的时间。
  • 多次测量取平均值,或者看P99(99%的请求都在这个时间内完成)。
  • 注意:要排除网络传输、数据预处理等干扰。

避坑指南:我曾经在项目里只测了平均延迟,结果上线后用户投诉卡顿。后来一查,P99延迟是平均值的5倍——因为NPU在遇到大模型时偶尔会卡一下。所以,我建议你至少看P95或P99,别只看平均。

3. 算力利用率(Utilization)

算力利用率,就是「NPU的计算单元有多少时间在干活」。理想情况是100%,但实际很难。因为数据搬运、同步、等待都会浪费算力。

测量方法:

  • 使用NPU厂商提供的profiling工具(比如NVIDIA的ncu,或者华为的MindStudio)。
  • 看计算单元(如MAC阵列)的占用率。
  • 公式:Utilization = 实际计算时间 / 总运行时间。

关键点:算力利用率低,通常是因为内存带宽瓶颈。你想想看,NPU算得飞快,但数据从DDR搬不过来,那算力就闲着。我见过一个模型,算力利用率只有30%,后来优化了数据预取,直接干到85%。

4. 功耗效率(TOPS/W)

功耗效率,就是「每瓦功耗能提供多少算力」。单位是TOPS/W(Tera Operations Per Second per Watt)。这个指标在边缘设备上特别重要——你总不能为了跑个模型,让手机发烫到能煎鸡蛋吧?

测量方法:

  • 用功率计或NPU自带的功耗传感器,记录推理时的平均功耗。
  • 同时测量吞吐量(TOPS)。
  • 公式:TOPS/W = 吞吐量(TOPS) / 平均功耗(W)。

我的建议:别只看峰值TOPS/W,要看实际负载下的。有些NPU标称很高,但一跑真实模型就掉得厉害。我习惯在模型推理时,同时记录功耗曲线,看有没有异常尖峰。

知识体系图

下面这张图,帮你理清这四个指标的关系。我画了个简单的流程图,方便你理解。

NPU推理性能核心指标 吞吐量 延迟 算力利用率 功耗效率 单位时间处理量 单次请求耗时 计算单元占用率 每瓦算力产出 四个指标互相制约:吞吐高可能延迟高,利用率高可能功耗高 实际优化时,要根据场景做权衡

指标对比表

为了方便你快速查阅,我把四个指标的关键信息整理成了表格。

指标 定义 测量工具 常见陷阱
吞吐量 单位时间处理样本数 计时器 + 计数器 冷启动影响,batch size不同结果差异大
延迟 单次请求响应时间 高精度计时器 只看平均不看P99
算力利用率 计算单元占用比例 Profiling工具 忽略内存带宽瓶颈
功耗效率 每瓦算力产出 功率计 + 吞吐测量 只看标称不看实际负载

实践建议

嗯,到这里你应该对这四个指标有感觉了。我个人习惯是:先定场景,再选指标。比如做云端推理,我优先看吞吐和算力利用率;做手机端推理,我优先看延迟和功耗效率。

另外,我建议你每次优化时,把四个指标都记录下来。我曾经在优化一个模型时,把吞吐提了30%,但功耗效率掉了20%——后来发现是batch size太大导致内存带宽饱和。所以,别只看一个数,要综合看。

注意:测量时一定要控制变量。比如环境温度、芯片频率、数据预处理方式,这些都会影响结果。我见过有人因为没关CPU的turbo boost,导致测量结果忽高忽低,白忙活了一周。

好了,这一章就到这里。记住这四个指标,它们是NPU性能优化的基石。下一章我们会深入讲如何用这些指标指导实际优化,到时候我会拿一个真实案例来拆解。

可可精品资料库