msMemScope工具提供内存事件的采集能力,支持自定义配置采集内存范围和采集项,精准采集关键数据,为后续分析提供可靠的支撑。
- Python接口采集:通过Python接口,配置采集范围和采集项,支持采集内存事件和Python Trace事件。
- 命令行采集:通过命令行方式,配置采集参数,实现内存事件采集。
- mstx打点采集:结合mstx打点能力,可通过C脚本和Python脚本实现内存事件采集。
通过Python接口采集内存事件和Python Trace事件,支持自定义配置采集内存范围和参数项,实现精准采集、高效分析。
- 使用export方式设置环境变量仅在当前窗口有效。设置环境变量后,如果不再需要使用msMemScope工具的功能,建议将LD_PRELOAD、LD_LIBRARY_PATH恢复成设置前状态。
- 当设置events="traceback",采集Python Trace事件,开启后,将落盘csv文件,名称为python_trace_{TID}_{timestamp}.csv,具体信息可参见《》。
- 如果需要关闭采集项,可设置采集项取值为空。例如,关闭Python Trace采集,则设置events=""即可。
- 使用Python接口方式自定义采集范围,支持设置多段采集范围。
Python接口采集[object Object][object Object]
设置环境变量。
执行以下命令,设置LD_PRELOAD和LD_LIBRARY_PATH环境变量。
[object Object]表 1 参数说明[object Object][object Object]
[object Object]undefined
采集内存。
执行以下示例代码,采集内存事件。需要注意的是,请根据需求自行配置
[object Object]的参数。支持设置device、level、events、call_stack、analysis、watch、output和data_format参数,可根据需求自行设置,具体参数信息可参见。[object Object][object Object]
Python Trace采集
默认采集
msMemScope工具支持通过Python接口采集Python代码的Trace数据,并与内存事件使用统一时间轴,帮助调优人员快速关联内存事件与全链路代码,精准定位问题。
[object Object]
自定义采集
msMemScope工具支持通过Python接口自定义Trace事件,可通过调用API接口自定义Trace事件,关注核心代码或代码块,避免落盘全量Trace事件,提高数据采集效率。自定义Trace事件可通过
[object Object]接口设置,支持上下文(标记函数)和装饰器两种模式(标记代码块)。
内存快照采集
支持采集当前系统内的显存分配器快照信息,例如设备总空闲内存、设备当前空闲内存等信息,便于客户高效获取。
内存快照采集功能可通过两种方式开启,方式一为本节的自动开启,方式二为一键分析功能开启,具体操作可参见。内存快照采集功能支持以下应用场景。
执行以下示例代码,采集内存快照。
[object Object]可自行设置参数,支持的参数请参见。
表 2 快照采集参数说明[object Object][object Object]
采集完成后,结果会落盘至memscope_dump_{timestamp}.csv文件中。
[object Object]
Step采集
可通过添加Python接口,采集Step信息。推荐在Python场景下使用该方式采集Step信息。 示例代码如下:
在非Python场景下,支持通过命令行方式执行内存采集和分析。
- 环境变量TASK_QUEUE_ENABLE可自行配置,具体配置可参见《》。当TASK_QUEUE_ENABLE配置为2时,开启task_queue算子下发队列Level 2优化,此时会采集workspace内存。
- 使用root用户运行msMemScope工具时,系统会打印提示,跳过文件权限校验,存在安全风险,建议使用普通用户权限安装执行。
- 使用msMemScope工具采集内存时,推荐使用自定义采集方式设置采集项,进行内存采集,具体可参见。
- 命令行采集方式不支持场景:VLLM-Ascend。
通过执行以下命令,可以启动msMemScope工具,采集内存数据。
方式一(推荐使用此方式):user.sh为用户脚本
[object Object]方式二
[object Object]
表 3 命令行参数说明
表 4 参数说明
[object Object]
msMemScope工具可以结合mstx打点能力进行内存采集,同时msMemScope工具能够在可视化Trace中标记打点位置,便于用户定位问题代码行。
下方分别以Python脚本和C脚本为例,展示msMemScope工具结合mstx执行的内存采集操作。
请在训练推理脚本内的Step开始和结束处进行标记,并使用固化信息“step start”标识Step开始,Python脚本示例如下:
[object Object]C脚本示例如下:
[object Object]
[object Object]