UB算子融合推荐分析样例

背景介绍

算子是组成模型的基本单元。模型转换时,会进行算子融合来达到网络性能提升的目的。当模型中存在算子融合规则未覆盖且可融合的算子时,模型转换完成则无法达到最优性能。本节以YOLOV5模型为例,介绍通过专家系统UB算子融合推荐功能自动发现并输出模型中可融合的Cube和Vector算子,帮助用户快速定位可融合算子,提升模型性能。

  • 本文仅介绍专家系统UB算子融合推荐功能的操作及分析过程,对于OM模型中算子融合的具体操作此处不做阐述。
  • 有关UB算子融合的详细介绍请参见图融合和UB融合规则参考
  • 有关模型转换的详细介绍请参见模型转换和调优

专家系统操作

  1. 准备通过模型转换生成的OM离线模型文件作为UB算子融合推荐功能的输入文件。

    OM离线模型文件存放路径为${data_path}数据目录根路径的project目录下。

  2. 单击选择并打开已编译完成的应用工程。
  3. 单击菜单栏Ascend > Advisor,弹出专家系统工具界面 。如图1所示。

    图1 专家系统工具界面

  4. 单击图1界面左上角New Project按钮,打开专家系统配置界面。

    图2 OM only

  5. 图2所示设置对应参数并单击Start执行分析。
  6. 完成分析后,系统展示分析结果。输出YOLOV5模型内的可融合算子如下。

    图3 分析结果Summary页面(Computational Graph Optimization)

问题分析

首先查看图3可以大致了解可融合算子类型和名称。再通过单击See More,可以查看可融合算子在模型中的位置和明细,如图4所示。

图4 分析结果Computational Graph Optimization展示

由于版本更新,以上界面可能与实际情况不一致,请以实际界面为准。

问题解决

具体融合操作需开发者自行修改算子代码,完成融合后的模型结构示例如图5所示。

图5 YOLOV5网络模型结构(局部)

图中以YOLOV5网络模型的Conv2D、Mul和AscendQuart算子融合为Conv2D算子为例,左侧部分为融合前的YOLOV5网络模型结构,右侧部分为优化后的YOLOV5网络模型结构,可以看到优化后模型结构得到了简化。

结论

通过专家系统工具对OM模型的UB算子融合分析可知专家系统工具可以快速准确定位到模型中的可融合算子,减少用户的定位时间,提升效率。