昇腾社区首页
中文
注册

通过训练脚本配置Profiling

采集性能原始数据

训练脚本配置Profiling仅支持TensorFlow框架。当前针对TensorFlow框架两种模式分别介绍如下:
  • Estimator模式下,通过NPURunConfig中的profiling_config开启Profiling数据采集,代码示例如下:
    from npu_bridge.estimator.npu.npu_config import NPURunConfig
    from npu_bridge.estimator.npu.npu_config import ProfilingConfig
    profiling_options = '{"output":"/tmp/profiling","storage_limit": "xxMB","training_trace":"on","l2":"on","hccl":"on","fp_point":"","bp_point":"","msproftx":"on"}'
    profiling_config = ProfilingConfig(enable_profiling=True, profiling_options = profiling_options)
    session_config=tf.ConfigProto()
    config = NPURunConfig(profiling_config=profiling_config, session_config=session_config)
  • sess.run模式下,通过session配置项profiling_mode、profiling_options开启Profiling数据采集,代码示例如下:
    custom_op = config.graph_options.rewrite_options.custom_optimizers.add()
    custom_op.name = "NpuOptimizer"
    custom_op.parameter_map["use_off_line"].b = True
    custom_op.parameter_map["profiling_mode"].b = True
    custom_op.parameter_map["profiling_options"].s = tf.compat.as_bytes('{"output":"/tmp/profiling","storage_limit": "xxMB","training_trace":"on","l2":"on","hccl":"on","task_trace":"on","aicpu":"on","fp_point":"","bp_point":"","aic_metrics":"PipeUtilization","msproftx":"on"}') 
    config.graph_options.rewrite_options.remapping = RewriterConfig.OFF #关闭remap开关
    with tf.Session(config=config) as sess:
        sess.run()

profiling_options参数配置请参见Profiling options参数解释

采集数据说明

可采集数据如下所示。

表1 timeline文件介绍

timeline文件名

相关参数

说明

msprof_{device_id}_{model_id}_{iter_id}.json

all

timeline数据总表。对采集到的timeline性能数据按照迭代粒度进行性能展示。详情请参见timeline数据总表

task_time_{device_id}_{model_id}_{iter_id}.json

-

AI core、AI cpu、All reduce并行度分析数据。文件详情请参见AI core、AI cpu、All reduce并行度分析数据说明

step_trace_{device_id}_{model_id}_{iter_id}.json

-

迭代轨迹数据,每轮迭代的耗时。文件详情请参见迭代轨迹数据说明

hccl_{device_id}_{model_id}_{iter_id}.json

hccl

HCCL数据。文件详情请参见HCCL数据说明

msproftx数据

msproftx

msproftx数据,通过Profiling AscendCL API for Extension(Profiling AscendCL API扩展接口)采集用户和上层框架程序的性能数据,并由msprof命令行的--msproftx参数进行数据导出。

注:{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID号。

表2 summary文件介绍

summary文件名

相关参数

说明

op_summary_{device_id}_{model_id}_{iter_id}.csv

aic_metrics(可选)

aicpu(可选)不配置aicpu参数默认采集AI Core算子信息,配置本参数可增加采集AI CPU算子信息。

AI Core数据,获取每轮迭代的每个task的ai core metrics的耗时。文件详情请参见AI Core数据说明

op_statistic_{device_id}_{model_id}_{iter_id}.csv

aic_metrics(可选)

aicpu(可选)不配置aicpu参数默认采集AI Core算子信息,配置本参数可增加采集AI CPU算子信息。

AI Core算子计数表,从算子类型维度找出耗时最大的算子类型。文件详情请参见AI Core算子调用次数及耗时数据说明

step_trace_{device_id}_{model_id}_{iter_id}.csv

-

迭代轨迹数据。文件详情请参见迭代轨迹数据说明

task_time_{device_id}_{model_id}_{iter_id}.csv

-

Task Scheduler任务调度信息。文件详情请参见Task Scheduler的任务调度信息数据说明

aicpu_{device_id}_{model_id}_{iter_id}.csv

aicpu

AI CPU数据。文件详情请参见AI CPU数据说明

dp_{device_id}_{model_id}_{iter_id}.csv

-

数据增强Data PreProcess数据。文件详情请参见数据增强数据说明

fusion_op_{device_id}_{model_id}_{iter_id}.csv

-

模型中算子融合前后信息。详情请参见模型中算子融合前后信息数据说明

l2_cache_{device_id}_{model_id}_{iter_id}.csv

l2

L2Cache数据。详情请参见L2Cache数据说明

注:{device_id}表示设备ID,{model_id}表示模型ID,{iter_id}表示某轮迭代的ID号。