您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[华为]:2025大模型训练性能瓶颈定位流程案例 - 发现报告

2025大模型训练性能瓶颈定位流程案例

信息技术2025-01-03-华为一***
AI智能总结
查看更多
2025大模型训练性能瓶颈定位流程案例

文档版本01发布日期2025-01-13 版权所有©华为技术有限公司2025。保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明 和其他华为商标均为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意 您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声明或保证。 由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。 安全声明 产品生命周期政策 华为公司对产品生命周期的规定以“产品生命周期终止政策”为准,该政策的详细内容请参见如下网址:https://support.huawei.com/ecolumnsweb/zh/warranty-policy 漏洞处理流程 华为公司对产品漏洞管理的规定以“漏洞处理流程”为准,该流程的详细内容请参见如下网址:https://www.huawei.com/cn/psirt/vul-response-process如企业客户须获取漏洞信息,请参见如下网址:https://securitybulletin.huawei.com/enterprise/cn/security-advisory 华为初始证书权责说明 华为公司对随设备出厂的初始数字证书,发布了“华为设备初始数字证书权责说明”,该说明的详细内容请参见如下网址:https://support.huawei.com/enterprise/zh/bulletins-service/ENEWS2000015766 华为企业业务最终用户许可协议(EULA) 本最终用户许可协议是最终用户(个人、公司或其他任何实体)与华为公司就华为软件的使用所缔结的协议。最终用户对华为软件的使用受本协议约束,该协议的详细内容请参见如下网址:https://e.huawei.com/cn/about/eula 产品资料生命周期策略华为公司针对随产品版本发布的售后客户资料(产品资料),发布了“产品资料生命周期策略”,该策略的详细内容请参见如下网址:https://support.huawei.com/enterprise/zh/bulletins-website/ENEWS2000017760 1常见性能问题场景...................................................................................................................... 12问题定位方法.............................................................................................................................. 22.1性能问题定位流程.................................................................................................................................................................... 22.2 Ascend PyTorchProfiler采集性能数据..............................................................................................................................32.3 Mindstudio Insight定位........................................................................................................................................................ 43性能调优案例.............................................................................................................................. 93.1案例描述...................................................................................................................................................................................... 93.2 MindStudio Insight分析定位............................................................................................................................................... 93.3 mstt advisor辅助定位.......................................................................................................................................................... 11 常见性能问题场景 大模型从外部设备迁移到昇腾设备,并在昇腾设备上训练的过程中,可能会出现性能问题。常见的两大性能问题场景是开箱性能优化场景和性能长跑劣化场景。 ●开箱性能优化:主要是用户在昇腾平台使用模型时,发现性能差,直接进行性能层面的优化。●性能长跑劣化:一般是用户在训练过程中,由于不可预知的引入,导致模型出现了一些性能劣化的问题,需要定位性能劣化的原因,并解决问题。 图1-1场景介绍 问题定位方法 性能问题定位流程Ascend PyTorchProfiler采集性能数据Mindstudio Insight定位 2.1性能问题定位流程 大模型训练的基本性能调优流程如下: 图2-1基本性能调优流 3.除此之外,用户还可以直接使用mstt中的Advisor工具辅助定位问题,Advisor工具通过内置的案例集,自动对性能数据进行分析,并输出性能调优建议;4.最后,用户可以针对不同问题使用对应的调优手段进行调优,每次调优后重跑训练,采集性能数据,使用MindStudio Insight可视化工具查看调优手段是否产生效果。重复这个过程,直到解决性能问题。 2.2 Ascend PyTorchProfiler采集性能数据 Ascend PyTorchProfiler是大模型在Ascend PyTorch框架下训练过程中提供的一套采集性能数据的API接口,能够采集到框架侧、CANN侧和device侧的原始性能数据,并完成解析。在训练脚本(如train_*.py文件)内插入torch_npu.profiler相关采集、解析的配置和参数,再启动训练,即可采集性能数据。 Ascend PyTorchProfiler详细介绍请参见《性能调优工具指南》。 示例代码如下: import torchimport torch_npu#Profiler采集、解析的前置配置参数experimental_config=torch_npu.profiler._ExperimentalConfig(export_type=torch_npu.profiler.ExportType.Text,profiler_level=torch_npu.profiler.ProfilerLevel.Level0,msprof_tx=False,aic_metrics=torch_npu.profiler.AiCMetrics.AiCoreNone,l2_cache=False,op_attr=False,data_simplification=False,record_op_args=False,gc_detect_threshold=None)#大模型训练的次数steps = 7withtorch_npu.profiler.profile(activities=[torch_npu.profiler.ProfilerActivity.CPU,torch_npu.profiler.ProfilerActivity.NPU],schedule=torch_npu.profiler.schedule(wait=0,warmup=0, active=2, repeat=2,skip_first=1),on_trace_ready=torch_npu.profiler.tensorboard_trace_handler("./result"),record_shapes=False,profile_memory=False,with_stack=False,with_modules=False,with_flops=False,experimental_config=experimental_config)as prof:for step in range(steps):#模型训练train_one_step(step, steps, train_loader, model, optimizer, criterion)#调用step方法进行采集、解析数据prof.step() 采集生成的文件结构如下所示: └── localhost.localdomain_139247_20240628101435_ascend_pt├──profiler_info.json├──profiler_metadata.json├── ASCEND_PROFILER_OUTPUT│├── communication.json│├── communication_matrix.json│├── data_preprocess.csv│├── kernel_details.csv│├── l2_cache.csv│├── memory_record.csv 2.3 Mindstudio Insight定位 MindStudio Insight提供了丰富的调优分析手段,可视化呈现真实软硬件运行数据,多维度分析性能数位,定位性能瓶颈点,支持百卡、千卡及以上规模的可视化集群性能分析。可以根据《MindStudio Insight用户指南》中的“基础操作>导入数据”,在MindStudio Insight中导入上一步采集的性能数据,根据下述流程使用可视化能力分析性能数据。 概览界面总览数据情况 可以通过概览页了解每个模块的具体内容。详细介绍请参见《MindStudio Insight用户指南》中的“系统调优>概览(Summary)”。 1.在“并行策略分析”模块,提供TP、PP、DP等不同并行策略分析视角: a.点击复选框选择并行策略,通过方框标注识别并行分组。b.选择不同的“数据类型”会展示对应的热力图,根据热力图找到存在性能问题的通信域,越偏向红色表示性能越差。 图2-2并行策略分析 2.在计算/通信概览部分展示所选通信域下每张卡的计算、通信、空闲时间占比情况,并提供专家建