
我在迁移模型到npu运行时遇到了一些问题。如图,这是我prof one step的结果,经过我的一些修改可以保证npu的利用率为70%左右,但是其中因为一些算子如repeat等需要进行item操作来获取outputsize,这时会导致较长时间的同步等待,cpu端不能继续下发算子。
我觉得最主要的原因是进行item操作时npu设备还在计算,或者需要的数据计算在npu还没有轮到。相同代码在gpu上调用的cuda算子耗时都比较少,没有出现这种item导致cpu等待过长的现象。像这种情况应该如何进行优化呢?是否只能继续优化耗时较长的算子呢?
我在迁移模型到npu运行时遇到了一些问题。如图,这是我prof one step的结果,经过我的一些修改可以保证npu的利用率为70%左右,但是其中因为一些算子如repeat等需要进行item操作来获取outputsize,这时会导致较长时间的同步等待,cpu端不能继续下发算子。
我觉得最主要的原因是进行item操作时npu设备还在计算,或者需要的数据计算在npu还没有轮到。相同代码在gpu上调用的cuda算子耗时都比较少,没有出现这种item导致cpu等待过长的现象。像这种情况应该如何进行优化呢?是否只能继续优化耗时较长的算子呢?