# Memory 分析模块 ## 1. 简介 RL-Insight 的 Memory 分析模块包含 Memory Parser(解析)和 Memory Visualizer(可视化)两部分,完整的 Pipeline 如下: ``` profiling 数据 → MemoryParser → DataChecker → MemoryVisualizer → HTML 交互图表 ``` 模块划分、流水线与扩展步骤见 [架构说明](./architecture.md)。更完整的数据目录与 JSON 字段约定见 [数据规格与格式说明](../data/data_specification.md)。 ### 1.1 主要功能 **Memory Parser**(`memory.parser.type=memory`): - **内存分配解析**:解析 Ascend Profiler 输出的 `operator_memory.csv`,提取算子级内存分配/释放记录 - **调用栈关联**:通过 `trace_view.json` 中的 `cpu_op` 事件,为每条内存记录匹配 Python 调用栈,便于定位内存申请源头 - **并行处理**:利用多进程并行解析多个 Rank 的内存数据,提升处理效率 - **结构化输出**:输出标准化的 DataFrame,包含 `name`、`size_kb`、`start_time_ms`、`duration_ms`、`total_allocated_mb`、`call_stack` 等字段 **Memory Visualizer**(`memory.visualizer.type=memory_html`): - **双图表交互展示**:Chart1 累计内存趋势折线图 + Chart2 算子甘特图,x 轴实时联动缩放 - **调用栈回溯**:点击任意 bar 查看该内存事件的完整调用栈 - **重叠事件检测**:同算子同时刻的多个内存分配自动标注 - **大数据分段**:百万级事件自动按时间窗口分片(最多 20 个 HTML 文件),段间智能导航 - **自包含输出**:生成独立 HTML + JS 文件对,浏览器直接打开无需服务器 ### 1.2 软件依赖 除 RL-Insight 公共依赖外,Memory Parser 额外依赖: | 库 | 用途 | 安装 | |----|------|------| | `ijson` | 流式解析大 JSON(`trace_view.json` 可达数百 MB) | `pip install ijson` | ## 2. 输入数据 ### 2.1 目录结构 ```text / └── / └── _