开发者
下载

基础功能

CLUSTER_CONFIG

设置集群配置文件路径,用于配置目标执行逻辑设备信息以生成HCCL任务,多卡分布式训练场景下使用。

若模型中包含通信算子(当前仅支持AllGather通信算子),该参数必填。

配置示例:

{ge::ir_option::CLUSTER_CONFIG, "/home/test/cluster_config.json"}

cluster_config.json配置示例如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
    "RankTable": {
        "status": "completed",
        "version": "1.2",
        "server_count": "2",
        "server_list": [
            {
                "server_id": "node_0",
                "device": [
                    {
                        "device_id": "0",
                        "rank_id": "0"
                    }
                ]
            },
            {
                "server_id": "node_1",
                "device": [
                    {
                        "device_id": "0",
                        "rank_id": "1"
                    }
                ]
            }
        ]
    },
    "HcclCommConfig": {
        "hcclCommName": "global name"
    }
}

参数说明解释如下:

  • RankTable:配置的核心,定义了参与计算的节点和rank信息。
    • status:必选,rank table可用标识。
      • completed:表示rank table可用。
      • initializing:表示rank table不可用。
    • version:必选,rank table模板版本信息,请配置为:1.2。
    • server_count:可选,参与集合通信的AI Server个数。
    • server_list:必选,参与集合通信的AI Server列表。
      • server_id:必选,AI Server标识,字符串类型,长度小于等于64,请确保全局唯一。配置示例:node_0。
      • device:必选,Device列表。
        • device_id:必选,AI处理器的物理ID,即Device在AI Server上的序列号。
        • rank_id:必选,rank唯一标识,请配置为整数,从0开始配置,且全局唯一,取值范围:[0, 总Device数量-1]。
  • HcclCommConfig:HCCL通信层的全局配置信息。
    • hcclCommName:必选,全局通信组的名称或标识符。

产品支持情况

  • Atlas 350 加速卡:不支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品:不支持
  • Atlas 训练系列产品:不支持

DETERMINISTIC

是否开启确定性计算。

默认情况下,不开启确定性计算,算子在相同的硬件和输入下,多次执行的结果可能不同。这个差异的来源,一般是因为在算子实现中,存在异步的多线程执行,会导致浮点数累加的顺序变化。当开启确定性计算功能时,算子在相同的硬件和输入下,多次执行将产生相同的输出。

通常建议不开启确定性计算,因为确定性计算往往会导致算子执行变慢,进而影响性能。当发现模型多次执行结果不同,或者是进行精度调优时,可开启确定性计算,辅助模型调试、调优。

参数取值:

  • 0:(默认值)不开启确定性计算。
  • 1:开启确定性计算。

配置示例:

{ge::ir_option::DETERMINISTIC, "1"}

产品支持情况

  • Atlas 350 加速卡:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持

ENABLE_SINGLE_STREAM

静态shape场景下,是否启用模型推理顺序单流串行执行。

其中,流(Stream)用于维护一些异步操作的执行顺序,确保按照应用程序中的代码调用顺序在Device上执行。

参数取值:

  • true:表示启用,模型推理顺序单流串行执行。
  • false:(默认值)表示关闭,模型推理时多流并行执行。

参数值约束:

模型中存在Cmo算子和如下控制类算子时,不能使用单Stream特性,只能使用默认值false。

  • Merge
  • Switch
  • Enter
  • RefEnter

配置示例:

{ge::ir_option::ENABLE_SINGLE_STREAM, "true"}

产品支持情况:

  • Atlas 350 加速卡:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品:支持
  • Atlas 训练系列产品:支持

HCCL_SUB_COMM_CONFIG

设置HCCL子通信域配置文件路径,用于配置HCCL子通信参数。多卡分布式训练场景下使用。

若模型中包含通信算子(当前仅支持AllGather通信算子),该参数必填。若模型算子包含子通信域参数,但在模型编译时未指定HCCL_SUB_COMM_CONFIG参数,系统将默认依据集群的实际业务配置执行。

配置示例:

{ge::ir_option::CLUSTER_CONFIG, "/home/test/cluster_config.json"}
{ge::ir_option::HCCL_SUB_COMM_CONFIG, "/home/test/sub_comm_config.json"}

sub_comm_config.json文件示例如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "GroupList": [
    {
      "RankIds": [0,1],
      "HcclCommconfig": {
        "hcclCommName": "test_group"
      }
    }
  ]
}

其中:

  • RankIds:rank唯一标识,请配置为整数,从0开始配置,且全局唯一,取值范围:[0, 总Device数量-1]。

    建议rank_id按照Device物理连接顺序进行排序,即将物理连接上较近的Device编排在一起,否则可能会对性能造成影响。

    例如,若device_ip按照物理连接从小到大设置,则rank_id也建议按照从小到大的顺序设置。

  • hcclCommName:通信组命名,供程序调用和区分。

产品支持情况

  • Atlas 350 加速卡:不支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:不支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品:不支持
  • Atlas 训练系列产品:不支持

OPTION_HOST_ENV_OS

若模型编译环境的操作系统及其架构与模型运行环境不一致时,则需使用本参数设置模型运行环境的操作系统类型。如果不设置,则默认取模型编译环境的操作系统类型。

