知识库合并
简介
Auto Tune工具提供了自定义知识库合并的功能,支持将不同路径下的自定义知识库进行合并,并将其中优于内置知识库中的调优策略存入目标路径中。
仅支持相同昇腾AI处理器型号下的自定义知识库合并。
操作步骤
- 将不同环境中生成的待合并的知识库拷贝到执行知识库合并操作所在环境,不同环境中生成的知识库请存储在不同的目录下,例如{src_dir1}、{src_dir2},但不支持存储在默认自定义知识库路径中。
- RL:推理场景下,默认自定义知识库存储路径为ATC安装路径下的atc/data/rl/{soc_version}/custom。
- GA:推理场景下,默认自定义知识库存储路径为ATC安装路径下的atc/data/tiling/{soc_version}/custom。
注意:
待合并的知识库需要分别存储在用户自定义的{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处理器的版本,推理场景下可从ATC安装路径的“atc/data/platform_config”目录下查看,对应“*.ini”文件的名字即为{soc_version}。
- 合并知识库。
- 配置环境变量。
配置LD_LIBRARY_PATH、PYTHONPATH与ASCEND_OPP_PATH的环境变量。
推理场景:
export install_path=/home/HwHiAiUser/Ascend/ascend-toolkit/latest export LD_LIBRARY_PATH=${install_path}/acllib/lib64:${install_path}/atc/lib64:$LD_LIBRARY_PATH export PYTHONPATH=${install_path}/atc/python/site-packages:${install_path}/atc/python/site-packages/auto_tune.egg/auto_tune:${install_path}/atc/python/site-packages/schedule_search.egg:$PYTHONPATH export ASCEND_OPP_PATH=${install_path}/opp
- 执行知识库合并。
推理场景下执行如下命令进行自定义知识库的合并:
python3.7/home/HwHiAiUser/Ascend/ascend-toolkit/latest/atc/python/site-packages/schedule_search.egg/schedule_search/msoptune.py --merge {src_dir1}:{src_dir2} {dst_dir}
- {src_dirx}:可以配置多个src_dir,不同的src_dir之间使用“:”进行分隔。src_dir为1中指定的存放待合并自定义知识库的{src_dir},可为绝对路径或相对路径,例如自定义知识库存储到“/home/HwHiAiUser/data/ascend310/ga”目录下,则src_dir配置为“/home/HwHiAiUser/data”。
- dst_dir:配置为合并后自定义知识库的存储路径,可为绝对路径或相对路径,需要为已存在的路径且msoptune.py脚本需要有读、写、可执行权限。
msoptune.py --merge脚本包含如下功能:
- 将配置的{src_dirx}目录下的自定义知识库进行合并。
- 将合并后自定义知识库与内置知识库进行比较,将内置知识库中不存在的调优策略或者优于内置知识库的调优策略放入{dst_dir}。
{dst_dir}的知识库同样按照“{soc_version}/rl”或者“{soc_version}/ga”进行存放,“{soc_version}/rl”或者“{soc_version}/ga”目录无需手工创建,脚本会自动创建。
- 配置环境变量。