| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 19 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 19 天前 | ||
| 19 天前 |
TensorFlow 场景用例演示
功能描述
使用 AutoFuse 完成 TensorFlow 网络下的算子融合。通过 GE(Graph Engine)中的 AutoFuse fusion pass 自动识别可融合算子并完成融合。
目录结构
├── README.md
├── README_en.md
├── common/
│ ├── __init__.py
│ ├── config.py # 公共配置
│ ├── profiling_utils.py # Profiling 公共工具
│ └── tf_runner.py # TF1/TF2 公共运行框架
├── af_tf_eleandele/
│ ├── README.md
│ ├── README_en.md
│ └── test_abs_relu_exp.py # abs + relu + exp 融合样例
├── af_tf_eleandbroadcast/
│ ├── README.md
│ ├── README_en.md
│ └── test_abs_add_relu.py # abs + add + relu 融合样例
└── af_tf_eleandreduce/
├── README.md
├── README_en.md
└── test_abs_reducesum.py # abs + reduce_sum 融合样例
前置说明
运行本用例前,需依次完成以下步骤:
以下命令均在 graph-autofusion 仓库根目录执行。
-
通过 安装指导 正确安装 toolkit 和 ops 包,并配置环境变量
-
通过 环境编译部署 搭建 TensorFlow 环境(x86_64 可直接 pip 安装,aarch64 需源码编译)
-
也可使用一键配置脚本自动搭建环境(仅 x86_64 架构可用):
bash scripts/env_install/tensorflow/setup_tf_env.sh脚本完成后激活环境:
source scripts/env_install/tensorflow/env/activate_tf1.sh # TF 1.15 # 或 source scripts/env_install/tensorflow/env/activate_tf2.sh # TF 2.6.5aarch64 架构不支持此脚本:aarch64 请按 aarch64 架构 TF 源码编译 手动编译。
设置环境变量
# cann包安装路径变量定义,值根据实际安装位置设置
export CANN_INSTALL_PATH=/usr/local/Ascend
# 激活cann包中驱动相关环境变量
source $CANN_INSTALL_PATH/driver/bin/setenv.sh
# 激活cann包中toolkit相关环境变量
source $CANN_INSTALL_PATH/ascend-toolkit/set_env.sh
# 假设跑在 device0
export ASCEND_DEVICE_ID=0
# 开启自动融合
export AUTOFUSE_FLAGS="--enable_autofuse=true"
执行用例
当前包含以下三个用例,可根据实际场景参考对应文档执行:
- Elementwise + Elementwise:
abs + relu + exp - Elementwise + Broadcast:
abs + add + relu - Elementwise + Reduce:
abs + reduce_sum
预期执行结果
各用例脚本均执行 100 步推理,无报错表示用例执行成功;是否发生融合,需要通过 Dump 图或 Profiling 进一步确认。