多流
使用背景
在推荐推理场景下,模型大多存在算子数量大,算子shape小的特点,且通常会要求单次推理时间在合理范围内尽可能的提高吞吐量(单次推理的数据量*单位时间内的推理次数)。由于算子shape小,通常会出现算力利用率低从而导致性能不佳的情况,一般需要开启多流并行推理,提升利用率,进而提升吞吐量。
使用约束
- 多流并行场景下, 存在资源抢占,比如带宽,计算资源等,单个推理的时延,会比单流场景下单个推理的时延更长,在时延敏感场景使用需要做好时延控制;
- 多流如果不配合分核,可能会存在计算资源排队严重情况,需不需要配合分核一起使用,需要根据具体实际数据而定;
- 需要根据模型实际吞吐量,控制流数;流数越大,NPU利用率会越高,实际上卡的吞吐量就会越大,实际上超过流数某个阈值之后,会存在不同流之间刷cache的现象,导致整体吞吐量下降。
父主题: 性能调优方法