Deep Inference 有什么用、怎么用:一张表看懂
DeepSeek 开源的那层"让模型在卡上跑满"的基础设施
前作《DeepSeek 把算子开源到了昇腾上,这件事意味着什么》讲的是"这件事意味着什么"。这一篇只讲三件实操的事:它有什么用、怎么用、配置要什么条件。
一句话说清它是什么
不装这套东西,模型在卡上也能跑,但跑不满。
装上以后,同一个硬件,吞吐可以差出几倍。
它由六件东西组成,每件管一件事:
| 组件 | 管什么 | 相当于 |
|---|---|---|
| DeepGEMM | 矩阵乘(大模型最耗算力的动作) | 发动机 |
| FlashMLA | 稀疏注意力(长文本的读写) | 变速箱 |
| DeepSelect | TopK 筛选与采样 | 滤芯 |
| DeepEP | 多卡之间搬数据(MoE 最关键) | 传动轴 |
| TileKernels | 常用小算子集合(MoE 路由、量化、位置编码) | 标准件 |
| TileLang | 写算子的高级语言(Pythonic) | 修车工具,不是零件 |
昇腾版 2026-09-30 开源,与英伟达版一一对应。
一、它有什么用:五条,每条都有官方实测
1. 让算力不空转 → 利用率 98.3%–99.8%
DeepGEMM 在昇腾 950 超节点上跑 Dense GEMM,算力利用率 98.3%–99.8%。
含义:芯片几乎没空转。这就是"同样的卡,为什么别人吞吐高几倍"的第一层答案。
2. 让长文本不掉速 → Prefill 93%、Decode 85%
FlashMLA 在序列长度 4096、topk=640 的场景下,Prefill 发挥 93% 硬件性能,Decode 发挥 85%。
含义:长文本有两个完全不同的阶段——Prefill 吃算力、Decode 吃带宽延迟。两阶段都在 85% 以上,说明不是只有一头发力。
3. 让筛选不成瓶颈 → 比 torch.topk 快 10 倍以上
DeepSelect 相比原生 torch.topk,平均加速 10 倍以上。
含义:采样和稀疏注意力都要从几万个候选里挑前 K 个。这个动作过去被认为不重要,长上下文下它就是瓶颈。
4. 让多卡协同不断链 → EP64 下 400 GB/s
DeepEP 在 Atlas 950 SuperPoD 上的实测:
| EP 规模 | Dispatch | Combine |
|---|---|---|
| 64 卡 | 395–408 GB/s | 364–376 GB/s |
| 128 卡 | 319–325 GB/s | 301–305 GB/s |
| 256 卡 | 184–189 GB/s | 176–179 GB/s |
怎么看这张表(重要):MoE 模型每张卡只负责一部分专家,算完必须把结果发给别的卡。卡越多,单卡带宽一定越低,这是物理规律,不是性能退化。 真正的考验是:掉下去之后整体还快不快——这就是超节点互联存在的理由。
5. 让写法变简单 → 不用手写底层算子
TileLang 用 Python 风格的写法产出高性能算子,TileKernels 把 MoE 路由、量化、位置编码这些常用操作打包好了。
含义:过去改一个算子要写 CUDA 或 Ascend C,现在能改高级语言。这是"能不能自己调"的分水岭。
合起来看:端到端是什么水平
EP32 部署、offline 模式、纯模型跑 DeepSeek-V4.1-Flash :
| 时延档 | 每卡输出吞吐 |
|---|---|
| TPOT = 5ms | 2,469 tokens/s |
| TPOT = 10ms | 5,102 tokens/s |
⚠️ 这是纯模型、offline、不接框架的成绩(128K 上下文,DSpark 投机接受率 0.85)。真上线要经过推理框架调度,实际会低一些,官方自己也标了这句。
二、怎么用:三种用法,按你的场景选
用法一:单卡跑通(验证环境,不追性能)
谁用:手上只有一张卡、算法同学自测、教学演示。
用哪些:DeepGEMM + TileLang 最小集。
目的:确认环境链是通的——驱动、固件、CANN、算子包、权重、精度对齐。
官方入口:cann-recipes-infer → docs/models/deepseek_v4_1/dsv41-flash-950-single-card.md
这一步别嫌慢。带昇腾的活,90% 的时间耗在这一段,不在调优。
用法二:单机 8 卡 + 低时延(做在线服务)
谁用:一台 8 卡机,做在线客服、实时对话这类要"即时反应"的场景。
用哪些:FlashMLA(注意力)+ DeepGEMM(矩阵乘)+ DeepEP(卡间通信),做张量并行 TP。
盯什么指标:不是吞吐,是 TPOT(每个 token 等多久)。5ms 是对话体验档。
官方入口:deepseek_v4.1_low_latency_tp_guide.md
这是绝大多数企业真正会用的那条路。
用法三:超节点大 EP(追极限吞吐)
谁用:超过单机规模、跑 MoE 大模型、要批量高吞吐。
用哪些:全套 + 超节点组网。
官方入口:deepseek_v4.1_flash_cann_tech_report.md;要对外提供服务则再上 MindIE Motor(昇腾官方课程《基于 Motor 部署大 EP 推理服务》,含 DeepSeek-V4-Pro 在 A3 真机部署实践)。
顺序不能倒:单卡 → 单机 → 超节点。这既是验证顺序,也是排障顺序。
三、配置要什么条件
昇腾侧
| 项 | 要求 |
|---|---|
| 硬件 | 昇腾 950 系列;超节点用 Atlas 950 SuperPoD / Flex(液冷)、Atlas 850 / 850E(风冷) |
| 软件底座 | CANN(提供 Ascend C API) |
| 通信底座 | 灵衢互联 + SHMEM;自定义通信可用 ASC-COMM |
| 组网 | UBL128:128 卡 3.2Tbps 单层 Scale-up、256K 卡两层 Scale-out |
| 部署配方 | CANN 社区 recipes(单卡 / 单机低时延 / 超节点大 EP) |
| 服务化 | MindIE Motor |
| 另有开源 | 大模型训练、超长文本 KV cache 池化、Agentic RL |
英伟达侧(DeepEP 仓库 README 原文要求)
| 项 | 要求 |
|---|---|
| 系统 | Linux |
| Python | ≥ 3.10 |
| GPU | Hopper 或更新架构 |
| 编译 | CUDA Toolkit ≥ 13.1(供 DeepJIT 编译);支持 std::format 的 C++20 |
| 通信库 | NCCL ≥ 2.32.3 |
| 互联 | 机内 NVLink、机间 RDMA |
| 编译机制 | 安装构建 host 侧 C++ 扩展;GPU kernel 由 DeepJIT 运行时按当前设备即时编译 |
四、三个配置要点(踩过就知道)
- 先单卡,别一上来就冲超节点。 我见过太多项目卡在单卡精度都没对齐就开始配多机。
- 工具链版本先对齐再装。 英伟达侧最常见的卡点是 CUDA 13.1+、C++20、NCCL 2.32.3+ 这三个;不是卡不行,是工具链不对。
- 峰值不等于均值。 98.3% 是 Dense GEMM 特定场景的利用率,跑业务模型大概率碰不到。做容量规划按自己的实测数据,不要按公告峰值。
五、这张表存下来就够了
| 关心什么 | 看哪个组件 | 关键数字 |
|---|---|---|
| 算力有没有跑满 | DeepGEMM | 98.3%–99.8% |
| 长文本快不快 | FlashMLA | Prefill 93% / Decode 85% |
| 采样拖不拖后腿 | DeepSelect | 比 torch.topk 快 10 倍+ |
| 多卡扩不扩得动 | DeepEP | EP64 约 400 GB/s,EP256 约 185 GB/s |
| 能不能自己改算子 | TileLang + TileKernels | 高级语言,不必手写底层 |
| 端到端什么水平 | 全部合用 | TPOT 5ms → 2,469 tokens/s/卡 |
数据来源:昇腾社区官方公告(2026-09-30《DeepSeek 官方开源昇腾基础组件》、2026-10-08《昇腾 950 系列超节点依托 DeepSeek 开源基础组件》)、DeepEP 开源仓库 README、昇腾社区课程页。
没查到的:① 昇腾 recipes 文档正文与命令级安装步骤(gitcode 直链被拦,只拿到路径);② 英伟达侧与昇腾同口径的性能实测。所以本文不做两边谁快谁慢的对比——那需要同模型、同 EP 规模、同上下文长度自测。
下一篇单独写:命令级的配置与安装步骤(昇腾单卡→单机→超节点,英伟达环境准备),这一篇只到"要什么条件"为止。