返回关卡PARALLEL HORIZONSREAD // 07

关卡阅读材料 // 07

机架级推理

历史锚点2024+ · Blackwell 时代 / NVFP4 / NVL72阅读时间 · 约 60 分钟

把四位量化、Prefill / Decode 分工、KV Cache 路由与故障恢复组合成机架级推理系统,同时保留清晰的状态边界。

建议边读边写下答案;时长包含代码推演与练习。

进入互动关卡
本课节奏约 60 分钟
  1. 01导读与目标05 MIN
  2. 02心智模型08 MIN
  3. 03概念深挖15 MIN
  4. 04代码推演12 MIN
  5. 05历史生态08 MIN
  6. 06练习复盘12 MIN
加速计算能力映射独立学习补充 · 非 NVIDIA 官方课程或认证
PATH // 07
AI INFRASTRUCTURE BRIDGEINFERENCE WORKFLOWSNETWORKING AWARENESS
官方路径强调

Learning Path 从加速应用继续延伸到端到端工作流、网络与 AI 基础设施;性能分析必须覆盖计算、数据移动和系统编排。

本课的衔接

本课是超出 CUDA 基础的系统综合:NVFP4 处理数值与搬运,Prefill/Decode 处理服务阶段,KV 路由与迁移处理网络和故障状态。

建议前置
  • 课程 03、05、06
  • 理解 KV Cache
  • 基本请求路由与健康检查概念
实践工具
  • Dynamo 或 TensorRT-LLM(可选)
  • Nsight Systems
  • Prometheus / 请求日志
  • NIXL / RDMA 环境(高级)
01 · 05 MIN

导读与目标

先记住这一句

压缩必须带 Scale,放置必须理解阶段,恢复必须知道状态在哪里。

完成后你应该能够

  1. 01

    解释 NVFP4 的 E2M1、微块 E4M3 Scale 与 Tensor FP32 Scale。

  2. 02

    比较聚合与分离式 Prefill / Decode 的收益、成本和适用流量。

  3. 03

    设计 Cache-aware、Load-aware 与 Topology-aware 的路由判断。

  4. 04

    把 Worker、Token、KV Cache、端点和 Retry 拆成可恢复状态。

02 · 08 MIN

建立心智模型

  1. 01
    压缩

    NVFP4 用 E2M1 保存数值,每 16 个值共享 E4M3 Scale,并用 FP32 Tensor Scale覆盖全局范围。

  2. 02
    分工

    Prefill 处理 Prompt 并生成 KV Cache;Decode 依赖缓存持续生成 Token,两者的扩容压力不同。

  3. 03
    恢复

    Worker、已输出 Token、KV Cache、端点健康与 Retry 分属不同状态边界,故障策略必须逐一处理。

03 · 15 MIN

概念深挖

01

低位数需要更细粒度范围

只有全局 Scale 时,离群值会挤压其它数值;微块 Scale 让局部值更充分利用 E2M1 范围。

02

分离式推理增加 KV 路径

独立扩容 Prefill 与 Decode 的代价是显式传输或暴露 KV Cache,收益必须用真实流量验证。

03

请求状态不等于 KV Cache

迁移可保留已输出 Token 与重试信息,但缓存是否幸存取决于后端与故障类型,可能需要重建或重传。

小节 01

两级缩放把局部与全局范围分开

E2M1 只有极少的可表示值,直接 Cast 会让饱和与舍入非常严重。NVFP4 为每 16 个连续值使用一个 E4M3 微块 Scale,让局部离群值只影响自己的小块;再用每张量 FP32 Scale 覆盖 E4M3 Scale 本身无法表达的全局范围。

更细粒度 Scale 会增加元数据、量化逻辑和布局约束。模型是否保持质量仍取决于权重与激活分布、校准或训练方法以及算子支持。四位表示降低了存储与搬运,但不能被描述成无需验证的等价替换。

停下来想一想为什么每 16 个值的 Scale 之外还要 Tensor FP32 Scale?

参考答案E4M3 微块 Scale 本身的动态范围有限;第二级 FP32 Scale 负责覆盖整个张量的全局范围并避免 Scale 溢出。

小节 02

Prefill 与 Decode 是两种资源曲线

Prefill 一次处理 Prompt Token,通常包含较大的矩阵计算并生成 KV Cache;Decode 每步生成少量 Token,却要反复读取已积累的 KV Cache,更受并发、输出长度与缓存容量影响。把两者放在同一 Worker 最简单,但长 Prompt 可能阻塞持续 Decode。

