简介¶
概述¶
MindStudio Insight是面向昇腾AI开发者的可视化调优工具,支持系统调优、算子调优、服务化调优和内存调优的能力,帮助开发者在训练、推理以及算子开发场景快速完成性能优化。
MindStudio Insight提供了丰富的调优分析手段,能够可视化呈现真实软硬件运行数据,多维度分析性能瓶颈点,支持百卡、千卡及以上规模的可视化集群性能分析,助力开发者提升性能调优效率。
典型使用流程¶
使用 MindStudio Insight 进行性能分析时,通常按以下流程操作:
- 安装工具:按照MindStudio Insight安装指南完成安装。
- 采集数据:使用 msProf、msOpProf、msMemScope 或服务化 Profiling 工具采集性能数据。
- 导入数据:在 MindStudio Insight 中导入对应文件或目录,基础操作请参见MindStudio Insight基础操作。
- 选择场景:根据问题类型进入系统调优、算子调优、服务化调优或内存调优界面。
- 定位瓶颈:结合时间线、详情表、通信分析、内存视图或源码视图定位问题。
- 处理异常:若导入失败或界面无数据,可先查看FAQ。
场景选择指引¶
| 问题现象 | 推荐入口 | 重点查看内容 |
|---|---|---|
| 模型整体运行慢、卡间不均衡、通信耗时异常 | 系统调优 | Summary、Communication、Timeline、Host Bound 分析 |
| 单个算子耗时高、流水并行度不足、源码热点明显 | 算子调优 | Timeline、Source、Details、Cache |
| 推理服务请求时延高、首 Token 慢、KVCache 使用异常 | 服务化调优 | Timeline、Curve、request_data、batch_info、forward_info |
| 显存持续增长、OOM、内存未释放或内存池异常 | 内存调优 | MemScope 内存详情、PyTorch Snapshot、调用栈火焰图 |
| 数据导入、工程管理、日志、快捷键等通用操作 | 基础操作 | 导入数据、管理数据、管理日志、常用快捷键 |
相关资源¶
| 资源 | 说明 |
|---|---|
| MindStudio Insight安装指南 | 安装、升级、卸载和完整性校验。 |
| 版本发布说明 | MindStudio Insight 与 CANN 等组件的版本配套关系。 |
| FAQ | 导入、显示、依赖、网络磁盘、JupyterLab 等常见问题。 |
| 快速入门 | 通过样例数据快速体验系统调优分析路径。 |
优势¶
-
MindStudio Insight支持在时间线(Timeline)查看集群场景下的Profiling数据,并以单卡维度进行展示,且可以自动遍历输入路径下的db文件,或者所有的trace_view.json文件(PyTorch场景和MindSpore场景)和msprof*.json文件(TensorFlow场景和离线推理场景),无需手动合并文件,操作简单。
-
MindStudio Insight借助于数据库支持超大性能数据处理,可以支持20GB的集群性能数据分析,并且能够支持大模型场景下的性能调优。
特性介绍¶
MindStudio Insight工具支持系统调优、算子调优、服务化调优和内存调优,可视化呈现数据情况,助力开发者快速完成性能调优。
- 系统调优
MindStudio Insight提供时间线视图、内存、算子耗时、通信瓶颈分析等功能,帮助开发者快速定位模型性能瓶颈,进行深度调优。
| 功能界面 | 介绍 | 场景说明 |
|---|---|---|
| 时间线(Timeline) | 以时间线视图方式为用户提供全流程在线推理/训练过程中的运行情况,并按照调度流程来呈现整体的运行状况,支持集群时间线(Timeline)展示、系统视图详情查看等功能。 | - |
| 内存(Memory) | 提供采集过程中内存信息的可视化呈现。通过算子内存折线图直观清晰了解算子内存趋势。 | - |
| 算子(Operator) | 提供算子耗时统计和分析。 | - |
| 概览(Summary) | 展示计算算子和通信算子的耗时分析,并以柱状图、折线图以及数据窗格等呈现方式显示分析结果。 | 支持PyTorch集群场景。 |
| 通信(Communication) | 展示集群中全网链路性能以及所有节点的通信性能,通过集群通信与计算重叠时间的分析可以找出集群训练中的慢主机或慢节点。 | 支持PyTorch集群场景。 |
| 强化学习(RL) | 基于采集数据进行高层次抽象,可视化展示控制流的时序关系,帮助快速定位耗时任务与空泡,并支持进一步的性能分析。 | - |
- 算子调优
MindStudio Insight提供指令流水视图、算子源码视图以及算子运行负载分析视图,直观地将运行在昇腾AI处理器上的算子的关键性能指标进行可视化呈现,帮助用户快速定位算子的软硬件性能瓶颈,提升算子性能分析的效率。
| 功能界面 | 介绍 | 备注 |
|---|---|---|
| 时间线(Timeline) | 以时间线视图方式为用户提供指令在昇腾处理器上的运行情况,并按照调度流程来呈现整体的运行状况,支持查看指令详情、搜索指令等功能。 | - |
| 源码(Source) | 展示算子指令热点图,支持查看算子源码与指令集的映射关系和耗时情况。 | 支持msprof采集的算子Profiling的bin文件。 |
| 详情(Details) | 展示算子基础信息、计算负载分析和内存负载分析,并以图形和数据窗格呈现方式展示分析结果。 | 支持msprof采集的算子Profiling的bin文件。 |
| 缓存(Cache) | 展示用户程序Kernel函数内的L2 Cache访问情况,以便用户优化Cache命中率。 | 支持msprof采集的算子Profiling的bin文件。 |
- 服务化调优
MindStudio Insight工具以时间线(Timeline)的呈现方式,将请求端到端的执行情况平铺在时间轴上,直观体现请求在各个关键阶段的耗时情况以及当下请求的状态信息,可帮助用户快速识别服务化性能瓶颈,并根据问题现象,调整调优策略。
| 功能界面 | 介绍 | 场景说明 |
|---|---|---|
| 时间线(Timeline) | 以时间线视图方式为用户提供请求端到端的执行情况,直观地查看请求在各个关键阶段的耗时情况以及当下请求的状态信息。 | 支持推理服务化请求trace数据的json文件。 |
| 折线图(Curve) | 以折线图和数据详情表的形式展示推理服务化进程中端到端的性能情况。 | 支持profiler.db文件。 |
- 内存调优
MindStudio Insight工具以图形化形式呈现device侧内存详细分配情况,并结合Python调用栈及自定义打点标签标记各种内存申请使用详情,进行内存问题的详细定位及调优。
| 功能界面 | 介绍 | 场景说明 |
|---|---|---|
| 内存详情(msMemScope) | 通过调用栈图、折线块图和内存拆解图,将内存情况直观地呈现出来,便于开发者分析定位内存问题,有效缩短定位时间。 | 支持msMemScope工具采集到的db格式的内存结果文件。 |
使用约束¶
MindStudio Insight工具支持导入并展示多种格式的性能数据文件,并对文件规格给出了指导性建议和限制要求。
| 文件类型 | 指导建议 | 规格限制 |
|---|---|---|
| json文件 | 建议单文件大小不超过1GB,多个文件总大小不超过20GB。 | 单文件大小不超过10GB。 |
| bin文件 | 建议单文件大小不超过500MB。 | 单文件大小不超过10GB。 |
| db文件 | • 系统调优:建议单文件大小不超过1GB。 • 服务化调优:建议单文件大小不超过1GB。 |
• 系统调优:单文件大小不超过20GB。 • 服务化调优:单文件大小不超过10GB。 |
| csv文件 | csv格式的文件存在于text数据中,建议单文件大小不超过500MB。 | 单文件大小不超过2GB。 |