配置环境变量

场景说明

Auto Tune调优分为两种模式:在线调优与离线调优。
  • 在线调优:指在生成网络模型的时候同步进行调优,包括使用ATC工具进行模型转换时调优,IR模型构建时调优。此种场景下,调优过程中生成的模型即可享受本次调优带来的收益。
  • 离线调优:指生成网络模型时不进行调优,仅生成调优依赖的DUMP数据,然后用户基于DUMP数据进行调优。此种场景,调优过程可以脱离ATC模型转换或者IR模型构建。

无论是在线调优还是离线调优,调优生成的自定义知识库,后续的模型转换过程都可以直接使用。

环境变量说明

下面分别描述两种调优场景依赖的环境变量。

  • 利用export命令在当前终端下声明的环境变量,关闭Shell终端就会失效。
  • 用户可将以上设置可选环境变量的命令写入自定义脚本,方便后续执行。

详细环境变量说明如下表所示。

表1 环境变量说明

环境变量

说明

ASCEND_DEVICE_ID

可选配置。

通过该环境变量指定昇腾AI处理器的逻辑ID。

取值范围[0,N-1],默认为0。其中N为当前物理机/虚拟机/容器内的设备总数。

TE_PARALLEL_COMPILER

可选配置。

算子编译所需环境变量。

网络模型较大时,可通过配置此环境变量,开启算子的并行编译功能。

TE_PARALLEL_COMPILER的值代表算子并行编译进程数(配置为整数),默认值为8,取值范围为0~32。当该取值等于0时,表示不开启算子的并行编译功能,当该取值大于0时,表示开启算子的并行编译功能。

开启Auto Tune调优场景下:配置不能超过CPU核数*80%/昇腾AI处理器的个数。

TUNE_BANK_PATH

可选配置。

可通过此环境变量指定调优后自定义知识库的存储路径。

针对RL调优模式支持的算子
  • 若不配置此环境变量,自定义知识库默认存储在“${HOME}/ascend/latest/data/aoe/custom/op/<soc_version>/vector/”路径下。
  • 若配置此环境变量,RL调优后的策略存储在配置路径的<soc version>/rl目录下,调优脚本会自动在配置的TUNE_BANK_PATH路径下创建<soc version>/rl两级目录。

    可配置为绝对路径或相对于执行Auto Tune工具所在路径的相对路径。配置的路径需要为已存在的目录,且执行用户具有读、写、可执行权限。

    例如TUNE_BANK_PATH=/home/username/custom_bank,则RL调优后的最优策略存入/home/usrname/custom_bank/<soc version>/rl目录中。

针对GA调优模式支持的算子
  • 若不配置此环境变量,自定义知识库默认存储在“${HOME}/ascend/latest/data/aoe/custom/op/<soc_version>/cube/”路径下。
  • 若配置此环境变量,GA调优后的策略存储在配置路径的<soc version>/ga目录下,调优脚本会自动在配置的TUNE_BANK_PATH路径下创建<soc version>/ga两级目录。

    可配置为绝对路径或相对于执行Auto Tune工具所在路径的相对路径,配置的路径需要为已存在的目录,且执行用户具有读、写、可执行权限。

    例如TUNE_BANK_PATH=/home/username/custom_bank,则GA调优后的最优策略存入/home/username/custom_bank/<soc version>/ga目录中。

说明:
  • 在多用户共享知识库场景下,共享知识库的用户需要设置TUNE_BANK_PATH为同一路径,并且对配置的路径具有读、写、可执行权限。
  • 若调优时自定义了知识库路径,后续进行模型转换时,若想直接使用自定义知识库,也需要配置上此环境变量。

    例如自定义知识库存储在“/home/username/custom_bank/<soc version>/ga”目录下,则执行ATC工具进行模型转换时需要配置如下环境变量:

    export TUNE_BANK_PATH=/home/username/custom_bank

REPEAT_TUNE

可选配置。

是否重新发起调优,此环境变量仅在开启了Auto Tune调优的场景下生效。

如果知识库(内置或者自定义)中已经存在网络模型中的调优case(针对某shape的调优策略),则会跳过此case的调优流程,若想重新发起调优,可设置此环境变量为True。例如某些算子进行了逻辑的变更,如GEMM算子新增了支持ND的输入,该情况下需要设置此环境变量后, 重新发起调优。

取值范围:True或者False,默认值为False。

ENABLE_TUNE_BANK

可选配置。

使能知识库开关,有以下两种取值:
  • True:算子编译时自动读取知识库中的调优策略,优先自定义知识库,然后内置知识库。
  • False:算子编译时不读取知识库。

默认值为True。

TUNE_OPS_NAME

可选配置。

指定层调优,用于网络调优场景中。例如,在对网络进行Profiling性能分析后,可通过此环境变量指定对某个性能较低的算子进行调优。
  • 若配置此环境变量,则仅对网络中指定的节点进行调优。

    配置为网络中需要调优的节点的name,可配置为原始网络模型中的OP Name或者配置为经过GE/FE处理过的适配昇腾AI处理器的网络模型中的节点的OP Name(此OP Name可从Profiling调优数据中获取,详细可参见CANN 开发工具指南》中的“Profiling工具使用指南”章节)。若指定多个节点,使用英文","分隔;

    可在网络模型生成过程的日志打印中搜索SelectTuneMode关键字,查看指定的节点是否进行了调优,如下所示:

    [EVENT] TEFUSION(19144,atc):2020-06-30-16:33:52.463.389 [tensor_engine/te_fusion/fusion_op.cc:4320]SelectTuneMode Autotune user selected node:res2a_branch2ares2a_branch2a_relu

    则代表对网络中的节点res2a_branch2ares2a_branch2a_relu进行了调优。

  • 若不配置此环境变量,则对网络中所有算子列表中支持的算子进行调优。
说明:

此环境变量仅支持生成网络模型时同步调优的场景,不支持基于DUMP数据离线调优的场景。

ENABLE_TUNE_DUMP

可选配置。

此环境变量应用于基于DUMP数据离线调优的场景。

进行离线调优时,开启生成算子DUMP数据的开关。

取值范围:True或者False,默认值为False。

说明:

若需要生成DUMP数据,除了将此环境变量设置为True,还需要使能Auto Tune调优开关。

TUNE_DUMP_PATH

可选配置。

此环境变量应用于基于DUMP数据离线调优的场景。

可通过此环境变量指定生成的DUMP数据的存储路径。

可配置为绝对路径或相对于执行Auto Tune工具所在路径的相对路径,可指定任意执行用户具有可读、写、执行的目录。

若不配置此环境变量,则默认在工具执行路径下生成tune_dump目录进行存储。