昇腾社区首页
中文
注册

优化方法

常见的优化方法如下所示:

  1. 减少stream同步函数调用,stream同步函数调用耗时高,尽量多往一个stream上下发多个Kernel后做一次同步。
  2. 针对PyTorch框架的模型,尽量把Python逻辑使用加速库替换,例如将模型Sampling逻辑使用加速库的一个Operation替换来提高性能。
  3. Plan Execute异步化,Plan逻辑包含Setup和Execute两部分逻辑,如果Plan的Setup和Execute在一个线程执行,调度的时间是两阶段总和;将Execute在单独一单独的线程异步执行,那总的调度时间就减半。
  4. PyTorch框架默认开启算子异步下发来达到Plan Execute异步化的目的,该功能为加速库提供的调度侧多线程功能,能有效提高调度侧运行速度。
    图1 算子异步下发后host侧流水
  5. 针对其他框架,例如PaddlePaddle,可以启动一个后台线程来执行Plan的Execute来达到Plan Execute的异步化目的,同时注意stream同步时清空后台线程的队列里任务。