昇腾社区首页
中文
注册

torch_npu.profiler._ExperimentalConfig

接口原型

torch_npu.profiler._ExperimentalConfig(export_type=torch_npu.profiler.ExportType.Text, profiler_level=torch_npu.profiler.ProfilerLevel.Level0, msprof_tx=False, aic_metrics=torch_npu.profiler.AiCMetrics.AiCoreNone, l2_cache=False, op_attr=False, data_simplification=False, record_op_args=False)

功能描述

性能数据采集扩展参数。用于构造torch_npu.profiler.profile的experimental_config参数。

参数说明

  • export_type:设置导出的性能数据结果文件格式,Enum类型。可取值以及含义详见torch_npu.profiler.ExportType
  • profiler_level:采集的Level等级,Enum类型。可取值以及含义详见torch_npu.profiler.ProfilerLevel
  • msprof_tx:打点控制开关,通过开关开启自定义打点功能,bool类型。可取值True(开启)或False(关闭),默认关闭。

    开启此功能时,不能同时配置torch_npu.profiler.ExportType.Db和torch_npu.profiler.ProfilerLevel.Level_none。

  • data_simplification:数据精简模式,开启后将在导出性能数据后删除FRAMEWORK目录数据以及删除多余数据,仅保留ASCEND_PROFILER_OUTPUT目录和PROF_XXX目录下的原始性能数据,以节省存储空间,bool类型。可取值True(开启)或False(关闭),默认开启。
  • aic_metrics:AI Core的性能指标采集项,Enum类型,采集的结果数据将在Kernel View呈现。可取值以及含义详见torch_npu.profiler.AiCMetrics
  • l2_cache:控制l2_cache数据采集开关,bool类型。可取值True(开启)或False(关闭),默认关闭。该采集项在ASCEND_PROFILER_OUTPUT生成l2_cache.csv文件。
  • op_attr:控制采集算子的属性信息开关,当前仅支持aclnn算子,bool类型。可取值True(开启)或False(关闭),默认关闭。该参数采集的性能数据仅支持export_type=torch_npu.profiler.ExportType.Db时解析的db格式文件。
  • record_op_args:控制算子信息统计功能开关,bool类型。可取值True(开启)或False(关闭),默认关闭。开启后会在{worker_name}_{时间戳}_ascend_pt_op_args目录输出采集到到算子信息文件。

    该参数在AOE工具执行PyTorch训练场景下调优时使用,且不建议与其他性能数据采集接口同时开启。

调用示例

import torch
import torch_npu

...

experimental_config = torch_npu.profiler._ExperimentalConfig(
	export_type=torch_npu.profiler.ExportType.Text,
	profiler_level=torch_npu.profiler.ProfilerLevel.Level0,
	msprof_tx=False,
	aic_metrics=torch_npu.profiler.AiCMetrics.AiCoreNone,
	l2_cache=False,
	op_attr=False,
	data_simplification=False,
	record_op_args=False
) 

with torch_npu.profiler.profile(
        on_trace_ready=torch_npu.profiler.tensorboard_trace_handler("./result"),
        experimental_config=experimental_config) as prof:
                for step in range(steps):
                        train_one_step(step, steps, train_loader, model, optimizer, criterion)
                       prof.step()