昇腾社区首页
中文
注册

创建采集配置文件

服务化性能数据采集通过json配置文件,配置采集数据的开关、保存路径等。

  • 自动创建:该文件支持自动创建,在执行采集过程中配置SERVICE_PROF_CONFIG_PATH环境变量后,运行MindIE-Motor服务可自动创建默认配置的json文件。
  • 手动创建:该json配置文件可以在任意路径下新建,此处以ms_service_profiler_config.json文件名为例,配置文件格式如下:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    {
        "enable": 1,
        "prof_dir": "${PATH}",
        "profiler_level": "INFO",
        "host_system_usage_freq": -1,
        "npu_memory_usage_freq": -1,
        "acl_task_time": 0,
        "acl_prof_task_time_level": "",
        "api_filter": "",
        "kernel_filter": "",
        "timelimit": 0,
        "domain": ""
    }
    
表1 参数说明

参数

说明

是否必选

enable

是否开启性能数据采集的开关,取值为:

  • 0:关闭。
  • 1:开启。

prof_dir

采集到的性能数据的存放路径,可自定义,str类型,默认值为${HOME}/.ms_server_profiler。

profiler_level

数据采集等级,取值为INFO。

host_system_usage_freq

CPU和内存系统指标采集频率,默认关闭不采集。范围整数1~50,单位Hz,表示每秒采集的次数。设置为-1时关闭采集该指标。

说明:

开启该功能可能占用较大内存。

npu_memory_usage_freq

NPU Memory使用率指标的采集频率,默认关闭不采集。范围整数1~50,单位Hz,表示每秒采集的次数。设置为-1时关闭采集该指标。

说明:

开启该功能可能占用较大内存。

acl_task_time

开启采集算子下发耗时、算子执行耗时数据的开关,取值为:

  • 0:关闭。默认值,配置为0或其他非法值均表示关闭。
  • 1:开启。
    该功能开启时调用aclprofCreateConfig接口的ACL_PROF_TASK_TIME_L0参数,详细介绍及对应采集的性能数据文件请参见性能调优工具用户指南
  • 2:开启基于MSPTI接口的数据落盘。
    该功能开启时调用MSPTI接口进行性能数据采集,需要配置如下环境变量:
    export LD_PRELOAD=CANN软件安装目录/ascend-toolkit/latest/lib64/libmspti.so
    详细介绍请参见性能调优工具用户指南
说明:

该功能开启时会占用一定的设备性能,导致采集的性能数据不准确,建议在模型执行耗时异常时开启,用于更细致的分析。

acl_prof_task_time_level

设置性能数据采集的Level等级和时长,取值为:

  • L0:Level0等级,表示采集算子下发耗时、算子执行耗时数据。与L1相比,由于不采集算子基本信息数据,采集时性能开销较小,可更精准统计相关耗时数据。
  • L1:Level1等级,采集AscendCL接口的性能数据,包括Host与Device之间、Device间的同步异步内存复制时延;采集算子下发耗时、算子执行耗时数据以及算子基本信息数据,提供更全面的性能分析数据。
  • <time>:采集时长,取值范围为1~999的正整数,单位s。

默认未配置本参数,表示采集L0数据,且采集到程序执行结束。配置其他非法值时取默认值。

采集的Level等级和时长可同时配置,例如"acl_prof_task_time_level": "L1;10"。

api_filter

对性能数据进行过滤,配置该参数可自定义采集配置的API性能数据,例如传入“matmul”会落盘所有API数据中name字段包含matmul的性能数据。str类型,区分大小写,多个不同的筛选目标用“;”隔开,默认为空,表示落盘所有数据。

仅当acl_task_time参数值为2时生效。

kernel_filter

对性能数据进行过滤,配置该参数可自定义采集配置的Kernel性能数据,例如传入“matmul”会落盘所有Kernel数据中name字段包含matmul的性能数据。str类型,区分大小写,多个不同的筛选目标用“;”隔开,默认为空,表示落盘所有数据。

仅当acl_task_time参数值为2时生效。

timelimit

设置服务化性能数据采集的时长,配置该参数后,采集进程将在运行指定的时间后自动停止,取值范围为0~7200的整数,单位s,默认值0(表示不限制采集时间)。

说明:

该采集时长建议最短设置为120s,可以根据实际情况进行增加,若采集时间过短,可能会导致数据不满足解析输出件生成,打印告警提示。

domain

设置采集指定domain域下的性能数据,减少采集数据量。输入参数为字符串格式,英文分号作为分隔符,区分大小写,例如:"Request; KVCache"。

默认为空,表示采集当前所有domain域内性能数据。

当前已有domain域为:Request、KVCache、ModelExecute、BatchSchedule、Communication。

说明:
若指定domain域不全,采集数据不满足解析输出件生成时,则打印告警提示。查看表1