---
title: 调用流程
description: "ATC工具运行前需要准备环境和模型，本节给出ATC工具的运行流程以及和各组件的交互流程。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/atctool/atlasatc_16_0006.html
sourcePath: /source/zh/canncommercial/900/devaids/atctool/atlasatc_16_0006.html
indexId: 96958e09c7d86adbe7e50e3ff616914d968512bb7674b6c912d5c262cfbcae8467
---
# 调用流程

ATC工具运行前需要准备环境和模型，本节给出ATC工具的运行流程以及和各组件的交互流程。

#### 运行流程

运行流程如图1所示。

图1 运行流程

1. 使用ATC工具之前，请先在开发环境安装CANN软件包，获取相关路径下的ATC工具，然后设置环境变量，详细说明请参见  准备环境
。
2. 准备要进行转换的模型或单算子描述文件，并上传到开发环境。单算子描述文件相关配置请参见  单算子模型转换
。
3. 使用ATC工具进行模型转换，模型转换过程中使用的参数请参见  参数说明
。


#### 模型转换交互流程

下面以开源框架网络模型转换为om离线模型为例，详细介绍模型转换过程中与周边模块的交互流程。

根据网络模型中算子计算单元的不同，分为AI Core算子和AI CPU算子：AI Core算子是指在AI处理器的核心计算单元上执行的算子，而AI CPU算子则是在AI CPU计算单元上执行的算子。

在AI Core算子、AI CPU算子的模型转换交互流程中，虽然都涉及图准备、图拆分、图优化、图编译等节点，但由于两者的计算单元不同，因此涉及交互的内部模块也有所不同，请参见下图。

关于算子类型、基本概念等详细介绍请参见《Ascend C算子开发(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/Ascendcopdevg/atlas_ascendc_map_10_0002.html)》。如果用户使用的网络模型中有自定义算子，也请优先参见上述手册开发部署好自定义算子，模型转换时会优先去查找自定义算子库匹配模型文件中的算子；若匹配失败，则会去查找内置算子库。

模型转换过程中，若遇到AI CPU算子不支持某种数据类型导致编译失败的场景，可通过启用Cast算子自动插入特性快速将输入转换为算子支持的数据类型，从而实现网络的快速打通，详细流程请参见开启AI CPU Cast算子自动插入特性。

- AI Core算子模型转换交互流程图2 AI Core算子模型转换交互流程

  1. 调用框架Parser功能，将主流框架的模型格式转换成CANN模型格式。
  2. 图准备阶段：该阶段会完成原图优化以及Infershape推导（设置算子输出的shape和dtype）等功能。
  3. 图拆分阶段：GE（Graph Engine，图引擎）根据引擎拆分多个子图。
  4. 图优化阶段：GE将拆分后的子图进行优化，优化时按照当前子图流程对AI Core算子进行预编译和UB（Unified Buffer）融合，然后根据算子信息库中算子信息找到算子实现将其编译成算子kernel（算子的*.o与*.json），最后将优化后子图返回给GE。Atlas 350 加速卡不支持UB融合。
    优化后的子图合并为整图，再进行整图优化。

  5. 图编译阶段：GE进行图编译，包含内存分配、流资源分配等，图编译完成之后生成适配AI处理器的离线模型文件（*.om）。
- AI CPU算子模型转换交互流程图3 AI CPU算子模型转换交互流程

  1. 调用框架Parser功能，将主流框架的模型格式转换成CANN模型格式。
  2. 图准备阶段：该阶段会完成算子基本参数校验以及Infershape推导（设置算子输出的shape和dtype）等功能。
    另外，GE将整图下发给AI CPU Engine，AI CPU Engine读取算子信息库，匹配算子支持的format，并将format返回给GE。

  3. 图拆分阶段：GE根据引擎拆分多个子图。
  4. 图优化阶段：GE将拆分后的子图下发给AI CPU Engine，AI CPU Engine进行子图优化，并将优化后子图返回给GE。
    优化后的子图合并为整图，再进行整图优化。

  5. 图编译阶段：GE进行图编译，包含内存分配、流资源分配等，并向AI CPU Engine发送genTask请求，AI CPU Engine返回算子的taskinfo信息给GE，图编译完成之后生成适配AI处理器的离线模型文件（*.om）。
