NVIDIA发布TensorRT多设备推理,Dynamo-Triton 26.07支持单模型跨多GPU
NVIDIA技术博客介绍,TensorRT 11.0起支持多设备推理,Dynamo-Triton 26.07让一个Triton KIND_MODEL实例拥有多块GPU,客户端只需调用一个gRPC端点。在Cosmos 3 Nano视频生成测试中,端到端延迟从单卡 156.595 秒降到八卡 34.183 秒。
AI解读:NVIDIA把多GPU推理的复杂度从应用层挪到了服务层。以前要让一个模型跨多块GPU跑,客户端得自己协调各个rank;现在Dynamo-Triton的一个模型实例可以同时占用多块GPU,对外只暴露一个gRPC端点,应用程序照常调用一个命名模型即可。TensorRT 11.0起正式支持这项能力。
对使用生成式AI的团队来说,这相当于用更多GPU换更短延迟,而接口和工作流不用大改。NVIDIA在Cosmos 3 Nano视频生成上做了基准:1280×720、189 帧、35 步去噪,单卡端到端 156.595 秒,八卡 34.183 秒,Transformer的RPC加速比达到 6.09 倍。
需要注意的是,这个测试只测了单请求的端到端延迟,没有测并发吞吐、单条视频成本或总体拥有成本。NVIDIA自己也在博客里说明,团队仍要按各自SLO和部署经济性权衡“多占GPU换低延迟”是否划算。
数据包含工程上真实的不完美:单卡时Transformer占生成时间 93.4%,到八卡CP8时降到 70.2%,而RPC之外的固定开销始终在 10.2 到 10.5 秒之间,于是这部分相对占比变大。多设备只是在关注的部分上接近线性加速,并不是整条流水线匀速变快。
输出一致性方面,NVIDIA用相同随机种子对比单卡和各并行配置,采样第 0、47、94、141、188 帧做校验。CP2、CP4、CP8都通过了MAE ≤ 25、PSNR ≥ 18 dB的设定阈值,但NVIDIA明确表示不声称像素完全一致。CP8实测MAE为 16.316、PSNR为 19.400 dB。
NVIDIA技术博客介绍了一项名为TensorRT多设备推理的新能力:它让单个TensorRT网络借助NCCL支撑的分布式集合通信,在多个GPU上执行,同时保留TensorRT的推理优化。该能力从TensorRT 11.0开始获得完整支持。
NVIDIA Dynamo-Triton(原NVIDIA Triton Inference Server)26.07 版本启用了TensorRT后端的这项多设备推理能力。一个Triton KIND_MODEL实例可以拥有多块GPU,为每个rank创建TensorRT执行上下文、CUDA流和NCCL通信器,并在每次请求时一起启动这些rank。
应用端因此只需通过gRPC端点调用一个命名模型,不再需要自己协调GPU rank。对于部署生成式AI的组织,NVIDIA称这填补了多GPU加速与可消费推理服务之间的缺口。
Cosmos 3 Nano演示:客户端每步发两次Triton调用,全程 70 次RPC
该博客使用NVIDIA Cosmos 3 Nano视频生成作为集成演示,这是上一篇文章中介绍过的长序列工作负载。Diffusers继续负责编排提示词、潜变量、无分类器引导(CFG)、调度、VAE解码和帧后处理;Dynamo-Triton服务 36 层去噪Transformer,TensorRT多设备推理使用Ulysses上下文并行,把 44,160 个视频token分布到最多八块NVIDIA GPU上。
分布式Ulysses图在部署前被编译进每个TensorRT plan。Dynamo-Triton的TensorRT后端加载带版本的plan,创建多rank执行状态,并暴露一个gRPC模型端点。客户端向该端点发送Transformer请求,不参与协调GPU rank。
在这个示例中,Transformer占单GPU生成时间的 93.4%,是加速收益最高的阶段。35 步去噪中每一步都需要一次负面/无条件预测和一次提示词条件预测用于CFG,因此Diffusers代理每步发起两次顺序Triton调用,每次生成共 70 次Transformer RPC。每次请求携带准备好的张量,并向应用工作流返回noise_patches。
单卡到八卡:端到端 156.595 秒降至 34.183 秒
Dynamo-Triton配置激活的是已经编译进每个上下文并行TensorRT plan的分布式图,并不会把单设备引擎转换成分布式引擎。单设备基线在GPU 0上使用标准GPU模型实例;二卡、四卡和八卡变体使用KIND_MODEL,启用TensorRT后端多设备路径,并标明参与的rank。博客给出了CP8配置片段:name为cosmos3_cp8,backend为tensorrt,max_batch_size为 0,instance_group用KIND_MODEL、count为 1,参数中enable_multi_device设为true,multi_device_gpus设为 0,1,2,3,4,5,6,7。
Cosmos 3 Nano在该示例中的固定配置产生 44,160 个视频token。上下文并行规模为 8(CP8)时,每个rank在注意力之外处理 5,520 个视频token;较短的 2,992 token文本路径保持复制。在 36 层Transformer的每一层内,Ulysses围绕注意力改变分区轴,使每个rank针对不重叠的注意力头子集处理完整视频序列。
引擎从PyTorch导出并用Torch-TensorRT编译。三个本地转换器把导出载体操作降到TensorRT公共分布式集合层:reduce-scatter、all-to-all和all-gather。每个被接受的上下文并行plan包含两个初始reduce-scatter、36 层Transformer每层三个all-to-all,以及一个最终all-gather,即拓扑为两个reduce-scatter加 108 个all-to-all加一个all-gather。
基准方法:同机同配置,单次预热加五次实测
四种变体都在同一台健康的八GPU NVIDIA系统上运行。单设备基线使用一块GPU,CP2、CP4、CP8分别使用 2、4、8 个rank。每次运行输出 1280×720、24 FPS的 189 帧、35 步去噪,结果包含一次预热和五次实测完整生成。计时覆盖提示词处理、70 次Dynamo-Triton调用、CFG与调度器更新、VAE解码和帧后处理;模型加载和mp4编码不计入。
NVIDIA给出的对比数据为:单卡端到端均值 156.595 秒,Transformer RPC均值 146.192 秒,RPC占比 93.4%;CP2端到端 87.999 秒、加速 1.78 倍,RPC均值 77.548 秒、加速 1.89 倍,占比 88.1%;CP4端到端 53.093 秒、加速 2.95 倍,RPC均值 42.661 秒、加速 3.43 倍,占比 80.4%;CP8端到端 34.183 秒、加速 4.58 倍,RPC均值 23.993 秒、加速 6.09 倍,占比 70.2%。
博客指出,单卡时Transformer RPC占生成时间 93.4%,CP8时降至 70.2%;各配置中RPC路径之外的时间保持在 10.2 至 10.5 秒之间,因此提示词处理、调度器更新、VAE解码、后处理和其他客户端开销在总时间中的占比变大。
视觉验证:通过MAE与PSNR阈值,但不声称像素一致
每个变体使用相同种子和生成配置。验证采样第 0、47、94、141、188 帧,检查格式和时间变化,并把每个上下文并行输出与单设备结果比较。CP2、CP4和CP8均通过设定阈值:平均绝对误差(MAE)≤ 25,峰值信噪比(PSNR)≥ 18 dB。NVIDIA明确表示不声称输出像素完全一致。
具体测量值:CP2的MAE为 12.759、PSNR为 21.111 dB;CP4同样为MAE 12.759、PSNR 21.111 dB;CP8的MAE为 16.316、PSNR为 19.400 dB。接触表显示整段视频中动作一致:一个机械臂清洗盘子。
适用条件与未测量项
NVIDIA表示,对产品团队来说,当响应时间的业务价值高于最小化单请求GPU数量时,这些结果展示了一个实际选项。一次完整的Cosmos 3生成从超过两分半缩短到约 34 秒,同时应用继续使用常规的模型服务接口。团队仍需根据资源换延迟的权衡决定最佳方案。
博客明确指出,该基准没有测量并发请求吞吐量、每条生成视频的成本或总体拥有成本(TCO),团队应针对自己的SLO和部署经济性评估这些指标。要复现结果,可从NGC下载NVIDIA Dynamo-Triton 26.07,并使用TensorRT、Torch-TensorRT、Diffusers和Cosmos相关资源;进一步资料包括Dynamo-Triton TensorRT后端多设备指南、TensorRT多设备文档和Dynamo-Triton模型仓库文档。