昇腾社区首页
中文
注册

图模式简介

图引擎(Graph Engine,简称GE)是计算图的编译运行控制中心,支持神经网络在CANN平台通过图模式执行。

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

GE提供统一的图开发接口,支持多种AI框架的接入,并且允许开发者自定义图结构。这种灵活性帮助开发者在昇腾硬件上快速、高效地部署神经网络模型。

图1 GE逻辑架构图

关键技术与收益

GE提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,使模型获得最优执行性能。关于GE关键技术的详细介绍,开发者可访问如下链接获取:

总体来说,图模式具有全局视角,可以更好的从编译优化、内存和生命周期管理等维度进行优化处理,以获取更好的内存与性能收益。

使用场景

基于GE图引擎能力,目前CANN支持如下几种图模式使用场景:

场景

描述

PyTorch框架使能图模式

支持PyTorch框架网络脚本通过图模式运行。

TensorFlow框架使能图模式

支持TensorFlow框架网络脚本通过图模式运行。

onnx/pb模型图模式执行

如果您已有训练好的onnx、pb等模型,可通过如下两种方式在昇腾平台上基于图模式运行。
  • 通过ATC命令行工具将原始模型转换为适配昇腾AI处理器的离线模型(*.om)文件,然后通过AscendCL接口加载模型并执行推理。
  • 通过GE的C++ Parser接口(aclgrphParseONNX、aclgrphParseTensorFlow等),将原始框架模型格式转换为CANN模型格式,并通过图模式在昇腾硬件上加速执行。

Ascend Graph构图

基于GE提供的Ascend Graph构图接口全新构造可直接在昇腾硬件上运行的图。

DataFlow构图

基于GE提供的适用于异构计算场景的DataFlow构图接口构造可直接在昇腾硬件运行的Graph。

自定义算子入图

当开发者在执行PyTorch/TensorFlow网络或者基于算子原型构造Ascend Graph时,如果遇到了AOL算子加速库(Ascend Operator Library)中不支持的算子,需要开发者先开发自定义算子,再将自定义算子入图。