图算融合配置说明(beta特性)
概述
图算融合是MindSpore特有的网络性能优化技术。它可以通过自动分析和优化现有网络计算图逻辑,并结合目标硬件能力,对计算图进行计算化简和替代、算子拆分和融合、算子特例化编译等优化,以提升设备计算资源利用率,实现对网络性能的整体优化。相比传统优化技术,图算融合具有多算子跨边界联合优化、与MindSpore AKG(基于Polyhedral的算子编译器)跨层协同、即时编译等独特优势。
MindSpore Lite的whl包和tar包默认内置AKG。通过源码安装的MindSpore Lite,需确保已安装llvm 12.0.1。通过源码安装ascend后端则需要额外安装git-lfs。
AKG安装方法
需要先提前安装AKG才能让MindSpore Lite使能图算功能。目前,AKG已经内置在了MindSpore Lite的发布件中,在代码编译阶段,编译MindSpore Lite的时候会同时编译AKG。AKG的安装方法有两种,这两种方式对应了MindSpore Lite的tar包形态和whl包形态的两种发布件,可以任选其一进行安装:
安装tar包内置的AKG发布件
首先,前往下载页面下载MindSpore Lite端侧推理和云侧推理的tar包发布件,然后安装tools/akg/的akg的whl包。 接着在命令行中使用以下命令检查AKG是否安装成功:若无报错,则表示安装成功。
python -c "import akg"
安装MindSpore Lite的whl包
首先,前往下载页面下载MindSpore Lite的Whl包,并使用pip进行安装。
安装后可以使用以下命令检查MindSpore Lite内置的AKG是否安装成功:若无报错,则表示安装成功。
python -c "import mindspore_lite.akg"
使用方法
在模型转换阶段,通过配置converter_lite 的–configFile和–optimize选项来使能图算。
首选编写配置文件:
#文件名是akg.cfg
[graph_kernel_param]
opt_level=2
之后运行converter_lite进行模型转换。
编译Ascend后端的ONNX模型:
Ascend后端需要安装AKG融合算子实现,具体方法见部署Ascend自定义算子。
部署完成之后执行如命令即可转换ONNX模型。
./converter_lite --fmk=ONNX --modelFile=model.onnx --outputFile=model --configFile=akg.cfg --optimize=ascend_oriented
之后,就可以通过benchmark工具或者模型推理接口来运行离线模型。
目前,使用使能图算融合之后的converter_lite工具转换出的离线模型只能在本机运行,模型文件不能支持跨平台运行功能。