Skip to content

性能与精度问题

什么时候读:性能不达标(慢/吞吐低)、或精度/数值不对,需要系统性定位与调优。

一、性能问题定位框架

性能问题不要靠猜,用 Profiling 数据说话(性能调优)。

text
性能慢在哪?
├── 算子(计算)慢 → 融合算子 / Ascend C 自研 / 换更优算子
├── 通信占比高    → 调并行策略 / 减小通信 / HCCL
├── 数据加载慢    → 异步预处理 / 更多 worker
├── 显存/内存不足 → 减 bs / 重计算 / 切分
└── 调度/io 瓶颈  → 优化工程细节

训练调优速查

现象对策
单个算子慢用 MindSpeed 优化层级 / Ascend C 自研(见 算子开发
通信占比高(多卡)调整张量/流水/数据并行(MindSpeed
OOM减少 bs、重计算、优化器状态切分、Swap 机制
整体吞吐低并行策略、数据流水优化

推理调优速查

现象对策
吞吐低连续批处理、增大并发/bs、KV Cache 调优
延迟高(decode)小 bs、低延迟模式(如 SGLang)、显存/KV 策略
OOM降低 max-batch/seq、KV 策略

参考引擎页:MindIEvLLMSGLang

二、精度问题定位框架

精度不对,先定位层级:

  1. 数据 / 预处理差异 → 检查数据加载、归一化、tokenizer。
  2. 混合精度丢失 → 先用 fp32 对比(精度调试)。
  3. 算子实现差异 → 单算子对比昇腾 vs 标杆结果。
  4. 训练收敛异常 → 随机种子、学习率、分布式一致性。

官方工具:精度调试工具(对比昇腾算子与标杆算子结果),见 精度调试

三、注意版本配套对性能/精度的影响

  • 版本不配套可能导致性能回退甚至算子表现异常
  • 做性能/精度对比时,务必统一版本、统一硬件、固定随机种子,才能有效对比。

TIP

性能问题交给 Profiling,精度问题交给精度调试工具,别靠猜。 对比性能时用 AISBench 等基准工具,见 资源导航

相关

AscendMate · AscendLA · GitHub 统计(近14天):仓库访问 次 · 独立访客 人 · 克隆