分核
使用背景
以A2服务器配置的NPU卡为例,一个卡中包含ai cube core计算单元24个,ai vector core计算单元48个,算子执行时,会根据shape来计算所需要的核数,一般情况下会用满24个cube core或者48个vector core;算子使用的核数越多,算子每个核需要执行的计算量就会越少,导致算子的耗时降低。
针对CTR推理场景,有多实例并发的因素,对于算子的性能分析,不能单看算子的耗时,还需要看算子占用的资源总量,即核数。假设某个cube算子耗时100us,占24个cube core,那么在100us的时间内,NPU单卡只能执行这一个算子。同时,假设在相同算子,限核到12个cube core后,耗时150us,则相当于在150us内实际执行了2个该算子,平均执行时间只有75us,相较于原始场景更优。
这里,限核带来的收益主要有如下几点:
使用约束
在单流场景下,分核后的推理耗时对比不分核的推理耗时,通常都会有劣化;在时延敏感场景需要根据时延要求把控好时延劣化范围。
父主题: 性能调优方法