什么是AOE?
AOE()是一款自动调优工具,目的是为了充分利用有限的硬件资源,满足算子和整网的性能要求 。
AOE通过生成调优策略、编译、在运行环境上验证的闭环反馈机制,不断迭代,最终得到最佳的调优策略,从而更充分利用硬件资源 , 提升网络的性能 。
AOE的架构如下 。
层:调优入口,支持如下 。
层:调优模式,支持以下类型 。
层:为执行层,支持编译()和在运行环境上运行() 。
AOE工作原理
如下以算子调优为例,介绍AOE的工作原理 。
1. 将原始开源框架模型传入GE、FE进行图准备(、算子选择等)及子图拆分 。
2. 进入算子编译阶段,根据拆分的子图信息匹配知识库 。
- 未开启的场景,直接使用已有知识库中的调优策略编译算子 。
- 开启的场景,通过AOE进行调优 。
若调优后的结果优于当前已有的知识库,则会将调优后的结果存入用户自定义知识库,并使用自定义知识库中的调优策略编译算子 。
文章插图
若调优后的结果不优于当前已有的知识库,则不再生成用户自定义知识库,直接使用已有的知识库编译算子 。
- 若调优后的结果优于默认调优策略的性能,会将调优后的结果写入自定义知识库,并使用自定义知识库中的调优策略编译算子 。
- 若调优后的结果不优于默认调优策略的性能,不生成自定义知识库,使用默认调优策略编译算子 。
3. 推理场景下,编译完成后,生成适配昇腾AI处理器的离线模型文件 。训练场景下,编译完成后,生成训练好的网络模型文件 。
AOE使用场景
当算子性能或者网络性能不佳时,可以使用AOE进行调优 。AOE调优支持的场景如下:
如何使用AOE进行调优?
如下以离线推理场景下Caffe网络的算子调优为例,介绍如何进行AOE调优 。
1. 准备模型文件 。
2. 配置环境变量 。
- CANN组合包提供进程级环境变量设置脚本,供用户在进程中引用 , 以自动完成环境变量设置 。执行命令参考如下,以下示例均为root或非root用户默认安装路径,请以实际安装路径为准 。
# 以root用户安装toolkit包/usr/local/Ascend/ascend-toolkit/set_env.sh # 以非root用户安装toolkit包${HOME}/Ascend/ascend-toolkit/set_env.sh
- AOE工具依赖,以.7.5为例,请以运行用户执行如下命令设置.7.5的相关环境变量 。
#用于设置python3.7.5库文件路径export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH#如果用户环境存在多个python3版本 , 则指定使用python3.7.5版本export PATH=/usr/local/python3.7.5/bin:$PATH
export ASCEND_DEVICE_ID=1export TUNE_BANK_PATH=/home/HwHiAiUser/custom_tune_bankexport TE_PARALLEL_COMPILER=7export REPEAT_TUNE=True
命令中的参数含义如下 。
3. 进行AOE调优,命令如下 。命令中使用的目录以及文件均为样例,请以实际为准 。
aoe --framework=0 --model=$HOME/module/resnet50.prototxt --weight=$HOME/module/resnet50.caffemodel --job_type=2
命令中的参数含义如下 。
4. 若提示如下信息,则说明AOE调优完成 。
Aoe process finished
调优完成后,生成文件如下 。
${WORK_PATH}/aoe_workspace/${model_name}_${timestamp}/tunespace/result/${model_name}_${timestamp}_tune.om
【自动调优工具AOE,让你的模型在昇腾平台上高效运行】${}:调优工作目录
${}:模型名称
${}:时间戳
"basic": {"tuning_name": "调优任务名","tuning_time(s)": 1827}"OPAT": {"model_baseline_performance(ms)": 113.588725,"model_performance_improvement": "0.31%","model_result_performance(ms)": 113.236731,"opat_tuning_result": "tuning successful","repo_modified_operators": {"add_repo_operators": [{"op_name": "strided_slice_10","op_type": "stridedsliced",……"repo_summary": {"repo_add_num": 2,"repo_hit_num": 17,"repo_reserved_num": 15,"repo_unsatisfied_num": 0,"repo_update_num": 2,"total_num": 19}
5. 调优完成后,请使用调优后的自定义知识库重新推理,验证性能是否提高 。
以上就是AOE的简单介绍 。关于更多内容,可以在昇腾文档中心查看,您也可在“昇腾社区在线课程”板块学习视频课程,学习过程中的任何疑问,都可以在“昇腾论坛”互动交流!
相关参考:
[1]昇腾文档中心
[2]昇腾社区在线课程
[3]昇腾论坛
- 长安cs55p手动挡和自动变速箱一样吗 长安cs55plus手动挡用的什么变速箱
- 整理字典用的工具:pw-inspector
- 邮件群发工具有哪一些
- 酸奶的家常做法视频 酸奶的家常做法
- 优酷会员怎么关闭自动续费 苹果优酷会员怎么关闭自动续费
- 基于HCL Notes客户机的邮件群发工具
- 邮件群发工具哪个好
- 如何让电脑桌面图标自动排序 电脑桌面图标怎样自动排序
- 手机如何关闭微信自动更新 如何关闭微信自动更新
- 远景x6后备箱可以自动弹开吗 远景x6后备箱怎么自动弹开