返回 文章 apply CMS 文章

NVIDIA NIM 全栈优化:Nemotron 3 Ultra 在 4xB200 上实现 2.5 倍并发用户提升

NIM 2.0.12 通过缓存复用、MTP 推测解码、自动调优内核等组合优化,在 4xB200 上把 Nemotron 3 Ultra 的并发服务能力提升 2.5 倍。

NVIDIA NIMNemotron 3 UltraLLM 推理优化智能体工作负载
成长分 / 100 77 综合收获、行动、留存与影响

NVIDIA NIM 全栈优化:Nemotron 3 Ultra 在 4xB200 上实现 2.5 倍并发用户提升
为什么值得读了解生产级 LLM 服务中吞吐量与交互性之间的帕累托权衡,以及智能体工作负载为何更敏感。

获取 NIM 2.0.12 优化服务栈的具体优化层清单,理解收益来自组合而非单一开关。

关键洞察
  1. 在 4xB200、64K/400/76% KV 复用/50 TPS/用户(20 ms ITL)的智能体工作负载下,NIM On 达到 1,997 tok/s,是 NIM Off 基线 718 tok/s 的 2.5 倍。
  2. 性能提升来自相互作用的配置组合:自动调优 MoE/Mamba 内核、张量并行与专家感知执行、前缀与 Mamba 状态缓存、调度器/批处理/内存调优、MTP 推测解码。
  3. NIM 将模型感知与 GPU 感知的服务选择打包为可部署微服务,提供经过验证的配置起点,同时保留针对自身流量基准测试的能力。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:8391

部署大语言模型只是迈向生产级服务的第一步。生产团队还需要在现有 GPU 基础设施上服务尽可能多的并发用户,同时保持让应用响应灵敏的交互性。

对于智能体(agentic)AI 工作负载,这种权衡更为重要:提示词可能很长,上下文会在多个步骤间复用,应用还常常需要向用户流式返回较长的响应。

NVIDIA NIM 将针对特定模型和 GPU 的服务选择打包成可部署的微服务。开发者无需从空白的运行时配置起步,而是直接获得经过验证的服务配置和受支持的部署路径,同时仍可用自己的流量对 NIM 进行基准测试。

NIM 的附加价值:性能工程与生产就绪

推理性能是一种系统属性。精度与内核、并行方式、调度、批处理、内存分配、前缀复用、模型专属的状态缓存以及解码策略,彼此相互影响。只有在满足应用延迟目标的前提下提升吞吐量,一套配置才有价值。

NIM 把这些优化工作变成一个经过测试的起点。NVIDIA 工程师针对受支持的模型、GPU 和精度组合验证配置,再把运行时和模型制品封装在标准 API 之后。对于生产部署,NIM Certified 还通过 NVIDIA AI Enterprise 提供定期的推理栈更新、CVE 处理、更广泛的硬件验证以及商业支持。

NIM 在同一条部署路径上带来两项收益:经过验证的性能工程,以及面向企业的容器生命周期和支持模式。

案例研究:Nemotron 3 Ultra NIM 将智能体工作负载的吞吐量最高提升 2.5 倍

本文通篇使用的基准测试定义如下:

  • 硬件:4xB200
  • 智能体工作负载:64K/400/76% KV 复用/50 TPS/用户(20 ms ITL)

这张 Pareto 图对比了开源基线服务栈(NIM Off)与完全优化的 NIM 2.0.12 服务栈(NIM On)。

折线图,展示 4xB200 系统上 Nemotron 3 Ultra NIM 的两条 Pareto 曲线。横轴为交互性,单位是每用户每秒词元数(0-450);纵轴为系统总输出词元吞吐量,单位 TPS(0-2,500)。NIM 关闭曲线(蓝色)在约 750 TPS 处趋于平缓,随后急剧下降。NIM 开启曲线(绿色)在 50 TPS/用户时达到约 2,000 TPS,并在整个交互性范围内保持更高的吞吐量。50 TPS/用户处的标注显示两条曲线之间有 2.5 倍的差距。
图 1. 4xB200 系统上 Nemotron 3 Ultra NIM 在关闭和开启 NIM 优化时的 Pareto 曲线。在 50 TPS/用户时,NIM 开启曲线的系统吞吐量是基线的 2.5 倍以上,在相同交互性下可直接转化为更多的并发用户

表 1. 在 50 TPS/用户目标下,四块 B200 GPU 的系统输出词元吞吐量

配置 原生 256K 最大上下文 含义
NIM Off 基线 718 tok/s 不含任何 NIM 优化
NIM On(2.0.12)优化服务栈 1,997 tok/s,为基线的 2.5 倍 优化后的 NIM 栈:缓存/状态复用、MTP 推测解码及相关修复、自动调优内核、部分前缀匹配,以及调度器、批处理、内存和并行方式的调优

NIM 2.0.12 优化服务栈的工作原理

