昇腾AI软件栈提供了功能更强大、调优效率更高的AOE(Ascend Optimization Engine)自动调优工具,涵盖了Auto Tune的算子自动化调优功能,并同步提供了子图调优、梯度调优等功能。
Auto Tune工具在后续版本中会过期,建议用户使用AOE自动调优工具,详细使用方法可参见《AOE工具使用指南》。
设置算子的自动调优模式:控制TBE算子编译时,是否对算子进行调优,以便在昇腾AI处理器上寻找最好的性能配置。
关于Auto Tune工具的原理,支持调优的算子以及详细使用请参见《Auto Tune工具使用指南》。
该参数不能与--op_bank_path参数同时使用。
参数值:
参数值格式:支持配置多种模式,多种模式放在双引号中,中间用英文逗号分隔,例如"RL,GA"。
使用ATC工具进行模型转换时,如果使能该参数,则模型转换时间会比不使能长(通常一个算子大约需要20分钟左右,具体时间和网络模型大小相关),但使用转换后的离线模型进行推理,性能会优于不调优的离线模型。
--auto_tune_mode="RL,GA"
${INSTALL_DIR}/opp/data/tiling/<soc_version>/built-in/:负责存储常用shape调优后的知识库和cost model,如果网络模型中某个shape没有命中内置知识库,则会发起调优。
${HOME}/Ascend/latest/data/aoe/custom/op/<soc_version>/cube:用于存放调优过程中生成的知识库。如果该路径已经有知识库,则对该知识库进行追加;如果当前路径没有知识库,则新建知识库。该路径安装完CANN软件包后默认不存在,会在首次执行调优时自动创建。
该路径为默认路径,用户也可以通过设置“TUNE_BANK_PATH”环境变量,指定调优后自定义知识库的存储路径。
${INSTALL_DIR}/opp/data/rl/<soc_version>/built-in/:负责存储常用shape调优后的知识库。
${HOME}/Ascend/latest/data/aoe/custom/op/<soc_version>/vector:用于存放调优过程中调优性能优于built-in或built-in中没有的知识库。该路径安装完CANN软件包后默认不存在,会在首次执行调优时自动创建。
该路径为默认路径,用户也可以通过设置“TUNE_BANK_PATH”环境变量,指定调优后自定义知识库的存储路径。
昇腾310 AI处理器
昇腾310P AI处理器
昇腾910 AI处理器
使用该功能时,只支持带NPU设备的安装场景,详细介绍请参见手册搭建对应产品环境。
source ${INSTALL_DIR}/bin/setenv.bash
若配置此环境变量,则:
例如TUNE_BANK_PATH=/home/username/custom_tune_bank,则GA调优后的最优策略存入/home/username/custom_tune_bank/<soc_version>/cube目录中。
例如TUNE_BANK_PATH=/home/username/custom_tune_bank,则RL调优后的最优策略存入/home/username/custom_tune_bank/<soc_version>/vector目录中。
路径支持绝对路径或相对于执行Auto Tune工具所在路径的相对路径,配置的路径需要为已存在的目录,且执行用户具有读、写、可执行权限。若配置的TUNE_BANK_PATH路径不存在或用户无权限,则模型转换会报错并退出。
若调优时指定了自定义知识库路径,后续进行模型转换时,若想直接使用指定的自定义知识库,也需要配置上此环境变量。
例如指定调优后自定义知识库存储路径为/home/username/custom_tune_bank/<soc_version>/cube,则使用ATC工具进行模型转换前需要配置如下环境变量(该场景下用户无需再次开启Auto Tune功能):
export TUNE_BANK_PATH=/home/username/custom_tune_bank
若配置的TUNE_BANK_PATH路径不存在或用户无权限,则模型转换会报错并退出。
export TUNE_OPS_NAME=conv_layers/Pad_1
某些场景下,例如在对网络进行Profiling性能分析后,发现某个算子性能较低,则可以通过设置上述环境变量,对性能较低的算子单独进行调优。
OPS_NAME配置为网络模型中需要调优的节点的name,可配置为原始网络模型中的OP Name或者配置为经过GE/FE处理过的适配昇腾AI处理器的网络模型中的节点的OP Name(此OP Name可从Profiling调优数据中获取,详细可参见《性能分析工具使用指南》)。若指定多个节点,则使用英文逗号分隔。
如果指定算子已经调优过,即在custom路径已经有调优过的知识库,用户想重新发起该算子的调优,则需要同时设置如下两个环境变量:
export REPEAT_TUNE=True export TUNE_OPS_NAME=conv_layers/Pad_1