NVIDIA Dynamo 源码阅读(一):数据中心级推理栈的整体架构

NVIDIA Dynamo 不是另一个 vLLM 或 TensorRT-LLM。它不负责重新实现 Attention、Continuous Batching 或模型执行,而是把多个推理引擎实例组织成一个可路由、可拆分、可扩缩的服务。 这一区分决定了阅读源码的入口:不要从 CUDA kernel 开始,而应先找到请求如何跨过 Frontend、Router、Prefill Worker 和 Decode Worker,以及服务发现、事件传播、KV 传输分别位于哪一层。 本文基于 Dynamo 提交 27f09d5,仓库版本为 1.5.0。 一、Dynamo 解决的不是单卡执行问题 单个推理引擎已经能完成一次生成:接收 token、执行 Prefill、循环 Decode、管理本机 KV Cache。规模扩大后,系统出现新的问题: 同一前缀可能被多个副本重复 Prefill。 Prefill 与 Decode 的算力和延迟特征不同,固定配比容易浪费 GPU。 Worker 上下线后,路由器必须快速获得最新拓扑。 KV Cache 不仅存在于显存,还可能分布在主存、SSD 或其他节点。 不同后端有不同请求格式与 KV 传输协议,但上层服务不应被绑定。 Dynamo 把这些问题放在推理引擎之上: 控制面 Discovery / Planner / Metrics | v Client -> Frontend -> Router -> Inference Worker | | | | +---- KV Events+ | +------ 流式响应 ----------> KV 数据面(按需) Prefill Worker ======> Decode Worker NIXL / backend connector 请求平面回答“请求发给谁”;KV 数据面回答“缓存如何移动”;控制面回答“哪些实例存在、负载怎样、是否扩缩容”。三者分开,是 Dynamo 架构最重要的设计。 ...

2026年8月26日 · 2 分钟 · Hellokitty