减少同步接口调用

减少训练脚本或PyTorch适配层对同步接口的调用,包括流同步、device同步接口。

基本原理

同步接口的语义是host阻塞等待直到device上所有算子执行完成。当host侧线程调用同步接口后,需要等待device所有算子执行完才能下发后续算子,这样会造成host下发断流水,在profiling数据上表现为device执行出现free time。

使用场景

使用PyTorch框架或直接调用ACL接口进行训练。

操作步骤

  1. 排查脚本或PyTorch适配层中对同步接口调用的必要性。
  2. 去除不必要的同步接口调用。