下载
中文
注册

图模式简介

图引擎(Graph Engine,简称GE)是CANN平台的图模式实现,是计算图编译和运行的控制中心。

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

GE通过统一的图开发接口支持多种AI框架的接入,并支持自定义图结构,帮助开发者在昇腾硬件上快速部署神经网络业务。

图1 GE逻辑架构图

关键技术与收益

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

总结来说,图模式具有全局视角,可以更好的从编译优化、内存和生命周期管理等视角进行优化处理,以获取更好的性能收益。相较于单算子模式,图模式在Host操作系统为ARM架构、增量模型的场景下会有更明显的性能优势,详细性能数据可参见Link

使用场景

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

场景

描述

链接

PyTorch框架使能图模式

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

PyTorch框架使能图模式

TensorFlow框架使能图模式

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

TensorFlow框架使能图模式

onnx/pb模型图模式执行

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

onnx/pb模型图模式执行

Ascend Graph构图

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

Ascend Graph构图

DataFlow构图

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

DataFlow构图

自定义算子入图

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

自定义算子入图