调优结果
介绍调优完成后知识库的变更及调优结果文件。
自定义知识库
调优完成后,若满足自定义知识库生成条件(请参见调优流程介绍),则会生成自定义知识库。
- 针对RL调优模式支持的算子,会存储到CANN软件安装后文件存储路径的“${HOME}/ascend/latest/data/aoe/custom/op/<soc_version>/vector/”中。
- 针对GA调优模式支持的算子,会存储到CANN软件安装后文件存储路径的“${HOME}/ascend/latest/data/aoe/custom/op/<soc_version>/cube/”中。
调优结果文件
调优开始后,会在执行调优的工作目录下生成命名为“tune_result_{timestamp}_pidxxx.json”的文件,记录被调优算子的调优过程、调优结果,以及网络模型中所有算子的详细调优状态信息。
其中{timestamp}为时间戳,格式为:年月日_时分秒毫秒,“pidxxx”中的“xxx”为进程ID。
内容格式如下所示:
"[['Operator Name']]":{ "result_data":{ "after_tune": 56, "before_tune": 66 } "status_data":{ "bank_append": true, "bank_hit": false, "bank_reserved": false, "bank_update": false } "ticks_best":[ "[82, 2020-08-08 18:03:38]", "[104, 2020-08-08 18:03:50]", ... ] },
- Operator Name:原图中算子的名字,若原图在图优化过程中进行了融合,融合后的节点对应原图中的多个节点,则会显示多个Operator Name,例如:[['scale5a_branch1', 'bn5a_branch1', 'res5a_branch1'], ['res5a'], ['res5a_relu']]
- "result_data",调优结果,记录网络模型中被调优算子的调优前后执行时间。
- after_tune:Auto Tune调优后,算子执行时间,单位:us。
- before_tune:未开启Auto Tune调优前,算子执行时间,单位:us。
- "status_data":详细调优状态信息,记录网络模型中所有算子的调优状态信息。
- "ticks_best":记录每轮调优的结果,包含tiling耗时和本轮算子的调优结束时间。

- Auto Tune在调优过程中会在执行调优工具的目录下生成tune_show_{timestamp}_pidxxx文件夹,tune_show_{timestamp}_pidxxx文件夹存储每个调优算子的flag文件,用户在调优过程中若想停止某层算子的调优可执行如下命令,其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。
python3.7.5 ${INSTALL_DIR}/python/site-packages/schedule_search/msoptune.py --stop tune_show_{timestamp}_pidxxx
按照提示信息选择需要停止调优的算子即可。调优停止后,会将当前调优生成的知识库与已经存在的知识库进行比对,若性能优于已有知识库,则在custom目录下替换已有知识库或追加新的知识库,否则不生成新的知识库。
tune_show_{timestamp}_pidxxx文件夹在调优结束后会自动删除。
- 调优结束后,用户可执行如下命令根据tune_result_{timestamp}_pidxxx.json文件生成网络模型中所有算子的调优状态统计信息,其中${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。
python3.7.5 ${INSTALL_DIR}/python/site-packages/schedule_search/msoptune.py --summary tune_result_{timestamp}_pidxxx.json
其中回显结果“Total_Num”为经过图优化/图融合后的网络模型中的算子总数,“Hit_Num”为命中知识库的算子数目,“Append_Num”为追加到知识库的算子数目,“Update_Num”为更新了知识库的算子数目,“Reserved_Num”为命中了知识库但没有进行知识库更新的算子数目。