在算子执行过程中,可能会因为以下几个原因产生额外的启动开销或者头开销:
头开销会随着使用的核数增加而增加。下图展示了这部分头开销随启动核数的变化情况。
对于整体耗时在微秒级别且单核计算量耗时较少的算子,可以通过减少启动核数并增加单核计算量的方式来获得性能提升。这种优化方式的本质是在头开销耗时和单核计算量耗时之间进行权衡。为了达到最佳性能,开发者需要通过实践尝试,找到最合适的核数设置。
通常,算子工程会通过算子使用的指令自动识别算子类型,但该功能无法区分AIC和AIV的配比,默认按照AIV:AIC为1:2的配比下发任务。此外,自动识别功能可能失效,因为其依赖于编译优化的结果。所以推荐用户手动设置算子的Kernel类型。具体设置方法请参考设置Kernel类型。