【华为】2025大模型训练性能瓶颈定位流程案例_15页_1mb
报告摘要
MindStudio大模型训练性能瓶颈定位流程总结
1 常见性能问题场景
大模型从外部设备迁移至昇腾设备训练时,可能出现两类性能问题:
- 开箱性能优化:用户初次使用昇腾平台时发现性能差,需直接进行性能优化。
- 性能长跑劣化:训练过程中因不可预知因素导致性能下降,需定位原因并解决。
2 问题定位方法
性能调优的核心是先定界问题,再针对性优化。
2.1 性能问题定位流程
- 数据采集:通过AscendPyTorchProfiler接口采集框架侧、CANN侧和device侧性能数据。
- 问题定界:使用MindStudioInsight工具可视化分析,划分问题为计算、调度、通信三类。
- 辅助分析:采用mstt中的Advisor工具,基于内置案例集自动生成调优建议。
- 调优验证:针对不同问题应用优化手段(如增大batchsize、绑核、算子融合),重复训练并检查效果。
2.2 AscendPyTorchProfiler采集性能数据
- 功能:采集训练过程中的计算、通信等性能数据,并解析生成结构化文件。
- 使用方法:在训练脚本(如
train_*.py)中插入配置参数(如export_type、profiler_level),启动训练后生成数据。 - 输出文件:包含
profiler_info.json、kernel_details.csv、communication_matrix.json等,用于后续分析。
2.3 MindStudioInsight定位
- 功能:通过可视化界面分析性能瓶颈,支持大规模集群(百卡/千卡)性能监控。
- 分析流程:
- 概览界面:查看各模块的总计算时间、通信时间占比,判断问题类型(如通信问题占比过高)。
- 并行策略分析:切换TP、PP、DP策略视角,通过热力图定位通信域异常(红色区域表示性能差)。
- 计算/通信概览:分析空闲时间、通信时间分布,识别慢卡或快卡(如通信时间未被覆盖差异显著)。
- 算子比对:对比卡间算子执行时间(如MatMul类算子耗时异常),锁定性能问题。
- 时间线分析:通过
HostToDevice连线形态(倾斜/竖直)识别调度任务安排是否合理。 - 通信界面:分析通信矩阵、传输时长和带宽,定位卡间不同步或链路异常。
3 性能调优案例
某多模态模型在训练中出现性能大幅劣化,处理过程如下:
- 数据采集:使用AscendPyTorchProfiler采集16卡集群数据,生成
localhostlocaldomain_*目录下的性能文件。 - 概览分析:发现通信时间占比过高(仅占总耗时1/3),判定位为通信问题。
- 通信界面分析:
- 通过通信矩阵查看卡间传输量差异,发现第12卡存在显著空闲时间。
- AscendCL侧大量资源占用事件提示内存碎片问题。
- 解决方案:
- 调整内存配置(
exportPYTORCH_NPU_ALLOC_CONF="expandable_segments:True")解决内存重整问题。 - 使用Advisor工具分析生成建议,验证与手动分析结论一致,最终解决性能问题。
- 调整内存配置(
总结
华为MindStudio通过AscendPyTorchProfiler和MindStudioInsight工具链,提供从数据采集到瓶颈定位的完整流程。用户可根据性能指标差异定位问题类型,结合可视化分析与Advisor建议针对性调优,最终通过重复训练验证效果。该流程适用于计算、调度、通信三大方向的性能优化,支持大规模集群分析,有效提升训练效率。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载