分离式服务让两个 Pool 独立配置 TP 与副本数量,却把 KV 传输加入关键路径。只有当阶段干扰、扩容独立性或缓存复用收益超过传输与编排成本时,它才值得。需要用真实 Prompt/Output 分布比较聚合与分离方案。

停下来想一想短 Prompt、短输出且单机低负载时,分离式服务一定更快吗?

参考答案不一定。KV 传输与路由增加固定开销,简单聚合 Worker 可能更合适。

小节 03

恢复必须先画状态地图

一次流式请求至少包含原始 Prompt、采样参数、已输出 Token、随机状态、KV Cache 位置、当前 Worker 与 Retry 计数。Worker 失效时,有些状态在前端,有些在缓存服务,有些只在失效进程显存中。恢复策略必须说明每一项从哪里取回。

请求迁移可以把已输出 Token 与请求元数据交给健康 Worker,避免客户端无限等待;KV Cache 可能被远端保存、重新传输,或从 Prompt 与 Token 重建。健康检查需要先从服务发现中移除故障端点,并用 Retry Limit 防止故障风暴。

停下来想一想只保存已输出 Token,能否无成本恢复 Decode?

参考答案不能保证。新 Worker 仍需要对应 KV Cache;若缓存未保存或不可访问,就需要重传或重新 Prefill。

04 · 12 MIN

把概念放回代码

PROGRAM MODEL先路由 Prefill,再携带 KV 元数据进入 Decode
01prefill = router.pick_prefill(prompt, cache_overlap)02kv_meta = prefill.run(prompt)03decode = router.pick_decode(load, topology)04stream = decode.resume(kv_meta, emitted_tokens)05if decode.unhealthy():06  migrate(request_state, healthy_worker, retry_limit)

代码逐段推演

  1. 01
    PREFILL按缓存重叠与负载选择生产者

    已有前缀缓存的 Worker 可减少重复 Prefill,但选择还要考虑排队与拓扑。

  2. 02
    KV META传递位置与格式,而非假装缓存消失

    元数据应描述缓存块、传输端点、模型版本、dtype 与布局,让 Decode 能正确接收。

  3. 03
    DECODE在负载与拓扑间选消费者

    低负载 Worker 若跨越更昂贵链路也未必最优;路由需要综合分数与健康状态。

  4. 04
    MIGRATE迁移请求状态并限制重试

    先移除故障端点,再保留已发 Token、恢复或重建 KV,并确保客户端不会收到重复片段。

REF · 07

知识图谱

补充参考 · 不要求一次读完,也不计入核心 60 分钟

核心术语

NVFP4
面向 Blackwell Tensor Core 路径的 4 位浮点 Recipe,使用更细粒度的局部 Scale 与更高层级 Scale 管理动态范围。
Prefill
并行处理 Prompt、生成首个输出所需状态和 KV Cache 的阶段,通常更偏计算密集。
Decode
复用 KV Cache 逐步生成新 Token 的阶段,常受显存容量、带宽和并发影响。
KV Cache
保存各层历史 Key/Value 的状态,使 Decode 不必为每个新 Token 重算整个上下文。
TTFT / ITL
首 Token 延迟与 Token 间延迟,分别观察请求启动体验和持续生成节奏。
EXAMPLE

带数字推演

  1. 01
    代入公式

    2 × 32 × 8 × 128 × 4096 × 2 = 536,870,912 字节。

  2. 02
    换算容量

    单请求约 512 MiB;8 个同规格并发请求仅原始 KV 就约 4 GiB。

  3. 03
    估传输下界

    若有效链路为 100 GB/s,512 MiB 的理想传输下界约 5 ms,实际还会更高。

算完得到

上下文与并发会快速放大 KV 容量和搬运成本,且计算还未包含碎片与元数据。

为什么重要

决定拆分 Prefill/Decode 前,应先算状态,再用请求级 Trace 与聚合基线确认传输是否划算。

诊断手册

01现象

TTFT 高但 Prefill GPU 不忙

先检查
队列、路由、Cache Miss、KV 传输路径与网络回退
需要的证据
带 Request ID 的 Queue→Prefill→Transfer→Decode Trace
02现象

ITL 随并发快速恶化

