本文梳理昇思大模型标准化性能评估体系,结合 MindSpore Profiler、msprof、MindStudio Insight 工具,定义计算性能、内存资源、通信开销、扩展能力、服务推理、稳定性抖动六大评估维度,配套环境准备、指标采集脚本、数据分析方法、验证手段,完成 “环境校验→多维度指标采集→评估打分→瓶颈定位→优化验证” 完整闭环,适配 MindSpore 2.9+、MindStudio7.0 以上、CANN8.5.0 环境。
一、评估前置:环境准备与基线校验
开展大模型性能评估前,先完成软硬件环境校验,避免环境异常带来评估结果失真,以 Atlas 300I Pro、openEuler22.03 ARM64 环境为例。
# 1.安装性能评估依赖 sudo dnf install -y msprof mindstudio-insight # 加载CANN环境变量 echo "source /usr/local/Ascend/ascend‑toolkit/8.5.0/set_env.sh" >> ~/.bashrc source ~/.bashrc # 2.工具版本校验 msprof --version insight --version # 3.NPU硬件基线检查,确认设备温度、带宽、使用率基线 npu‑smi info # 集群场景确认HCLL通信链路状态 hccn_tool ‑i 0 ‑g评估前置要点:大模型评估必须固定硬件配置、batch size、序列长度、并行策略、混合精度配置,保证每次评估的输入条件完全一致,指标才可横向对比。
二、昇思大模型六大核心评估维度
昇思大模型性能评估分为训练场景、推理场景两套指标集合,一共划分为六大评估维度,每个维度包含核心指标、采集方式、合格判定标准。
2.1 维度一:计算性能评估
目标:评估 AI Core 算力真实利用水平,识别慢算子、算子下发阻塞、计算流水断裂等问题,训练看单 step 耗时,推理看 token 吞吐、单 token 时延。
关键指标
1. 训练场景:单 step 迭代耗时、样本吞吐量(samples/s)、AI Core 利用率、算子平均耗时、Top‑N 高耗时算子;
2. 推理场景:首包时延、token 生成吞吐、单 token 生成时延、prefill 阶段耗时、decode 阶段耗时。
代码采集示例(MindSpore Profiler 嵌入脚本)
from mindspore import Profiler import mindspore as ms # 初始化性能采集器,大模型建议开启轻量化打点mstx profiler = Profiler( output_path="./perf_compute_data", profile_communication=False, profile_memory=False ) ms.set_context(device_target="Ascend", device_id=0) # 加载大模型、数据集,执行训练循环 for step in range(200): loss = model(inputs, labels) profiler.stop()命令行提取 TOP 耗时算子
# 解析采集数据,输出算子耗时TOP10 msprof --analyze=op --output="./perf_compute_data" | grep -E "op_name|total_duration|ai_core_util"合格参考标准
● AI Core 平均利用率≥75%;Free 空闲时间占比<10%;
● 训练迭代耗时波动控制在 ±5% 以内。
2.2 维度二:内存资源评估
目标:评估 HBM 内存占用峰值、内存复用效果、内存泄漏风险,识别 OOM、内存持续上涨等故障,分为权重内存、激活内存、临时算子内存三大块。
关键指标
1. 峰值 HBM 占用、权重内存大小、激活内存占用;
2. 内存复用率、内存碎片情况、是否存在内存泄漏;
采集方式
1. 脚本埋点获取内存指标;
2. msleaks 工具检测内存泄漏;
3. Insight 查看内存时序曲线。
# MindSpore获取NPU内存监控 import mindspore as ms device = ms.context.get_context("device_id") free, total = ms.npu.get_mem_info(device) used_mem_MB = (total‑free)/1024/1024 print(f"当前NPU内存占用:{used_mem_MB:.2f} MB")# 内存泄漏采集 msleaks --application="python llm_train.py" --output="./perf_mem_data"合格参考标准
● 无内存泄漏,多 step 运行后内存无持续上涨;
● 合理开启重计算、内存复用,激活内存显著下降,不触发 OOM。
2.3 维度三:多卡通信开销评估(分布式训练重点)
目标:评估 HCCL 通信的实际带宽、通信占比,定位 AllReduce、AllGather、ReduceScatter 等通信算子成为瓶颈场景,是大模型多卡性能低下高频根因。
关键指标
1. 通信总耗时占 step 总耗时比例;
2. 各类通信算子平均时延、实际通信带宽;
3. 是否存在快慢卡,各卡通信时延方差。
采集脚本命令行:
# 开启通信专项采集 msprof --application="python llm_multi_card_train.py" \ --output="./perf_comm_data" \ --collect=communication # 通信数据分析 msprof --analyze=communication --output="./perf_comm_data"合格参考标准
● 通信耗时占比建议<20%;
● 通信带宽接近硬件理论带宽,多卡之间通信时延方差小,无快慢卡。
2.4 维度四:集群扩展效率评估
面向多卡 / 超大规模集群场景,评估并行策略的扩展性,验证数据并行、模型并行、流水线并行、MoE 并行的扩展能力。
关键指标
1. 弱扩展效率(增加卡数,同等单卡样本下吞吐提升比例);
2. 强扩展效率(全局总样本不变,增加卡数总耗时下降比例);
3. 不同并行策略组合下的吞吐、迭代耗时变化;
举例:从 8 卡扩展到 32 卡,理想弱扩展效率为 100%,生产环境建议扩展效率≥85% 为合格。
2.5 维度五:推理服务性能评估
针对大模型在线推理场景,面向服务化业务,重点评估业务真实服务能力,不能只看单 batch 离线性能。
关键指标
● QPS、平均请求时延、P95/P99 时延;
● 并发请求下的 token 吞吐;
● 不同序列长度下性能衰减情况;
● KV‑Cache 内存占用与复用效率。
采集方式:结合 MindIE 推理引擎自带 profiler + msprof 联合采集,模拟多并发压测,统计 P95/P99 时延。
2.6 维度六:稳定性与抖动评估
大模型长稳训练非常关键,短期跑通不代表性能合格,需要评估长时间运行的性能稳定性。
关键指标
1. 长时间训练下 step 耗时抖动方差;
2. AI Core 利用率随时间是否持续下滑;
3. 是否偶现性能突降、卡顿;
4. 长时间运行内存是否持续上涨。
采集方式:开启动态 Profiler,训练过程中不中断任务持续采集多轮 step 数据,统计方差。
三、评估全流程实操:数据采集‑可视化分析‑结果验证
3.1 两种采集模式
1.命令行 msprof 采集(推荐集群远程环境):适合多卡大集群,输出原始性能数据目录;
2.MindStudio 界面可视化采集:Tools → Ascend → Performance Profiler,勾选算子、内存、通信指标,适合单卡调试。
采集完成后执行导出:
msprof --export=on --output="./xxx_prof_data"3.2 Insight 可视化分析操作
1. 启动insight,导入解析完成的 PROF_xxx 目录;
2.计算维度:查看 Timeline 时间线,统计 AI Core 利用率,筛选耗时 TOP 算子;
3.内存维度:打开 Memory 面板查看内存曲线,识别内存突增 step;
4.通信维度:打开集群通信视图,查看各卡通信时延、带宽;
5. 导出评估报告,记录六大维度全部指标数值。
3.3 优化后回归验证
针对评估发现瓶颈进行优化后,必须保持评估环境、输入参数完全不变,重复整套评估流程,对比前后指标,确认优化真实生效。
示例伪代码验证逻辑:
# 优化前记录 baseline:step_time_base, throughput_base, mem_peak_base # 实施优化(重计算、算子融合、通信调优、并行策略调整等) # 相同配置重新跑评估,获取优化后指标 # 对比:吞吐提升比例、step耗时下降比例、内存峰值变化四、评估总结
昇思大模型性能评估不能只看单一吞吐指标,必须从计算算力利用、HBM 内存资源、分布式通信开销、集群扩展效率、推理服务指标、长稳抖动六个维度综合判定性能好坏。
整套评估闭环流程:
环境基线校验 → 六大维度指标采集 → Insight/msprof 数据分析 → 定位瓶颈根因 → 优化调整 → 同等条件下重复评估验证。
通过标准化评估流程,避免只看单点指标造成误判,为大模型训练调优、上线部署提供量化的性能依据。