模型编译环境的操作系统及其架构与模型运行环境不一致时,需要与OPTION_HOST_ENV_CPU参数配合使用,通过OPTION_HOST_ENV_OS参数设置操作系统类型、通过OPTION_HOST_ENV_CPU参数设置操作系统架构。

参数取值查看${INSTALL_DIR}/opp/built-in/op_graph/lib/下打包的算子so的OS类型。

参数默认值:查看${INSTALL_DIR}/opp/scene.info文件中的取值。

${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。

配置示例:

{ge::OPTION_HOST_ENV_OS, "linux"},
{ge::OPTION_HOST_ENV_CPU, "x86_64"}

产品支持情况

全量芯片支持。

OPTION_HOST_ENV_CPU

若模型编译环境的操作系统及其架构与模型运行环境不一致时,则需使用本参数设置模型运行环境的操作系统架构。如果不设置,则默认取模型编译环境的操作系统架构。

如果模型编译环境的操作系统及其架构与模型运行环境不一致,需要与OPTION_HOST_ENV_OS参数配合使用,通过OPTION_HOST_ENV_OS参数设置操作系统类型、通过OPTION_HOST_ENV_CPU参数设置操作系统架构。

参数取值查看${INSTALL_DIR}/opp/built-in/op_graph/lib/下打包的算子so的OS/CPU类型。

参数默认值:查看${INSTALL_DIR}/opp/scene.info文件中的取值。

${INSTALL_DIR}请替换为CANN软件安装后文件存储路径。以root用户安装为例,安装后文件默认存储路径为:/usr/local/Ascend/cann。

配置示例:

{ge::OPTION_HOST_ENV_OS, "linux"},
{ge::OPTION_HOST_ENV_CPU, "x86_64"}
  • 若转换后的离线模型包含操作系统类型、架构,例如:xxx_linux_x86_64.om,则说明该模型运行的环境只能是x86_64架构的linux操作系统。
  • 若转换后的离线模型不包含操作系统类型、架构,例如:xxx.om,则说明CANN软件包所支持的操作系统,都支持该模型运行。

产品支持情况:

全量芯片支持。

SOC_VERSION

图编译时使用的AI处理器型号。

  • 若当前环境存在AI处理器,该参数可选。
  • 若当前环境不存在AI处理器,即开发环境,该参数必填。

参数取值:

<soc_version>查询方法为:

  • 针对如下产品:在安装AI处理器的服务器执行npu-smi info命令进行查询,获取Name信息。实际配置值为AscendName,例如Name取值为xxxyy,实际配置值为Ascendxxxyy

    Atlas A2 训练系列产品/Atlas A2 推理系列产品

    Atlas 200I/500 A2 推理产品

    Atlas 推理系列产品

    Atlas 训练系列产品

  • 针对Atlas A3 训练系列产品/Atlas A3 推理系列产品,在安装AI处理器的服务器执行npu-smi info -t board -i id -c chip_id命令进行查询,获取Chip NameNPU Name信息,实际配置值为Chip Name_NPU Name。例如Chip Name取值为AscendxxxNPU Name取值为1234,实际配置值为Ascendxxx_1234。其中:
    • id:设备id,通过npu-smi info -l命令查出的NPU ID即为设备id。
    • chip_id:芯片id,通过npu-smi info -m命令查出的Chip ID即为芯片id。
  • 针对Atlas 350 加速卡,在安装AI处理器的服务器执行npu-smi info -t board -i id命令进行查询,获取Chip NameNPU Name信息,实际配置值为Chip Name_NPU Name。例如Chip Name取值为AscendxxxNPU Name取值为1234,实际配置值为Ascendxxx_1234。

    其中,id为设备id,通过npu-smi info -l命令查出的NPU ID即为设备id。

配置示例:

{ge::ir_option::SOC_VERSION, "<soc_version>"}

产品支持情况

全量芯片支持。

VIRTUAL_TYPE

是否支持离线模型在昇腾虚拟化实例特性生成的虚拟设备上运行。

当前芯片算力比较大,云端用户或者小企业完全不需要使用这么大算力,昇腾虚拟化实例特性支持对芯片的算力进行切分,可满足用户根据自己的业务按需申请算力的诉求。

虚拟设备是指按照指定算力在芯片上申请的虚拟加速资源。

参数取值:

  • 0:(默认值)离线模型不在昇腾虚拟化实例特性生成的虚拟设备上运行。
  • 1:离线模型在不同算力的虚拟设备上运行。

配置示例:

{ge::ir_option::VIRTUAL_TYPE, "1"}

使用约束

  1. 参数取值为1时,进行模型转换,则转换后离线模型参与计算的逻辑AI Core核数可能比实际aicore_num核数大,为aicore_num支持配置范围的最小公倍数:

    例如aicore_num支持配置范围为{1,2,4,8},参数取值为1转换后的离线模型,NPU运行核数可能为8。

  2. 参数取值为1时,转换后的模型,如果包括如下算子,会默认使用单核,该场景下,将会导致转换后的模型推理性能下降。
    • DynamicRNN
    • PadV2D
    • SquareSumV2
    • DynamicRNNV2
    • DynamicRNNV3
    • DynamicGRUV

产品支持情况:

全量芯片支持。