知识库合并

简介

Auto Tune工具提供了自定义知识库合并的功能,支持将不同路径下的自定义知识库进行合并,并将其中优于内置知识库的调优策略存入目标路径中。

仅支持相同昇腾AI处理器型号下的自定义知识库合并。

操作步骤

  1. 将不同环境中生成的待合并的知识库拷贝到执行知识库合并操作所在环境,不同环境中生成的知识库请存储在不同的目录下,例如{src_dir1}、{src_dir2},但不支持存储在默认自定义知识库路径中。

    • RL:默认自定义知识库存储路径为CANN软件安装后文件存储路径的“${HOME}/ascend/latest/data/aoe/custom/op/<soc_version>/vector/”,此路径安装完CANN软件后默认不存在,会在首次执行调优时自动创建。
    • GA:默认自定义知识库存储路径CANN软件安装后文件存储路径的“${HOME}/ascend/latest/data/aoe/custom/op/<soc_version>/cube/”,此路径安装完CANN软件后默认不存在,会在首次执行调优时自动创建。

    注意:

    待合并的知识库需要分别存储在用户自定义的{src_dir}下的{soc_version}/{rl | ga}目录中,用户需要在{src_dir}路径下创建二级目录“{soc_version}/rl”或者“{soc_version}/ga”,用于存放对应昇腾AI处理器版本的RL或者GA的自定义知识库。若{src_dir}路径下已存在“{soc_version}/rl”或者“{soc_version}/ga”目录,则无需手工创建。

    其中{soc_version}为昇腾AI处理器的版本,可从CANN软件安装后文件存储路径的“compiler/data/platform_config”目录下查看,对应“*.ini”文件的名字即为{soc_version}

    对于Atlas 训练系列产品{soc_version}统一使用“Ascend910”。

  2. 合并知识库。

    1. 配置Auto Tune所需必选环境变量。

      推理场景下,请参见•必选环境变量

      训练场景下,请参见•必选环境变量

    2. 执行知识库合并。

      python3.7.5 ${INSTALL_DIR}/python/site-packages/schedule_search/msoptune.py --merge {src_dir1}:{src_dir2} {dst_dir}

      • ${INSTALL_DIR}:请修改为CANN软件安装后文件存储路径
      • {src_dirx}:可以配置多个{src_dir},不同的{src_dir}之间使用“:”进行分隔。{src_dir}为1中指定的存放待合并自定义知识库的{src_dir},可为绝对路径或相对路径,例如自定义知识库存储到“/home/HwHiAiUser/data/{soc_version}/ga”目录下,则{src_dir}配置为“/home/HwHiAiUser/data”。
      • {dst_dir}:配置为合并后自定义知识库的存储路径,可为绝对路径或相对路径,需要为已存在的路径且msoptune.py脚本需要有读、写、可执行权限。

      后续模型编译时若想使用合并后的知识库,需要通过环境变量“TUNE_BANK_PATH”指定合并后的自定义知识库路径。

      推理场景下,环境变量详细说明请参见配置环境变量。训练场景下,环境变量详细说明请参见配置环境变量

      msoptune.py --merge脚本包含如下功能:

      • 将配置的{src_dirx}目录下的自定义知识库进行合并。
      • 将合并后自定义知识库与内置知识库进行比较,将内置知识库中不存在的调优策略或者优于内置知识库的调优策略放入{dst_dir}。

        {dst_dir}的知识库同样按照“{soc_version}/rl”或者“{soc_version}/ga”进行存放,“{soc_version}/rl”或者“{soc_version}/ga”目录无需手工创建,脚本会自动创建。