---
title: 知识库合并
description: "AOE工具提供了自定义知识库合并的功能，支持将不同路径下的自定义知识库进行合并，并将其中优于内置知识库中的调优策略存入目标路径中。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/aoe/aoerc_16_0085.html
sourcePath: /source/zh/canncommercial/900/devaids/aoe/aoerc_16_0085.html
indexId: a197ad27350307e89da40d4b4ddd319efafcfe7ef41a51eca7b89b48d6f4c73f60
---
# 知识库合并

#### 简介

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

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


#### 操作步骤

1. 将不同环境中生成的待合并的知识库拷贝到执行知识库合并操作所在环境，不同环境中生成的知识库请存储在不同的目录下，例如${src_dir1}、${src_dir2}。
  拷贝知识库的时候，需要拷贝整个自定义知识库路径（即TUNE_BANK_PATH）及该路径下的内容。例如：自定义知识库路径为/home/aoe/data，${src_dir1}为/home/HwHiAiUser/data，则需要参考如下命令进行拷贝。 cp -r /home/aoe/data /home/HwHiAiUser

2. 合并知识库。

  a. 配置环境变量。
    CANN提供进程级环境变量设置脚本，供用户在进程中引用，以自动完成环境变量设置。执行命令参考如下，以下示例均为root或非root用户默认安装路径，请以实际安装路径为准。

```
# 以root用户安装toolkit包后配置环境变量
source /usr/local/Ascend/cann/set_env.sh
# 以非root用户安装toolkit包后配置环境变量
source ${HOME}/Ascend/cann/set_env.sh
```


    安装CANN软件后，使用CANN运行用户进行编译、运行时，需要以CANN运行用户登录环境，执行source ${INSTALL_DIR}/set_env.sh命令设置环境变量。${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例，安装后文件默认存储路径为：/usr/local/Ascend/cann。

  b. 执行知识库合并。
python3.7 ${install_path}/cann/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}。
    - ${dst_dir}：配置为合并后自定义知识库的存储路径，可为绝对路径或相对路径，需要为已存在的路径且msoptune.py脚本需要有读、写、可执行权限。
后续模型编译时若想使用合并后的知识库，需要通过环境变量“TUNE_BANK_PATH”指定合并后的自定义知识库路径。环境变量详细说明请参见配置环境变量。


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

    - 将配置的${src_dirx}目录下的知识库进行合并。
    - 将合并后自定义知识库与内置知识库进行比较，将内置知识库中不存在的调优策略或者优于内置知识库的调优策略放入${dst_dir}。
      ${dst_dir}的知识库同样按照“${soc_version}”进行存放，“${soc_version}”目录无需手工创建，脚本会自动创建。
