开发者
资源
[object Object][object Object]

msMemScope工具提供内存事件的采集能力,支持自定义配置采集内存范围和采集项,精准采集关键数据,为后续分析提供可靠的支撑。

  • Python接口采集:通过Python接口,配置采集范围和采集项,支持采集内存事件和Python Trace事件。
  • 命令行采集:通过命令行方式,配置采集参数,实现内存事件采集。
  • mstx打点采集:结合mstx打点能力,可通过C脚本和Python脚本实现内存事件采集。
[object Object]

msMemScope工具的安装,请参见《》。

[object Object][object Object]

通过Python接口采集内存事件和Python Trace事件,支持自定义配置采集内存范围和参数项,实现精准采集、高效分析。

[object Object]
  • 使用export方式设置环境变量仅在当前窗口有效。设置环境变量后,如果不再需要使用msMemScope工具的功能,建议将LD_PRELOAD、LD_LIBRARY_PATH恢复成设置前状态。
  • 当设置events="traceback",采集Python Trace事件,开启后,将落盘csv文件,名称为python_trace_{TID}_{timestamp}.csv,具体信息可参见《》。
  • 如果需要关闭采集项,可设置采集项取值为空。例如,关闭Python Trace采集,则设置events=""即可。
  • 使用Python接口方式自定义采集范围,支持设置多段采集范围。
[object Object]

Python接口采集[object Object][object Object]

  1. 设置环境变量。

    执行以下命令,设置LD_PRELOAD和LD_LIBRARY_PATH环境变量。

    [object Object]

    其中的参数说明如

    表 1 参数说明[object Object][object Object]

    [object Object]undefined
  2. 采集内存。

    执行以下示例代码,采集内存事件。需要注意的是,请根据需求自行配置[object Object]的参数。支持设置device、level、events、call_stack、analysis、watch、output和data_format参数,可根据需求自行设置,具体参数信息可参见

    [object Object]
    [object Object]

Python Trace采集

  • 默认采集

    msMemScope工具支持通过Python接口采集Python代码的Trace数据,并与内存事件使用统一时间轴,帮助调优人员快速关联内存事件与全链路代码,精准定位问题。

    [object Object]
    1. 在msMemScope工具中,增加Python接口,用以开启和关闭Tracer功能,在start和stop之间的Python代码,会落盘Trace数据。代码示例如下:

      [object Object]
    2. 执行完成后,会生成名称为python_trace_{TID}_{timestamp}.csv的文件,具体文件信息可参见《》。

  • 自定义采集

    msMemScope工具支持通过Python接口自定义Trace事件,可通过调用API接口自定义Trace事件,关注核心代码或代码块,避免落盘全量Trace事件,提高数据采集效率。自定义Trace事件可通过[object Object]接口设置,支持上下文(标记函数)和装饰器两种模式(标记代码块)。

    1. 在msMemScope工具中,使用[object Object]接口,落盘自定义Trace事件数据。代码示例如下:

      [object Object]
    2. 自定义Trace数据的落盘路径和默认采集的Trace数据落盘路径一致,具体文件信息可参见《》。

内存快照采集

支持采集当前系统内的显存分配器快照信息,例如设备总空闲内存、设备当前空闲内存等信息,便于客户高效获取。

内存快照采集功能可通过两种方式开启,方式一为本节的自动开启,方式二为一键分析功能开启,具体操作可参见。内存快照采集功能支持以下应用场景。

[object Object]undefined

执行以下示例代码,采集内存快照。

[object Object]可自行设置参数,支持的参数请参见

[object Object]

表 2 快照采集参数说明[object Object][object Object]

[object Object]undefined

采集完成后,结果会落盘至memscope_dump_{timestamp}.csv文件中。

[object Object]

Step采集

可通过添加Python接口,采集Step信息。推荐在Python场景下使用该方式采集Step信息。 示例代码如下:

[object Object]
[object Object]

内存采集的输出结果请参见《》。

[object Object][object Object]

在非Python场景下,支持通过命令行方式执行内存采集和分析。

[object Object]
  • 环境变量TASK_QUEUE_ENABLE可自行配置,具体配置可参见《》。当TASK_QUEUE_ENABLE配置为2时,开启task_queue算子下发队列Level 2优化,此时会采集workspace内存。
  • 使用root用户运行msMemScope工具时,系统会打印提示,跳过文件权限校验,存在安全风险,建议使用普通用户权限安装执行。
  • 使用msMemScope工具采集内存时,推荐使用自定义采集方式设置采集项,进行内存采集,具体可参见
  • 命令行采集方式不支持场景:VLLM-Ascend。
[object Object]

通过执行以下命令,可以启动msMemScope工具,采集内存数据。

  • 方式一(推荐使用此方式):user.sh为用户脚本

    [object Object]
  • 方式二

    [object Object]
[object Object]

表 3 命令行参数说明

[object Object]undefined

表 4 参数说明

[object Object]undefined
[object Object]
[object Object]

内存采集的输出结果请参见《》。

[object Object][object Object]

msMemScope工具可以结合mstx打点能力进行内存采集,同时msMemScope工具能够在可视化Trace中标记打点位置,便于用户定位问题代码行。

[object Object]
  • 对于C脚本和Python脚本,mstx打点方式略有不同,具体信息可参考《》。
  • 推荐使用C脚本示例进行mstx打点采集。
[object Object]

下方分别以Python脚本和C脚本为例,展示msMemScope工具结合mstx执行的内存采集操作。

  • 请在训练推理脚本内的Step开始和结束处进行标记,并使用固化信息“step start”标识Step开始,Python脚本示例如下:

    [object Object]
  • C脚本示例如下:

    [object Object]
[object Object]
[object Object]

内存采集的输出结果请参见《》。