mindformers.core.ProfileMonitor

查看源文件
class mindformers.core.ProfileMonitor(start_step=1, stop_step=10, output_path=None, start_profile=True, profile_rank_ids=None, profile_pipeline=False, profile_communication=False, profile_memory=False, profiler_level=0, with_stack=False, data_simplification=True, config=None, **kwargs)[源代码]

监控训练过程的性能分析回调函数。

参数:
  • start_step (int) - 启动profiling的训练步数。默认值: 1

  • stop_step (int) - 停止profiling的训练步数。默认值: 10

  • output_path (str) - 保存profiling生成文件的文件夹路径。默认值: None

  • start_profile (str) - 是否打开profiling功能。默认值: True

  • profile_communication (str) - 在分布式训练期间是否收集通信性能数据。默认值: False

  • profile_memory (str) - 是否收集张量的内存数据。默认值: False

  • profile_rank_ids (list) - 指定rank ids开启profiling。默认值: None,即该配置不生效,所有rank id均开启profiling。

  • profile_pipeline (str) - 是否按流水线并行每个stage的其中一张卡开启profiling。默认值: False

  • profiler_level (int) - 采集profiling数据的级别(0, 1, 2)。默认值: 0

    • 0 - 最精简的采集性能数据级别,只采集计算类算子耗时数据和通信类大算子基础数据。

    • 1 - 在level0基础上,额外采集CANN层AscendCL数据、AICORE性能数据以及通信类小算子数据。

    • 2 - 在level1基础上,额外采集CANN层中图编译等级为O2和Runtime数据。

  • with_stack (str) - 是否收集Python侧的调用栈数据。默认值: False

  • data_simplification (str) - 是否开启数据精简,开启后将在导出profiling数据后删除FRAMEWORK目录以及其他多余数据。默认值: True

  • config (dict) - 配置项,用于对相关配置信息进行profiling,比如并行配置。默认值: None

样例:

>>> from mindformers.core import ProfileMonitor
>>> monitor = ProfileMonitor(output_path='./profile_dir')