先检查
Decode Batch、KV 容量/带宽、调度公平性与输出长度
需要的证据
按并发和输出长度分组的 ITL 分布、KV 占用与 Batch 时间
03现象

分离式吞吐低于聚合基线

先检查
KV 字节量、传输带宽、跨拓扑域路径和两类 Worker 配比
需要的证据
相同流量下的聚合/分离对照,以及实际传输协议与带宽

从硬件到生态

  1. 01单 Worker 聚合推理

    Prefill、KV 状态与 Decode 位于同一执行单元。

    路径简单,但两类阶段不能独立扩缩容。
  2. 02Paged KV + Cache-aware Routing

    KV 被按块管理,路由同时考虑缓存局部性与活跃负载。

    调度成为避免重复 Prefill 和内存浪费的关键。
  3. 03分离式机架级推理

    Prefill/Decode 独立部署,并通过 NIXL 等路径搬运 KV。

    计算、显存、网络、服务发现与故障恢复共同决定体验。
05 · 08 MIN

硬件与生态坐标

2024–现在 · Blackwell 与机架级系统

Blackwell 引入 FP4 加速路径与更细粒度缩放;NVL72 把多个计算托盘组织进机架级 NVLink 域。Dynamo、TensorRT-LLM 等软件负责路由、缓存传输、并行配置与恢复,把“GPU 编程”扩展成系统编程。

06 · 12 MIN

练习与复盘

Decode Worker 在输出三个 Token 后失效,安全恢复至少需要区分哪两类状态?

  1. A. 已输出 Token 与 KV Cache
  2. B. CSS 与字体
  3. C. Block 数与 CPU 核心数
查看答案
A

Token 可用于避免重复输出,而 KV Cache 可能需要重新传输或重建;两者不能被当成同一个恢复对象。

02缩放题

一个张量含少量大离群值。只用一个全局 Scale 与微块 Scale 相比,哪个更容易压缩普通小值?

提示

谁决定整个范围?

参考答案

全局 Scale 更容易被离群值主导,使普通小值只使用很少量化级别;微块 Scale 把影响限制在局部 16 值块。

03架构题

Prefill Pool 空闲、Decode Pool 饱和时,继续增加 Prefill Worker 有用吗?

提示

识别当前瓶颈阶段。

参考答案

通常无助于端到端吞吐,甚至增加资源浪费。应扩容或优化 Decode,调整路由、Batch、并行度或 KV 容量。

04路由题

Worker A 有 80% Prompt 前缀缓存但负载高,Worker B 无缓存但空闲。路由应固定选 A 吗?

提示

这是一个多目标决策。

参考答案

不应固定。要比较缓存命中节省的计算与 A 的排队时间,并考虑 KV 位置与链路;用估计完成时间而不是单一指标。

05故障题

Decode Worker 输出三个 Token 后失效。写出至少五个恢复步骤。

提示

端点、请求、Token、KV、Retry。

参考答案

标记并移除故障端点;冻结请求与已发 Token 游标;选择健康 Worker;定位、传输或重建 KV;携带采样与 Retry 状态恢复;去重输出;超过上限时明确失败。

LAB · 50–90 分钟

可选实践实验

不计入核心 60 分钟 · 需要相应 CUDA / GPU 环境

实验目标

建立可观测的 Prefill→KV→Decode 请求轨迹

比较聚合与分离式推理,把每次请求的排队、Prefill、KV 传输、Decode 与恢复状态记录成一条可解释轨迹。

建议步骤

  1. 01

    先运行聚合 Worker 基线,记录 Prompt/Output 长度、TTFT、ITL、总延迟和 KV 占用。

  2. 02

    若环境支持,拆分 Prefill / Decode Pool,并为请求记录所选 Worker、缓存命中、KV 字节与传输时间。

  3. 03

    注入一个 Decode Worker 故障,记录服务发现移除、已发 Token 游标、KV 处理和 Retry 次数。

  4. 04

    按短/长 Prompt 与短/长输出分组比较;不要用单一平均值判断分离式方案。

完成证据

提交一条完整请求 Trace、聚合/分离对比表和故障恢复状态图。无法运行 GPU Serving 时,可用确定性模拟器完成状态与指标设计。

进阶挑战

设计一个同时考虑 Cache Overlap、Queue Delay 与 KV Transfer Cost 的路由分数,并用三组请求反例测试。

REF

继续研究