已合并
【PR】: 补齐tensorflow相关的autofuse融合样例 #1765
【PR】: 补齐tensorflow相关的autofuse融合样例 #1765
已合并
zzq创建于 7 天前
zzq成员
7 天前

Pull Request

描述

补齐tensorflow相关的autofuse融合样例。

变更类型

请选择本次引入的变更类型:

关联的Issue

如何测试

描述测试此变更的步骤和前提条件:
1.根据example/tensorflow目录下对应用例文档执行用例并观察结果

核对清单

其他信息

在此添加任何其他关于本次 PR 的说明。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 zzq 的贡献)
Zzzq成员
7 天前 添加了label:enhancement
Zzzq成员
7 天前 创建了 pull request,commit ef61c602
atomgit-bot
atomgit-bot
7 天前 评论:

变更摘要

本 PR 旨在补齐 TensorFlow 场景下的 AutoFuse 融合样例,新增两个基于 tensorflow 的 NPU 融合示例脚本:af_tf_eleandbroadcast/test_abs_add_relu.pyabs -> add(broadcast) -> relu)与 af_tf_eleandreduce/test_abs_reducesum.pyabs -> reduce_sum)。两个样例均支持通过 --mode 参数在 TF1(npu_bridge)与 TF2 兼容模式(npu_device.compat)下运行,通过 configure_npusess_config 上配置 NpuOptimizer(含 use_off_linegraph_run_modeprofiling_modeprofiling_options 等参数)开启推理模式与 profiling,并在执行结束后借助 msprof --export=on 导出新增的 PROF_* profiling 目录,供用户按 example/tensorflow 目录下对应用例文档执行并观察融合结果。

主要改动

  • 新增 test_abs_add_relu.py 样例: 构建 tf.abs -> tf.add(含 broadcast 广播)-> tf.nn.relu 的融合模型,以 float16 输入在 NPU 上执行 100 步并导出 profiling 数据。
  • 新增 test_abs_reducesum.py 样例: 构建 tf.abs -> tf.reduce_sum(axis=1) 的融合模型,同样以 float16 输入执行 100 步并导出 profiling 数据。
  • 双模式运行支持: 两个脚本均通过 --modetf1/tf2-compat)选择运行环境,tf1 通过 import npu_bridge 的副作用注册 NPU 算子,tf2-compat 通过 npu_device.compat.enable_v1() 切换到 v1 行为,并相应选用 tf.placeholder/tf.ConfigPrototf.compat.v1 版本。
  • NPU 配置与 profiling 导出: configure_npusess_config 上添加名为 NpuOptimizer 的自定义优化器(use_off_line=Truegraph_run_mode=0、开启 profiling_mode 并设置 profiling_options JSON),执行结束后由 export_new_profiling 对比前后 PROF_* 目录,对新增目录执行 msprof --export=on 完成数据导出。
likedislike
atomgit-bot
atomgit-bot
7 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
7 天前 添加了label:cann-cla/yes
此处折叠了79条消息 查看更多
xuyafei成员
6 天前 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
6 天前 添加了label:lgtm
张德鹏成员
6 天前 评论:

/approve

likedislike
CANN-robotCANN-robot成员
6 天前 添加了label:approved
CANN-robotCANN-robot成员
6 天前 合入了pull request