实测收益来自相互作用的配置组合,而不是各自独立、百分比可以直接相加的开关。主要的优化层包括:

  • 精度与自动调优的模型感知内核。自动调优的混合专家(MoE)和 Mamba 内核,把这种混合架构高效地映射到 NVIDIA Blackwell GPU 上。
  • 并行执行。张量并行将模型分布到四块 GPU 上,而专家感知(expert-aware)执行则提高了混合专家层的利用率。
  • 前缀与模型状态复用。前缀缓存避免重复计算相同的上下文,部分前缀匹配则在仅有一部分前缀匹配时仍能找回复用,Mamba 状态缓存的设置也针对该模型架构做了调优。
  • 调度器、批处理与内存调优。并发序列数上限、批处理词元数上限、块大小和 GPU 内存分配,使更多任务得以同时进行,又不会突破延迟目标。
  • MTP 推测解码。NIM 2.0.12 优化服务栈(含 MTP)在同一优化服务栈中加入了 MTP 及其相关修复。其增量收益取决于接受率和可用的内存余量。

用你自己的工作负载对 NIM 做基准测试

公布的曲线只是一个起点,并不保证每个应用都能得到同样的结果。判断是否适用的最快办法,是回放有代表性的流量,并针对用户关心的延迟指标绘制 Pareto 曲线。

  • 部署确切的软件版本。使用 NIM 2.0.12(或更新版本),并在每次运行时固定镜像标签或摘要(digest)。
  • 准备有代表性的流量。使用 Mooncake 格式的 JSONL 追踪文件,或捕获受控的 NIM 请求,并对敏感数据采取适当的访问控制和脱敏处理。
  • 测量性能。使用 NVIDIA AIPerf 回放有代表性的流量,获取性能基准数据。
  • 选出满足 SLO 的 Pareto 点。在满足 SLO/延迟约束的点之间比较输出吞吐量,并判断是否适合部署:
for C in 1 4 8 16 32 64; do
   aiperf profile \
 	--model nvidia/nemotron-3-ultra-550b-a55b \
 	--endpoint-type chat --streaming \
 	--url localhost:8000 \
 	--input-file ./agentic-trace.jsonl \
 	--custom-dataset-type mooncake_trace \
 	--no-fixed-schedule \
 	--concurrency "$C"
 done

AIPerf 并发扫描示例。请把追踪文件、请求数量和端点信息替换为你要建模的工作负载。

下载并运行 Nemotron 3 Ultra NIM

从 Nemotron 3 Ultra NIM 页面开始,接受适用条款,然后选择 NIM 2.0.12 标签或已发布的确切摘要。下载完成后,查找并选择一个配置档(profile)。下面列出了 NIM 中打包的所有配置档:

 export NGC_API_KEY=<your-personal-api-key>
 export LOCAL_NIM_CACHE=$HOME/.cache/nim
 export NIM_TAG=2.0.12
 mkdir -p "$LOCAL_NIM_CACHE"
 echo "$NGC_API_KEY" | docker login nvcr.io \
   --username '$oauthtoken' --password-stdin
 docker run --gpus all --shm-size=16GB \
   -e NGC_API_KEY \
   -e NIM_MODEL_PROFILE \
   -v "$LOCAL_NIM_CACHE:/opt/nim/.cache" \
   -p 8000:8000 \
   nvcr.io/nim/nvidia/nemotron-3-ultra-550b-a55b:$NIM_TAG list-model-profiles

要为四卡 B200 系统上的智能体工作负载选择优化配置档,可以将 NIM_MODEL_PROFILE 设为 vllm-nvidia-b200-nvfp4-tp4-pp1-throughput-90.0,并启用推测解码:

 export NGC_API_KEY=<your-personal-api-key>
 export LOCAL_NIM_CACHE=$HOME/.cache/nim
 export NIM_TAG=2.0.12
 export NIM_MODEL_PROFILE=vllm-nvidia-b200-nvfp4-tp4-pp1-throughput-90.0
 mkdir -p "$LOCAL_NIM_CACHE"
 echo "$NGC_API_KEY" | docker login nvcr.io \
   --username '$oauthtoken' --password-stdin
 docker run --gpus all --shm-size=16GB \
   -e NGC_API_KEY \
   -e NIM_MODEL_PROFILE \
   -e NIM_SPECDEC_ENABLE=1 \
   -v "$LOCAL_NIM_CACHE:/opt/nim/.cache" \
   -p 8000:8000 \
   nvcr.io/nim/nvidia/nemotron-3-ultra-550b-a55b:$NIM_TAG

面向生产、经过性能工程的起点

NVIDIA NIM 将针对特定模型和 GPU 的服务优化打包成可部署的微服务。对于 4xB200 系统上的 Nemotron 3 Ultra,这些优化使企业在 50 TPS/用户下能比 NIM 关闭的基线多服务最多 2.5 倍的用户,同时让部署路径对真实的多用户服务保持切实可行。

NIM 将经过验证的性能工程与定期的推理栈更新、CVE 处理、硬件验证以及通过 NVIDIA AI Enterprise 提供的商业支持结合在一起。NVIDIA 还计划为更多模型推出经过性能优化的 NIM 配置,为开发者针对自身延迟、吞吐量和成本目标提供更多经过验证的起点。

开始使用

从 NGC 下载 Nemotron 3 Ultra NIM 2.0.12,在你的 NVIDIA GPU 基础设施上运行,并用 NVIDIA AIPerf 回放有代表性的流量,选出满足应用目标的 Pareto 点。

资源