全栈 NIM 优化如何为 Nemotron 3 Ultra 带来 2.5 倍的用户承载提升
部署大语言模型只是迈向生产级服务的第一步。生产团队还需要在现有 GPU 基础设施上尽可能承载更多并发用户,同时保持应用的交互响应能力。
这种权衡对 agentic AI 工作负载来说更为关键:这类场景下提示词可能很长,上下文会在多个步骤间复用,应用还常常需要向用户流式传输较长的响应。
NVIDIA NIM 将针对模型和 GPU 调优的服务配置封装成一个可部署的微服务。开发者不必从零开始配置运行时,而是直接获得一套经过验证的服务配置和受支持的部署路径,同时仍可针对自己的实际流量对 NIM 进行基准测试。
NIM 带来了什么:性能工程与生产就绪
推理性能是一个系统级属性。精度与 kernel、并行策略、调度、批处理、内存分配、前缀复用、模型特定的状态缓存以及解码策略,这些因素相互影响。一套配置只有在提升吞吐量的同时满足应用的延迟目标,才算真正有用。
NIM 把这些优化工作变成了一个经过测试的起点。NVIDIA 工程师针对受支持的模型、GPU 和精度组合验证配置,然后把运行时和模型产物封装到标准 API 背后。对于生产部署,NIM Certified 还提供定期的推理栈更新、CVE 处理、更广泛的硬件验证,以及通过 NVIDIA AI Enterprise 获得的商业支持。
NIM 在一条部署路径上带来两大收益:经过验证的性能工程,加上企业级的容器生命周期管理与支持体系。
案例研究:Nemotron 3 Ultra NIM 为 agentic 工作负载带来最高 2.5 倍的吞吐提升
本文使用的基准测试配置如下:
- 硬件:4xB200
- Agentic 工作负载:64K/400/76% KV 复用/50 TPS/用户(20 ms ITL)
下面的 Pareto 图对比了开源基线服务栈(NIM Off)与全量优化的 NIM 2.0.12 服务栈(NIM On)。
| 配置 | 原生 256K 最大上下文 | 说明 |
|---|---|---|
| NIM 关闭基线 | 718 tok/s | 未启用 NIM 优化 |
| NIM 开启(2.0.12)优化推理栈 | 1,997 tok/s,为基线的 2.5 倍 | 优化后的 NIM 栈:缓存/状态复用、MTP 投机解码及相关修复、自动调优内核、部分前缀匹配、调度器、批处理、内存与并行度调优 |
NIM 2.0.12 优化推理栈的工作原理
实测收益来自多个相互关联的配置组合,而非可以简单叠加百分比的独立开关。主要优化层包括:
- 精度与自动调优的模型感知内核。 自动调优的 mixture-of-experts 和 Mamba 内核将混合架构高效映射到 NVIDIA Blackwell GPU。
- 并行执行。 Tensor parallelism 将模型分布在四张 GPU 上,expert-aware 执行提升了 mixture-of-experts 层的利用率。
- 前缀与模型状态复用。 Prefix caching 避免重复计算已出现的上下文,partial-prefix matching 在仅部分前缀匹配时也能恢复复用,Mamba 状态缓存的参数则针对模型架构做了专门调优。
- 调度器、批处理与内存调优。 并发序列上限、批处理 token 上限、block 大小及 GPU 内存分配,在满足延迟目标的前提下让尽可能多的任务保持并发执行。
- MTP 推测解码。 NIM 2.0.12 的优化推理栈(含 MTP)在同一优化栈基础上加入了 MTP 及其相关修复。增量收益取决于接受率和可用内存余量。
用自有负载对 NIM 做基准测试
公开的性能曲线只是起点,并不保证每个应用都能获得相同效果。最快确认适配性的方式,是回放具有代表性的流量,并针对用户关心的延迟指标画出 Pareto 曲线。
- 锁定精确的软件版本。 使用 NIM 2.0.12(或更新版本),每次运行都固定镜像 tag 或 digest。
- 准备代表性流量。 使用 Mooncake 格式的 JSONL trace,或捕获受控的 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 并发扫描示例。请将示例中的 trace、请求数量和 endpoint 信息替换为你想要建模的实际负载。
下载并运行 Nemotron 3 Ultra NIM
先访问 Nemotron 3 Ultra NIM 页面,接受相关条款,然后选择 NIM 2.0.12 标签或指定的已发布 digest。下载完成后,查找并选择一个 profile。以下是该 NIM 打包的全部 profile:
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 系统上为 agentic 负载选择优化过的 profile,可以将 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 时,相比 NIM 默认配置,这些优化能让组织在每用户 50 TPS 的前提下多服务 2.5 倍的用户,同时保持部署方案切实适用于真实的多用户服务场景。
NIM 将经过验证的性能工程与推理栈定期更新、CVE 安全修复、硬件兼容性验证以及通过 NVIDIA AI Enterprise 提供的商业支持整合为一体。未来还会有更多性能优化型 NIM 配置覆盖更广的模型范围,为开发者在延迟、吞吐量和成本目标上提供更多经过验证的起步方案。
快速上手
从 NGC 下载 Nemotron 3 Ultra NIM 2.0.12,部署到你的 NVIDIA GPU 基础设施上,然后用 NVIDIA AIPerf 回放具有代表性的流量,选出满足应用目标的帕累托最优点。
相关资源