HiDeepSeekDev
空闲特惠
教程指南DeepSeek华为昇腾DeepGEMMDeepEP部署评估

如何评估 DeepSeek 昇腾算子库:环境、正确性与 MoE 通信验收清单

面向已有昇腾 950 环境的开发团队,介绍如何核对 DeepGEMM-Ascend 与 DeepEP-Ascend 的依赖、完成构建和小规模正确性测试,并按真实 MoE 负载评估性能。

快速结论

先核对 NPU 型号、CANN、驱动/固件、PyTorch/torch_npu 和编译器版本,再按各自仓库安装;先跑官方测试确认正确性,最后用实际模型形状测端到端指标。README 的带宽和算力结果来自指定 Ascend 950DT 测试配置,DeepEP 的测试还使用未公开的 PoC HDK,不能直接当作通用部署数据。

  • DeepGEMM-Ascend README 列出 Ascend 950、CANN 9.20、torch_npu、Python 3.10 及支持 C++20 `<format>` 的构建环境。
  • DeepEP-Ascend README 的验证栈为 Ascend 950DT、CANN 9.2.0、Python 3.12、PyTorch 2.13.0+cpu 和 torch_npu 2.13.0rc1。
  • DeepEP-Ascend 的性能数据使用项目方获得的 PoC HDK 与额外手工配置;README 称该配置当时不是公开发行版本。
  • DeepEP 的 PP、Engram 和部分 Bucket 能力仍处于实验或开发状态;图捕获和混合通信等仍不支持。

本次更新:依据两个官方仓库的 README 整理昇腾 950 的环境前置条件、安装路径、测试边界与上线验收清单。

核验时间:2026 年 10 月 1 日。DeepSeek 开源了 DeepGEMM-Ascend 和 DeepEP-Ascend,分别覆盖昇腾矩阵算子和 MoE 专家并行通信。当前官方文档聚焦 Ascend 950 系列,特别是 950DT;这份流程适用于已有相应设备和 CANN 环境的开发团队,不是普通电脑上的本地安装教程。

一、先核对设备与软件版本

两套项目依赖不同,不能只看“昇腾兼容”就视为环境一致。DeepGEMM-Ascend README 列出 Ascend 950、CANN 9.20、PyTorch NPU 包、Python 3.10 以上及支持 C++20 <format> 的编译环境。DeepEP-Ascend README 给出的验证栈则是 Ascend 950DT、CANN 9.2.0、Python 3.12、PyTorch 2.13.0+cpu、torch_npu 2.13.0rc1,并要求相应的 HCCL/HCOMM 库及通信链路。安装前以目标仓库当前 README 和供应商实际可用驱动/固件为准。

  • 记录芯片的准确型号和每个节点的 NPU 数量。
  • 逐节点核对驱动、固件、CANN、Bisheng、PyTorch 和 torch_npu 版本。
  • 多卡 DeepEP 测试还需确认 UBMEM、URMA/HCCL/HCOMM 与机间网络拓扑。
  • 先在隔离环境安装,保留完整版本清单和回滚方式。

二、按官方 README 构建

先激活 CANN 环境并安装与该环境匹配的 PyTorch、torch_npu 和编译工具。两个仓库都包含设备相关扩展,建议克隆固定的 commit 或 release,避免复测时上游变化。

# DeepGEMM-Ascend:先递归获取子模块
git clone --recursive https://github.com/deepseek-ai/DeepGEMM-Ascend.git
cd DeepGEMM-Ascend
python -m pip install . --no-build-isolation

# DeepEP-Ascend:获取 DeepJIT 子模块并构建
cd ..
git clone https://github.com/deepseek-ai/DeepEP-Ascend.git
cd DeepEP-Ascend
git submodule update --init --recursive third-party/deep_jit
python -m pip install --no-build-isolation .

构建参数和子模块会随代码版本变化,执行前先阅读仓库的安装说明。DeepGEMM-Ascend 使用运行时 JIT,需确保 CANN 与 Bisheng 在运行环境仍可访问;DeepEP 安装时构建主机扩展,设备内核会在首次使用时编译。

三、先验正确性,再测性能

  1. 运行仓库 tests 中与你的 NPU 型号、dtype、矩阵形状和通信模式对应的用例。
  2. 将输出与参考实现比较,检查数值误差、异常退出、超时和重复运行稳定性。
  3. 先测单卡 GEMM,再测单机 MoE dispatch/combine,最后测试跨节点通信。
  4. 记录首次 JIT 编译耗时、预热轮数、测量样本数、缓存状态和错误样本。

MoE 通信结果会受专家数、Top-K、每个 rank 的 token 数、hidden size、EP 规模和机间拓扑影响。把官方示例参数原样跑通只说明该配置能运行;上线前应使用目标模型实际的路由分布和并发曲线复测。

四、怎样理解 README 的跑分

DeepGEMM-Ascend 报告的矩阵算子数据基于 Ascend 950DT 与 CANN 9.20 等指定环境。DeepEP-Ascend 的通信带宽数据使用 Ascend 950DT、CANN 9.2.0 和项目方获得的 PoC HDK 手动配置;README 明确说该配置不是公开发行版本,并指出商业 HDK 的公开时间只是供应商计划。因此,不应把该带宽表写成普通用户现在即可复现的公开硬件基线,也不应将单算子峰值等同于模型服务吞吐。

五、从实验转入部署前的验收

  • 正确性:覆盖关键 dtype、极端 token 分布、空专家、padding 和多轮压力场景。
  • 性能:同时记录端到端 tokens/s、P50/P95 延迟、通信占比、NPU 利用率和显存/HBM 占用。
  • 稳定性:进行长时间运行、节点异常、进程重启和 CANN/固件升级回归。
  • 功能范围:DeepEP README 标注 PP、Engram、部分 Bucket 集合通信仍属实验或开发中,混合通信和图捕获暂不支持;生产计划应避开未完成能力。
  • 复现性:保存 commit、镜像、环境变量、拓扑、原始日志和 benchmark 脚本。
运营评估建议:把“仓库安装成功”“算子测试通过”“目标模型可稳定服务”设为三个不同验收阶段。只有第三阶段的真实负载结果,才能支持容量规划或采购判断。

参考资料

本文依据以下资料整理,版本与接口信息请以来源页面的现行说明为准。

  1. 01DeepSeek 官方:DeepGEMM-Ascend README 与性能测试说明github.com
  2. 02DeepSeek 官方:DeepEP-Ascend 安装、支持状态与 HDK 测试说明github.com
阅读至此返回学习中心