昇腾社区首页
中文
注册
开发者
下载

host

分析过程

profiling的timeline文件,通过chrome://tracing/网页打开,可以看到类似这种的算子下发。

如上图所示,device上存在大量气泡,卡算力未用满。

这种情况一般见于动态图场景或者单算子下发场景,依赖host侧处理计算完成后,再下发单个算子,同时算子执行时间小于host侧处理时间;

host侧有计算工作量的,通过TensorFlow原生的Profiler工具导出,查看host和device耗时占比,以及CPU利用率判断;混合计算开启后(可参考:www.hiascend.com),系统会自动把不能在device侧执行的算子留在host侧执行,也可以根据用户配置指定某些算子不下沉到device上,从而导致host计算量变高。可以通过TensorFlow原生的Profiler工具,抓取整个session->run的性能(参考www.tensorflow.org),分析host侧与device侧耗时占比。

解决方案

  • 单算子下发方案替换成整图下沉。
  • 动态图转静态图。
  • 增大batchsize,增加算子执行时间,减少free的缝隙时间占比。
  • host侧性能提升,CPU利用率过高的话,则要考虑CPU侧的一些优化。
  • 集群方式部署,保证host侧资源足够。
  • 单机器部署可以考虑非host bound模型和host bound模型混布。