---
title: 执行调优
description: "- 已经完成IR构图，具体开发过程请参见《图开发(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/graphdevg/atlasag_25_0081.html)》。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/aoe/aoeep_16_065.html
sourcePath: /source/zh/canncommercial/900/devaids/aoe/aoeep_16_065.html
indexId: e9c0f4235a57cd682302b0bb2b527000676e2d694925011c87709eb22c11b5c659
---
# 执行调优

#### 前提条件

- 已经完成IR构图，具体开发过程请参见《图开发(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/graphdevg/atlasag_25_0081.html)》。
- 获取IR构图对应的air文件。步骤如下。

  1. 打开开发好的图cpp文件，在构图之后，调用aclgrphBuildInitialize接口之前，通过增加如下代码可以生成对应的air文件。/path/to/graph.air表示对应的air文件路径和名称，请根据实际情况修改。SaveToFile接口的详细描述请参见“SaveToFile(https://www.hiascend.comdocument/detail/zh/canncommercial/900/API/ascendgraphapi/atlasgeapi_07_0017.html)”。

```
graph.SaveToFile("/path/to/graph.air");
```


  2. 保存如上cpp文件，并重新执行该文件。获取对应的air文件graph.air。
    调优完成后，请将graph.SaveToFile("/path/to/graph.air");注释掉，防止生成冗余的air文件。

AIR(Ascend Intermediate Representation)，类似ONNX，是华为定义的针对机器学习所设计的开放式的文件格式，能更好地适配Ascend AI处理器。


#### 操作步骤

- 单个AOE进程时，请确保具备如下条件。多个AOE进程时，可参考如下条件自行扩展。

  - 调优用户的家目录下磁盘可用空间>=20G。
  - 可用内存>=32G。注意：如果模型中存在大shape算子，可能需要更多内存。
  - 算子调优时Host CPU要求：若调优时未指定--model_path，则Host CPU建议>=TE_PARALLEL_COMPILER + TUNING_PARALLEL_NUM + 1 + min(CPU的核数/2, 8) + 50。若调优时指定了--model_path，则Host CPU建议>=TE_PARALLEL_COMPILER + TUNING_PARALLEL_NUM + 1 + min(CPU的核数/2, 8) + 58。其中TE_PARALLEL_COMPILER和TUNING_PARALLEL_NUM的说明请分别参考    表1
和    表1
。
  - 子图调优时Host CPU建议>=2 *TUNING_PARALLEL_NUM + TE_PARALLEL_COMPILER + 1。其中TE_PARALLEL_COMPILER和TUNING_PARALLEL_NUM的说明请分别参考    表1
和    表1
。
  - device核数>=模型中所有算子使用的最大核数。
  - device内存：和模型相关，和模型的内存复用相关。

- 调优前，请确保关闭Profiling功能，避免影响调优结果。关闭Profiling功能具体操作请参见《性能调优工具(https://www.hiascend.com/document/detail/zh/canncommercial/900/devaids/Profiling/atlasprofiling_16_0144.html)》。
- AOE不支持不同用户同时使用同一device进行调优。
- AOE调优引擎还提供了其他环境变量控制功能，详情可参见  配置环境变量
。
- 推荐先进行子图调优，再进行算子调优。原因是：先进行子图调优会生成图的切分方式，子图调优后算子已经被切分成最终的shape了，再进行算子调优，会基于这个最终shape去做算子调优。如果优先算子调优，这时调优的算子shape不是最终切分后的算子shape，不符合实际使用场景。


- 执行AOE调优引擎进行子图调优
  命令示例如下所示：

```
aoe --framework=1 --model=./xxxx.air --job_type=1
```


- 执行AOE调优引擎进行子图重载调优
  子图调优中断后，希望从上次的已有的调优阶段开始继续调优，则可以选择该模式。

```
aoe --framework=1 --model=./xxxx.air --job_type=1 --reload
```


  该命令必须在上次执行调优命令的相同目录下使用。原因是重载调优需要使用上次调优的中间文件，中间文件存放在上次执行调优命令路径下的aoe_workspace目录。


- 执行AOE调优引擎进行算子调优
  命令示例如下所示：

```
aoe --framework=1 --model=./xxxx.air --job_type=2
```


  更多AOE参数请参见AOE参数说明。
