开发者
资源

Python接口采集

msMemScope工具支持通过Python接口采集信息,提供自定义设置采集内存范围和采集项,采集Python Trace事件能力,实现精准采集、高效分析

自定义采集范围

新增Python脚本示例,使用Python脚本自定义采集范围,可支持设置多段采集范围。

示例代码如下:

1
2
3
4
5
import msmemscope

msmemscope.start()   # 开启采集 
train()              # train()为用户代码
msmemscope.stop()    # 退出采集

自定义设置采集项

支持自定义设置采集项,支持设置device、level、events、call_stack、analysis、watch、output和data_format参数,可根据需求自行设置,具体参数信息可参见命令行采集

在使用自定义采集功能前,需要先设置环境变量,执行以下命令,设置LD_PRELOAD和LD_LIBRARY_PATH环境变量。参数说明如表1所示。

export LD_PRELOAD=${memscope_install_path}/lib64/{so_name}:${memscope_install_path}/lib64/{so_name}
export LD_LIBRARY_PATH=${memscope_install_path}/lib64/:${LD_LIBRARY_PATH}
表1 参数说明

参数

说明

memscope_install_path

msMemScope工具的安装路径。

so_name

需要配置的so包名称,每个so包之间以半角冒号分隔。

需要配置的so包有libascend_kernel_hook.so、libascend_mstx_hook.so、libatb_abi_0_hook.so、libatb_abi_1_hook.so、libleaks_ascend_hal_hook.so,共5个so包。

LD_LIBRARY_PATH

LD_LIBRARY_PATH环境变量。

  • 上述export方式设置环境变量仅在当前窗口有效。设置环境变量后,如果不再需要使用msMemScope工具的功能,建议将LD_PRELOAD、LD_LIBRARY_PATH恢复成设置前状态。
  • 当设置events="traceback",采集Python Trace事件,开启后,将落盘csv文件,名称为python_trace_{TID}_{timestamp}.csv,具体信息请参见输出说明
  • 如果需要关闭采集项,可设置采集项取值为空。例如,关闭Python Trace采集,则设置events=""即可。

示例代码如下:

1
2
3
4
5
6
import msmemscope

msmemscope.config(call_stack="c:10,python:5", events="launch,alloc,free", level="0", device="npu", analysis="leaks,decompose", watch="op0,op1,full-content", data_format="db", output="/home/projects/output")
msmemscope.start()   # 开启采集
train()              # train()为用户代码
msmemscope.stop()    # 退出采集

Python Trace采集

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

Python Trace采集功能将于MindStudio 9.0.0版本下线,您可通过Python接口采集方式,自定义设置events="traceback",采集Python Trace事件,可参见自定义设置采集项

操作步骤

  1. msMemScope工具中,增加Python接口,用以开启和关闭Tracer功能,在start和stop之间的Python代码,会落盘Trace数据。
    代码示例如下:
    1
    2
    3
    4
    5
    import msmemscope
    
    msmemscope.tracer.start()  # 开启Tracer功能 
    train()                    # train()为用户代码
    msmemscope.tracer.stop()   # 关闭Tracer功能
    
  2. 执行完成后,会生成名称为python_trace_{TID}_{timestamp}.csv的文件,具体文件信息可参见输出说明

Step采集

可添加Python接口,采集Step信息。推荐在Python场景下使用该方式采集Step信息。

示例代码如下:
import msmemscope

msmemscope.config()
msmemscope.start()		# 开启采集
for i in range(10):
    train()			# train()为用户代码
    msmemscope.step()	        # 输入Step信息
msmemscope.stop()		# 退出采集