开发者
资源

mstx打点采集

mstx提供了基础打点能力,结合此能力,msMemScope工具可以进行内存采集。

对于C脚本和Python脚本,mstx打点方式略有不同,可参考《MindStudio mstx API参考》

下方以Python脚本和C脚本为例,展示mstx结合msMemScope工具的内存采集操作。建议使用C脚本示例进行mstx打点采集。

请在训练推理脚本内的Step开始和结束处进行标记,并使用固化信息“step start”标识Step开始,Python脚本示例如下:
1
2
3
4
5
6
import mstx
for epoch in range(15): 
    id = mstx.range_start("step start", None) # 标识Step开始并开启内存分析功能
    ....
    ....
    mstx.range_end(id)  # 标识Step结束

C脚本示例如下:

#include <iostream>
#include "acl/acl.h"
#include "mstx/ms_tools_ext.h"
int main(void)
{
    mstxMarkA("MarkA", nullptr);
    uint64_t id_1 = mstxRangeStartA("step start", nullptr);
    ....
    mstxRangeEnd(id_1);
    return 0;
}
  • 仅支持采集单卡局部的内存数据。
  • 在需要的用户程序前可添加PYTHONMALLOC=malloc。

    PYTHONMALLOC=malloc是Python的环境变量,表示不采用Python的默认内存分配器,所有的内存分配均使用malloc,该配置对小内存申请有一定影响。