推理性能核心指标:吞吐量、延迟、算力利用率与功耗效率
各位同学,今天我们来聊聊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标称很高,但一跑真实模型就掉得厉害。我习惯在模型推理时,同时记录功耗曲线,看有没有异常尖峰。
知识体系图
下面这张图,帮你理清这四个指标的关系。我画了个简单的流程图,方便你理解。
指标对比表
为了方便你快速查阅,我把四个指标的关键信息整理成了表格。
| 指标 | 定义 | 测量工具 | 常见陷阱 |
|---|---|---|---|
| 吞吐量 | 单位时间处理样本数 | 计时器 + 计数器 | 冷启动影响,batch size不同结果差异大 |
| 延迟 | 单次请求响应时间 | 高精度计时器 | 只看平均不看P99 |
| 算力利用率 | 计算单元占用比例 | Profiling工具 | 忽略内存带宽瓶颈 |
| 功耗效率 | 每瓦算力产出 | 功率计 + 吞吐测量 | 只看标称不看实际负载 |
实践建议
嗯,到这里你应该对这四个指标有感觉了。我个人习惯是:先定场景,再选指标。比如做云端推理,我优先看吞吐和算力利用率;做手机端推理,我优先看延迟和功耗效率。
另外,我建议你每次优化时,把四个指标都记录下来。我曾经在优化一个模型时,把吞吐提了30%,但功耗效率掉了20%——后来发现是batch size太大导致内存带宽饱和。所以,别只看一个数,要综合看。
注意:测量时一定要控制变量。比如环境温度、芯片频率、数据预处理方式,这些都会影响结果。我见过有人因为没关CPU的turbo boost,导致测量结果忽高忽低,白忙活了一周。
好了,这一章就到这里。记住这四个指标,它们是NPU性能优化的基石。下一章我们会深入讲如何用这些指标指导实际优化,到时候我会拿一个真实案例来拆解。