昇腾社区首页
中文
注册
开发者
下载

aclgrphCalibration

产品支持情况

产品

是否支持

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

Atlas A2 训练系列产品 / Atlas 800I A2 推理产品 /A200I A2 Box 异构组件

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

头文件/库文件

  • 头文件:/include/amct/acl_graph_calibration.h
  • 库文件:libamctacl.so

功能说明

将非量化Graph自动修改为量化后的Graph。详细使用场景请参见量化

函数原型

1
graphStatus aclgrphCalibration(ge::Graph &graph, const std::map<ge::AscendString, ge::AscendString> &quantizeConfigs)

参数说明

参数名

输入/输出

说明

graph

输入

待修改的用户原始Graph。

quantizeConfigs

输入

map表,key为参数类型,value为参数值,均为字符串格式,描述执行接口所需要的配置选项。具体配置参数如下所示:

  • INPUT_DATA_DIR:必填,用于计算量化因子的数据bin文件路径,建议传入不少于一个batch的数据。如果模型有多个输入,则输入数据文件以英文逗号分隔。
  • INPUT_SHAPE:必填,输入数据的shape。例如:"input_name1:n1,c1,h1,w1;input_name2:n2,c2,h2,w2"。指定的节点必须放在双引号中,节点中间使用英文分号分隔。input_name必须是Graph中的节点名称。
  • SOC_VERSION:必填,进行训练后量化校准推理时,所使用的芯片名称。

    <soc_version>查询方法为:

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

      Atlas A2 训练系列产品 / Atlas 800I A2 推理产品 /A200I A2 Box 异构组件

      Atlas 200I/500 A2 推理产品

      Atlas 推理系列产品

      Atlas 训练系列产品

    • 针对如下产品型号,在安装昇腾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 A3 训练系列产品 / Atlas A3 推理系列产品

  • INPUT_FORMAT:选填,输入数据的排布格式,支持"NCHW"、"NHWC"、"ND"。
  • INPUT_FP16_NODES:选填,指定输入数据类型为FP16的输入节点名称。
  • CONFIG_FILE:选填,用于配置高级选项的配置文件路径。配置文件的示例请参考量化简易配置文件
  • LOG_LEVEL:选填,设置训练后量化时的日志等级,该参数只控制训练后量化过程中显示的日志级别,默认显示info级别:
    • debug:输出debug/info/warning/error/event级别的日志信息。
    • info:输出info/warning/error/event级别的日志信息。
    • warning:输出warning/error/event级别的日志信息。
    • error:输出error/event级别的日志信息。
    此外,训练后量化过程中的日志落盘信息由AMCT_LOG_DUMP环境变量进行控制:
    • export AMCT_LOG_DUMP=1:日志落盘到当前路径的“amct_log_{timestamp}/amct_acl.log”文件中,不保存量化因子record文件和graph文件。
    • export AMCT_LOG_DUMP=2:日志落盘到当前路径的“amct_log_{timestamp}/amct_acl.log”文件中,同时在“amct_log_{timestamp}”目录下保存量化因子record文件
    • export AMCT_LOG_DUMP=3:日志落盘到当前路径的“amct_log_{timestamp}/amct_acl.log”文件中,同时在“amct_log_{timestamp}”目录下保存量化因子record文件和包含量化过程中各阶段图描述信息的graph文件

    为防止日志文件、record文件、graph文件持续落盘导致磁盘被写满,请及时清理这些文件。

    如果用户配置了ASCEND_WORK_PATH环境变量,则上述日志、量化因子record文件和graph文件存储到该环境变量指定的路径下,例如ASCEND_WORK_PATH=/home/test,则存储路径为:/home/test/amct_acl/amct_log_{pid}_时间戳。其中,amct_acl模型转换过程中会自动创建,{pid}为进程号。

    说明:

    上述日志文件、record文件、graph文件重新执行量化时会被覆盖,请用户自行进行保存。此外,由于生成的日志文件大小和所要量化模型层数有关,请用户确保服务器有足够空间:

    以量化resnet101模型为例,日志级别设置为INFO,日志文件大小为12KB左右,中间临时文件大小为260MB左右;日志级别设置为DEBUG,日志文件大小为390KB左右,中间临时文件大小为430MB左右。

  • OUT_NODES:选填,用户Graph的输出节点名。
  • DEVICE_ID:选填,指定设备ID,默认为0。
    • Atlas 训练系列产品 ,支持该选项。
    • Atlas 推理系列产品 ,支持该选项。
    • Atlas 200I/500 A2 推理产品 ,支持该选项。
    • Atlas A2 训练系列产品 / Atlas 800I A2 推理产品 /A200I A2 Box 异构组件,支持该选项。
    • Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ,支持该选项。
  • infer_aicore_num:选填,进行训练后量化校准推理时,使用的AI Core核数,aclgrphBuildInitialize支持的配置参数 > AICORE_NUM
  • IP_ADDR:指定NCS所在服务器的IP地址。
    • Atlas 训练系列产品 ,不支持该选项。
    • Atlas 推理系列产品 ,不支持该选项。
    • Atlas 200I/500 A2 推理产品 Ascend RC 场景支持该选项,且必填。
    • Atlas A2 训练系列产品 / Atlas 800I A2 推理产品 /A200I A2 Box 异构组件,不支持该选项。
    • Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ,不支持该选项。
  • PORT:指定NCS所在服务器端口。
    • Atlas 训练系列产品 ,不支持该选项。
    • Atlas 推理系列产品 ,不支持该选项。
    • Atlas 200I/500 A2 推理产品 Ascend RC 场景支持该选项,且必填。
    • Atlas A2 训练系列产品 / Atlas 800I A2 推理产品 /A200I A2 Box 异构组件,不支持该选项。
    • Atlas A3 训练系列产品 / Atlas A3 推理系列产品 ,不支持该选项。
  • INSERT_OP_CONF:插入算子的配置文件路径与文件名,例如Aipp预处理算子。

    配置文件路径和文件名:支持大小写字母(a-z,A-Z)、数字(0-9)、下划线(_)、中划线(-)、句点(.)、中文字符;文件后缀不局限于.cfg格式,但是配置文件中的内容需要满足prototxt格式。

    配置文件的内容示例如下:

    aipp_op {
       aipp_mode:static
       input_format:YUV420SP_U8
       csc_switch:true
       var_reci_chn_0:0.00392157
       var_reci_chn_1:0.00392157
       var_reci_chn_2:0.00392157
    }

    关于配置文件详细配置以及参数说明,请参见AIPP使能章节。

返回值说明

参数名

类型

说明

-

graphStatus

SUCCESS:图修改成功。

其他:修改失败

约束说明

  • 对于已经被插入量化算子的Graph不支持进行量化。
  • 支持量化的层及约束请参考支持量化的层及约束
  • 使用配置文件中的calibration训练后量化功能时,只支持带NPU设备的安装场景,详细介绍请参见CANN 软件安装指南手册搭建对应产品环境。
  • Atlas 200I/500 A2 推理产品 Ascend RC 场景,还需要在运行环境上安装NCS软件,并配置密钥证书,请参见AOE调优工具用户指南>AOE工具(Ascend RC)>环境准备