AISBench 精度评测 · PD 分离组网

Prefill-Decode 分离 · 华为 Atlas 800I A3 · Mooncake + AscendStore

整体介绍

背景:大语言模型推理分为 Prefill(预填充,处理输入 prompt 生成 KV Cache)和 Decode(解码,自回归生成 token)两个阶段。本组网采用 PD 分离 架构,将两阶段部署在不同节点组,独立扩展,提升整体吞吐与资源利用率。

数据流总览:AISBench 客户端 → Proxy(负载均衡)→ Prefill 节点组(生成 KV)→ Mooncake(实时 KV 传输)→ Decode 节点组(消费 KV 生成 token)→ Proxy → 客户端。AscendStore 异步备份 KV 用于恢复和复用。

各节点的并行策略(TP/DP)将在对应节点介绍中详细解释。

整体组网拓扑

graph TB subgraph Client["客户端 / AISBench 评测"] AIS["AISBench
aime2025 精度评测"] end subgraph Proxy["代理层"] LB["Proxy Server
负载均衡"] end subgraph PrefillGroup["Prefill 节点组"] P0["Node 0
Atlas 800I A3
16×NPU
TP=16, DP=2"] P1["Node 1
Atlas 800I A3
16×NPU
TP=16, DP=1"] end subgraph DecodeGroup["Decode 节点组"] D2["Node 2
Atlas 800I A3
16×NPU
TP=4, DP=4"] D3["Node 3
Atlas 800I A3
16×NPU
TP=4, DP=4"] end subgraph KVStore["KV Cache 传输层"] MC["Mooncake KV Pool
实时传输中间件
端口 30000/30200"] MS["AscendStore
持久化存储层
Memcache 协议"] end AIS -->|"HTTP 请求"| LB LB -->|"Prefill 请求"| P0 LB -->|"Prefill 请求"| P1 P0 -->|"KV Producer
端口 30000"| MC P1 -->|"KV Producer
端口 30000"| MC MC -->|"KV Consumer
端口 30200"| D2 MC -->|"KV Consumer
端口 30200"| D3 MC -.->|"异步持久化备份"| MS D2 -->|"Decode 响应"| LB D3 -->|"Decode 响应"| LB LB -->|"HTTP 响应"| AIS classDef prefillGroup fill:#ddf4ff,stroke:#0550ae,color:#0550ae classDef decodeGroup fill:#dafbe1,stroke:#116329,color:#116329 classDef kvStore fill:#fff8c5,stroke:#7a5e00,color:#7a5e00 classDef client fill:#f6f8fa,stroke:#656d76,color:#656d76 class PrefillGroup prefillGroup class DecodeGroup decodeGroup class KVStore kvStore class Client client
客户端 Prefill 节点组 Decode 节点组 KV 传输层 (Mooncake) 持久化存储 (AscendStore) HTTP KV 实时传输 持久化备份

节点核心参数一览

节点角色硬件/平台并行策略关键端口数据流方向
AISBench客户端评测通用 x86/ARM—HTTP请求 → Proxy;响应 ← Proxy
Proxy Server负载均衡/路由通用服务器—HTTP 监听分发 Prefill,汇总 Decode
Node 0 (Prefill)Prefill 计算Atlas 800I A3, 16×NPUTP=16, DP=230000 (Producer)KV → Mooncake
Node 1 (Prefill)Prefill 计算Atlas 800I A3, 16×NPUTP=16, DP=130000 (Producer)KV → Mooncake
Node 2 (Decode)Decode 生成Atlas 800I A3, 16×NPUTP=4, DP=430200 (Consumer)KV ← Mooncake;响应 → Proxy
Node 3 (Decode)Decode 生成Atlas 800I A3, 16×NPUTP=4, DP=430200 (Consumer)KV ← Mooncake;响应 → Proxy
Mooncake KV Pool实时 KV 传输中间件高速网络 + 内存池—30000/30200Producer 入,Consumer 出
AscendStoreKV 持久化存储分布式存储集群 (Memcache)—Memcache 标准端口远端备份/恢复
并行策略说明: TP = 张量并行(切分模型权重,降低单请求延迟), DP = 数据并行(多请求并行,提升吞吐)。 不同节点采用不同组合,详见下方各节点介绍。

各节点详细说明

AISBench 评测客户端 aime2025

角色:评测发起方 · 协议:HTTP/REST · 数据集:aime2025

功能:AISBench 是面向 AI 推理的基准测试工具,本次用于 aime2025 精度评测。客户端加载评测数据集,构造 HTTP 请求(包含 prompt 和推理参数),发送至 Proxy Server,并接收 Decode 节点返回的生成结果,与标准答案对比计算精度指标(准确率、BLEU 等)。

硬件平台:通用 x86_64 / ARM 网络要求:与 Proxy 低延迟连通 并发数:可配置(多路并发) 输出:评测报告(精度、吞吐、延迟)
HTTP 请求 → Proxy HTTP 响应 ← Proxy

Proxy Server (负载均衡) 网关/调度

协议:HTTP/1.1, HTTP/2 · 高可用:主备/集群

职责:作为系统入口,接收 AISBench 的所有 HTTP 请求。根据策略将 Prefill 请求分发至 Node 0/1,并将 Decode 节点的响应汇集后返回客户端。同时负责健康检查、故障转移、流量限流等治理功能。

负载均衡算法:轮询 / 最少连接 / 一致性哈希 会话保持:基于请求 ID 或 Client IP 监控:集成 Prometheus 指标
分发 Prefill → Node 0/1 接收 Decode 响应 ← Node 2/3 客户端 ↔ 后端

Node 0 · Prefill TP=16, DP=2

角色:Prefill 计算节点 · 型号:Atlas 800I A3 · NPU:16× (鲲鹏 920)

并行策略详解:采用 TP=16(张量并行),将模型权重切分到全部 16 颗 NPU,最大化单请求计算速度,因为 Prefill 阶段需要处理大量输入 token,计算密集,高 TP 可显著降低延迟。同时设置 DP=2(数据并行),允许 2 个 Prefill 请求同时在两组 NPU 上运行(每组 16 卡),提升整体 Prefill 吞吐。

功能:Prefill 完成后将生成的 KV Cache 通过 端口 30000 以 Producer 身份推送至 Mooncake KV Pool。

NPU 型号:Ascend 910B 显存:32GB HBM2e × 16 网络:100G RoCE v2 KV 传输:RDMA + TCP (Mooncake)
接收 Prefill 请求 ← Proxy 发送 KV (Producer) → Mooncake:30000

Node 1 · Prefill TP=16, DP=1

角色:Prefill 计算节点 · 型号:Atlas 800I A3 · NPU:16× (鲲鹏 920)

并行策略详解:与 Node 0 硬件相同,但 DP=1,即每次只处理 1 个 Prefill 请求,但整个 16 卡都用于该请求(TP=16),因此单请求计算资源更充沛,适合超长上下文或对延迟极端敏感的场景。

功能:同样作为 KV Producer,将 KV Cache 通过端口 30000 推送到 Mooncake。

NPU 型号:Ascend 910B 显存:32GB × 16 网络:100G RoCE KV 传输:Mooncake Producer (30000)
接收 Prefill 请求 ← Proxy 发送 KV (Producer) → Mooncake:30000

Node 2 · Decode TP=4, DP=4

角色:Decode 生成节点 · 型号:Atlas 800I A3 · NPU:16× (鲲鹏 920)

并行策略详解:Decode 阶段是自回归生成,每次只产生一个 token,计算量相对小,但需要支持大量并发请求。因此采用 TP=4(4 卡张量并行)将 16 卡划分为 4 组,每组内部用 4 卡进行模型并行,通信开销较小;同时 DP=4 使得 4 组可以同时服务 4 个不同的 Decode 请求,极大提升系统吞吐。

功能:作为 KV Consumer 从 Mooncake 的 端口 30200 拉取对应请求的 KV Cache,执行解码,生成 token 序列以 HTTP 响应返回给 Proxy。

NPU 分组:4 组 × 4 NPU KV 消费端口:30200 (Consumer) 输出:token 序列
获取 KV (Consumer) ← Mooncake:30200 返回 Decode 响应 → Proxy

Node 3 · Decode TP=4, DP=4

角色:Decode 生成节点 · 型号:Atlas 800I A3 · NPU:16× (鲲鹏 920)

并行策略详解:与 Node 2 配置完全一致(TP=4, DP=4),组成 Decode 节点组,进一步扩展并发能力。Mooncake 根据请求 ID 将 KV 分发到空闲的 Consumer 实例(Node 2 或 Node 3 中的某一组)。

功能:同样作为 KV Consumer,消费 KV 并生成 token,返回响应。

NPU 分组:4 组 × 4 NPU KV 消费端口:30200 (Consumer) 输出:token 序列
获取 KV (Consumer) ← Mooncake:30200 返回 Decode 响应 → Proxy

Mooncake KV Pool 实时传输中间件

角色:KV Cache 实时传输层 · 协议:RDMA / TCP · 端口:30000 (Producer) / 30200 (Consumer)

功能详解:Mooncake 是专为 LLM 推理设计的 KV Cache 实时传输中间件,核心作用是连接 Prefill 和 Decode 节点,提供高吞吐、微秒级延迟的内存级 KV 交换。Prefill 节点作为 Producer 将生成的 KV 推入 Mooncake 的内存池,Decode 节点作为 Consumer 按需拉取。Mooncake 内部管理 KV 的生命周期(引用计数、自动过期回收),并支持多 Producer / Consumer 的并发读写,是整个 PD 分离架构的 数据中枢。

传输方式:RDMA (优先) / TCP 回退 Producer 端口:30000 Consumer 端口:30200 存储介质:高速内存池 (DRAM / HBM) KV 索引:按请求 ID 分片,支持多租户 生命周期管理:引用计数 + TTL 自动回收
接收 KV (Producer) ← Node 0/1 (30000) 提供 KV (Consumer) → Node 2/3 (30200) 异步持久化 → AscendStore

AscendStore 持久化存储层

角色:KV Cache 持久化存储 · 协议:Memcache 兼容 · 部署:分布式集群

功能详解:AscendStore 是面向 KV Cache 的 持久化存储系统,基于 Memcache 协议提供分布式、高可用的 KV 存储服务。它与 Mooncake 协同工作:Mooncake 将 KV 实时同步给 AscendStore 进行 异步持久化备份。主要解决两个核心问题:
① 数据可靠性:当 Prefill 节点或 Mooncake 自身重启时,KV 可从 AscendStore 恢复,避免重新计算;
② 跨作业复用:同一份 KV 可被不同 Decode 作业重复使用(如相同的 prompt 前缀),节省算力。AscendStore 支持水平扩展,通过一致性哈希分布数据,并具备多副本容灾能力。

协议:Memcache (二进制/文本) 存储引擎:分布式 LSM Tree / 内存 + SSD 分层 副本策略:多副本 (默认 3 副本) 数据分片:一致性哈希 + 虚拟节点 一致性级别:最终一致性(异步复制) 恢复方式:按请求 ID 拉取 KV 重新加载
接收持久化数据 ← Mooncake (异步) 提供恢复数据 → Mooncake (按需) 跨作业 KV 复用
华为 Atlas 800I A3 · 16×NPU · PD 分离架构 TP: 张量并行 · DP: 数据并行 · Mooncake (实时) + AscendStore (持久化)
华杉的技术博客 · 苏ICP备2026063680号-1
首页