---
title: 概述
description: "图模式是神经网络模型的一种运行模式，在图模式下用户首先将模型的计算过程构造成一张图，然后通过GE将图下发到昇腾硬件执行。相对于单个算子依次下发的方式，图模式下，GE可以通过计算图优化、多流并行、内存复用、模型下沉等技术手段，加速模型执行效率，减少模型内存占用。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/Ascendcopdevg/atlas_ascendc_10_0077.html
sourcePath: /source/zh/canncommercial/900/programug/Ascendcopdevg/atlas_ascendc_10_0077.html
indexId: 05a66f5fbfae9b1ae490f061635d06e893dd72bc0b79c9b48a948c62d40bf68080
---
# 概述

图模式是神经网络模型的一种运行模式，在图模式下用户首先将模型的计算过程构造成一张图，然后通过GE将图下发到昇腾硬件执行。相对于单个算子依次下发的方式，图模式下，GE可以通过计算图优化、多流并行、内存复用、模型下沉等技术手段，加速模型执行效率，减少模型内存占用。

算子入图的开发流程如下图所示：算子工程创建完成后，基于工程代码框架完成算子原型定义、kernel侧算子实现、host侧tiling实现并完成算子入图开发，通过工程编译脚本完成算子的编译部署，之后即可基于图IR执行算子，比如IR构图(https://www.hiascend.comdocument/detail/zh/canncommercial/900/programug/graphdevg/atlasag_25_0006.html)的方式调用自定义算子。该开发流程以工程化算子开发为基础，除了需要提供工程化算子开发中的算子实现文件外，还需要额外交付算子入图的代码文件。


1. 环境准备。

  a. CANN软件安装请参考    环境准备
。
  b.     创建算子工程
。使用msOpGen工具创建算子开发工程。
2. 算子实现。

  -     算子原型定义
。通过原型定义来描述算子输入输出、属性等信息以及算子在AI处理器上相关实现信息，并关联tiling实现等函数。
  - Kernel侧算子实现和host侧tiling实现请参考    SIMD算子实现
；工程化算子开发，支持开发者调用Tiling API基于CANN提供的编程框架进行tiling开发，kernel侧也提供对应的接口方便开发者获取tiling参数，具体内容请参考    Kernel侧算子实现
和    Host侧Tiling实现
，由此而带来的额外约束也在上述章节说明。
3. 算子入图（GE图）开发。算子入图场景下，需要提供shape推导等算子入图适配函数的实现。
4. 编译部署。通过工程编译脚本完成算子的编译部署，分为算子包编译和算子动态库编译两种方式。
5. 图编译和图执行：基于图IR执行算子，比如IR构图(https://www.hiascend.comdocument/detail/zh/canncommercial/900/programug/graphdevg/atlasag_25_0006.html)的方式调用自定义算子。
