How unified memory works on GB10
DGX Spark uses NVIDIA’s GB10 chip, which combines a Grace ARM CPU and a Blackwell GPU on one package. They share 128GB of LPDDR5X memory over a 273 GB/s interconnect. 该系统不存在独立的显存。当 vLLM 分配“GPU 内存”时,实际上是从 128GB 内存池中划分出相应区域,而该内存池同样供 DGX 操作系统、CUDA 运行环境及其他应用程序使用。这意味着:gpu_memory_utilization所控制的仅是整个内存池中的一部分,并非专属于 GPU 的独立内存配额。- 系统各进程均会争夺同一批内存资源。DGX 操作系统、后台服务以及 CUDA 运行开销都会占用模型可使用的内存空间。
- 系统缺乏内存不足时的自动终止机制。一旦内存池被耗尽,DGX Spark 只会陷入无响应状态,而不会自动终止占用内存过多的进程。
在 128GB 内存容量下键值缓存的开销
KV 缓存用于存储所有活跃序列中每个令牌对应的键值张量。其大小会随着 3 个因素的变化而增长:上下文长度、同时运行的序列数量以及模型的架构(层数与键值头的数量)。计算公式
针对给定上下文长度下的单个序列而言:示例:在不同上下文长度下 70B 密集型模型的运行表现
假设某款典型的 70B 模型具备 80 个层结构、8 个键值头且每个头的维度为 128:示例:35B 混合专家模型
就总层数而言,混合专家模型的 KV 缓存计算逻辑与密集型模型完全一致。假设某 35B 混合专家模型拥有约 64 个层且 KV 头配置相同:
At 35B MoE with NVFP4 weights (~18 GB), you can fit 128K context with FP8 KV cache and still have ~65 GB of headroom.
上下文长度与批量大小之间的权衡
每个活跃序列中的每一个令牌都会占用 KV 缓存内存。整体 KV 缓存容量上限为:
For a 70B dense model at NVFP4 (~35 GB weights, ~75 GB remaining for KV cache):
实际基准测试结果与 NVIDIA 宣传数据的对比
NVIDIA 公布的 DGX Spark 82,739 令牌/秒这一数值指的是整体微调吞吐量,而非单个用户的推理速度。实际的交互式服务数值如下:此处所显示的 82,739 令牌/秒数值为多个并行微调任务的总吞吐量。单用户交互式推理属于另一种负载类型,其实际速率约为 15 至 120 令牌/秒,具体数值取决于模型规模与引擎类型;即便如此该速率也足以满足实时聊天与编程辅助需求。
内存保护机制:防止系统出现死机现象
在 DGX Spark 系统中,最为关键的调优参数便是--gpu-memory-utilization。若设置数值过高,系统便可能毫无预警地陷入死机状态且无法恢复;若设置数值偏低,则会浪费部分 KV 缓存资源。
推荐的初始数值
实时监测内存使用情况
打开第二个终端窗口,在服务运行期间观察内存占用情况:memory.free 数值低于 2 至 3 GB,系统便有发生死机的风险。此时需降低 max_model_len、max_num_seqs 或 gpu_memory_utilization 的数值。
参数调优参考指南
以下为在 DGX Spark 平台上最为关键的 vLLM 参数,按影响程度排序:决策对照表:常见配置方案汇总
参数调优方案
如何最大限度提升单用户的吞吐量
Maximize concurrent users for 70B
适用于大型模型的最安全配置方案
后续操作指引
DGX Spark 平台上的 vLLM 部署方法
各类模型尺寸的安装与启动指令。
模型兼容性
哪些模型能够适配 128 GB的内存容量,以及它们对应的量化方案。
单个 Spark 与两个 Spark 的对比
当单纯调整内存配置无法满足需求时,为何需要启用第二个 Spark。
KV 缓存的基本概念
针对不同模型架构的 KV 缓存运作机制详解。