图模式简介
图引擎(Graph Engine,简称GE)是CANN平台的图模式实现,是计算图编译和运行的控制中心。
图模式是神经网络模型的一种运行模式,在图模式下用户首先将模型的计算过程构造成一张图,然后通过GE将图下发到昇腾硬件执行。相对于单个算子依次下发的方式,图模式下,GE可以通过计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。
GE通过统一的图开发接口支持多种AI框架的接入,并支持自定义图结构,帮助开发者在昇腾硬件上快速部署神经网络业务。
图1 GE逻辑架构图
关键技术与收益
GE提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,使模型获得最优执行性能。关于GE关键技术的详细介绍,开发者可访问如下链接获取:
总结来说,图模式具有全局视角,可以更好的从编译优化、内存和生命周期管理等视角进行优化处理,以获取更好的性能收益。相较于单算子模式,图模式在Host操作系统为ARM架构、增量模型的场景下会有更明显的性能优势,详细性能数据可参见Link。
使用场景
基于GE图引擎能力,目前CANN支持如下几种图模式使用场景:
场景 |
描述 |
链接 |
---|---|---|
PyTorch框架使能图模式 |
支持PyTorch框架网络脚本通过图模式运行。 |
|
TensorFlow框架使能图模式 |
支持TensorFlow框架网络脚本通过图模式运行。 |
|
onnx/pb模型图模式执行 |
如果您已有训练好的onnx、pb等模型,可通过如下两种方式在昇腾平台上基于图模式运行。
|
|
Ascend Graph构图 |
基于GE提供的Ascend Graph构图接口全新构造可直接在昇腾硬件上运行的图。 |
|
DataFlow构图 |
基于GE提供的适用于异构计算场景的DataFlow构图接口构造可直接在昇腾硬件运行的FlowGraph。 |
|
自定义算子入图 |
当开发者在执行PyTorch/TensorFlow网络或者基于算子原型构造Ascend Graph时,如果遇到了“算子加速库”中不支持的算子,需要开发者先开发自定义算子,再将自定义算子入图。 |