跳转到主要内容
DGX Spark 所配备的 128GB 统一内存池既是其最大优势,也是调优过程中的主要难点。与那些显存独立于系统内存的独立 GPU 不同,Grace CPU 与 Blackwell GPU 共享同一内存池。一旦内存耗尽,系统便会失去响应,而不会返回清晰的内存不足错误提示。本页面将详细说明内存的具体用途、KV 缓存的合理大小设定,以及针对具体工作负载应调整的 vLLM 参数。

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 个因素的变化而增长:上下文长度、同时运行的序列数量以及模型的架构(层数与键值头的数量)。

计算公式

针对给定上下文长度下的单个序列而言:
数值 2 这一系数同时涵盖了键与值两个维度。

示例:在不同上下文长度下 70B 密集型模型的运行表现

假设某款典型的 70B 模型具备 80 个层结构、8 个键值头且每个头的维度为 128:
采用 FP8 类型的 KV 缓存可将内存占用降低一半。 只需在启动 vLLM 的命令中加入 --kv-cache-dtype fp8 参数即可。在大多数基准测试中,该设置对模型质量的影响不足 2%,却能显著提升可同时处理的序列数量或支持的上下文长度。

示例: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 缓存容量上限为:
在 DGX Spark 平台上,这种权衡关系具体表现为: 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 缓存资源。

推荐的初始数值

在DGX Spark设备上切勿将gpu_memory_utilization数值设定得高于0.90。 与独立显卡不同,统一内存一旦耗尽会导致整个系统失去响应,此时只能通过强制断电重启才能恢复。建议从保守数值起步,待确认实际负载下的系统稳定性后再作调整。

实时监测内存使用情况

打开第二个终端窗口,在服务运行期间观察内存占用情况:
若 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 缓存运作机制详解。