batchsize调优
使用背景
针对部分小算子,增大batchsize可以降低头开销的占比。同时可能增大小算子占用核数以提升整体性能。能更大程度的利用NPU核的计算资源,减少权重的重复搬运。
使用约束
- 增大batchsize,会提升算子计算时所需要的核数,与分核功能同时使用时,会导致时延劣化严重,需要具体时延验证最佳的batchsize。
- Cache命中率会下降。
- batchsize一般由客户业务决定,增大bs可以在本地压测脚本中测试出一个性能,正式推到线上的时候,由于batchsize不固定,也可能存在padding的场景,所以最佳性能会不如本地。
具体案例
以下为真实模型数据,可以看到吞吐量随batchsize增大而增大。
batchsize |
推理耗时(ms) |
吞吐量 |
|---|---|---|
86 |
8.5 |
10117 |
128 |
10.4 |
12258 |
256 |
14.9 |
17231 |
512 |
26.7 |
19195 |
父主题: 性能调优方法