修改AI CPU和Ctrl CPU配比

Device侧CPU可划分为AI CPU与Ctrl CPU两部分,其中AI CPU负责执行不适合跑在AI Core中的算子(承担非矩阵类复杂计算),Ctrl CPU负责控制芯片的整体运行,开放形态下,可用于执行推理应用的自定义预处理、后处理等操作,用户可自行根据业务复杂度修改AI CPU与Ctrl CPU的配比。

Atlas 推理系列产品提供的Ctrl CPU与AI CPU的默认配比为1:7,此默认配比不适合开放形态下应用程序运行在Device上的场景。所以开放形态下,用户可通过修改驱动源码包{soc version}-driver-{software version}-minios.aarch64-src.tar.gz中的配置文件,修改AI CPU和Ctrl CPU的默认配比,详细的操作步骤如下:

  1. 执行以下命令切换到root用户,后续操作都需要以root用户执行。

    su - root

  2. 解压软件包获取中的驱动源码包{soc version}-driver-{software version}-minios.aarch64-src.tar.gz。

    例如在/usr/local/software/目录下执行如下解压命令:

    tar -zxvf {soc version}-driver-{software version}-minios.aarch64-src.tar.gz

    命令执行完成后会在/usr/local/software/目录下生成解压后的driver文件夹。

  3. “driver/source/config/user_config/miniv2/config.h”配置文件中修改AI CPU和Ctrl CPU配比。

    vi driver/source/config/user_config/miniv2/config.h

    如下图所示:

    红框中的第一个字节“01”代表Ctrl CPU的数量;第二个字节“00”代表Data CPU的数量;第三个字节“07”代表AI CPU的数量。

    用户可通过修改以上三个字节,进行Ctrl CPU、Data CPU、AI CPU的数量配置,修改配置时请遵循如下约束:
    • Ctrl CPU的数量 + Data CPU的数量 + AI CPU的数量 = 8
    • Ctrl CPU的数量 >=1
    • Data CPU的数量 >=0,推理场景下请配置为0
    • AI CPU的数量 >=1

    例如,开放形态下,Data CPU配置为0,Ctrl CPU与AI CPU的数量组合可以为4+4、5+3、6+2、7+1。

    修改完成后,输入:wq!保存退出。

  4. 进行驱动源码编译,并替换文件系统中的内核镜像文件。

    因为修改Ctrl CPU与AI CPU配比的操作对驱动源码包进行了修改,所以需要重新进行驱动源码包的编译,编译操作请参见驱动源码编译

    • 用户也可以通过DCMI接口修改AI CPU与Ctrl CPU的配比。请注意,一旦通过DCMI配置AI CPU与Ctrl CPU配比后,以上默认配置就会失效,因为DCMI配置优先级高于config.h中默认配置,若想仍然使用默认配置,则需要清除DCMI配置。
    • 通过DCMI修改AI CPU与Ctrl CPU配置可用使用DCMIdcmi_set_device_user_config接口,清除DCMI配置可使用dcmi_clear_device_user_config接口,接口的详细使用方法可请参见《DCMI API参考》
    • 使用DCMI接口修改配置后,需要重启Host才会生效。