Simplifying Model Serving Across Multiple GPUs with NVIDIA TensorRT Multi-Device Integration in NVIDIA Dynamo-Triton
Mirrored from NVIDIA Developer Blog for archival readability. Support the source by reading on the original site.
Simplifying Model Serving Across Multiple GPUs with NVIDIA TensorRT Multi-Device Integration in NVIDIA Dynamo-Triton
AI-Generated Summary
- NVIDIA TensorRT multi-device inference enables a single TensorRT network to execute across multiple GPUs using NCCL-backed distributed collectives while retaining TensorRT inference optimizations, fully supported starting with TensorRT 11.0.
- NVIDIA Dynamo-Triton release 26.07 enables the TensorRT backend multi-device capability, allowing one KIND_MODEL instance to own multiple GPUs and expose a single gRPC endpoint for distributed inference.
- The integration is demonstrated using NVIDIA Cosmos 3 Nano video generation, where Ulysses context parallelism distributes 44,160 video tokens across up to eight GPUs while Diffusers continues to orchestrate prompts, scheduling, and postprocessing.
- End-to-end generation latency drops from 156.6 seconds on one GPU to 34.2 seconds on eight GPUs, with transformer RPC speedup reaching 6.09x, while visual validation confirms outputs meet configured quality thresholds.
Next Steps
- Download NVIDIA Dynamo-Triton 26.07 from NGC to reproduce the results in your environment.
- Review the Dynamo-Triton TensorRT backend multi-device guide for configuration details.
- Explore the TensorRT Multi-Device documentation for API and usage information.
The compute and memory demands of generative AI increasingly exceed what a single GPU can provide. NVIDIA TensorRT multi-device inference is a new capability that enables a single TensorRT network to execute across multiple GPUs using NCCL-backed distributed collectives while retaining TensorRT inference optimizations. It is fully supported starting with TensorRT 11.0.
NVIDIA Dynamo-Triton (formerly NVIDIA Triton Inference Server) release 26.07 enables the multi-device inference capability of the TensorRT backend. One Triton KIND_MODEL instance can own multiple GPUs, create per-rank TensorRT execution contexts, CUDA streams, and NCCL communicators, and launch the ranks together for each request. The application calls one named model through a gRPC endpoint instead of coordinating GPU ranks itself.
For organizations deploying generative AI, this closes the gap between multi-GPU acceleration and a consumable inference service. Teams can trade additional GPU resources for shorter request latency, keep the application interface and surrounding workflow stable, package the engine as a versioned Triton model, and keep rank and communicator lifecycle code out of the client. For latency-sensitive generative media workflows, a shorter time to result can reduce user wait time and accelerate review-and-refine cycles.
This post demonstrates the integration using NVIDIA Cosmos 3 Nano video generation, a long-sequence workload featured in the previous post Scaling AI Inference Across Multiple GPUs Using NVIDIA TensorRT with Multi-Device Inference Support. Diffusers continue to orchestrate prompts, latents, classifier-free guidance (CFG), scheduling, VAE decode, and frame postprocessing. Dynamo-Triton serves the 36-layer denoising transformer, and TensorRT multi-device inference uses Ulysses context parallelism to distribute its 44,160 video tokens across as many as eight NVIDIA GPUs.
How does Dynamo-Triton serve TensorRT multi-device models?
The distributed Ulysses graph is compiled into each TensorRT plan before deployment. The Dynamo-Triton TensorRT backend loads the versioned plan, creates the multi-rank execution state, and exposes one gRPC model endpoint. The client sends a transformer request to that endpoint; it does not coordinate the participating GPU ranks.
The Cosmos 3 Nano model provides a practical example of this boundary. The transformer accounts for 93.4% of the single-GPU generation time, making it the highest-impact stage to accelerate. Each of 35 denoising steps requires one negative or unconditional prediction and one prompt-conditioned prediction for CFG. The Diffusers proxy therefore makes two sequential Triton calls per step, for 70 transformer RPCs per generation. Each request carries prepared tensors and returns noise_patches to the application workflow.
How does Dynamo-Triton activate a context-parallel distributed TensorRT plan?
The distributed graph is compiled into each context-parallel TensorRT plan. Dynamo-Triton configuration activates that plan; it does not convert a single-device engine into a distributed engine. The single-device baseline uses a standard GPU model instance on GPU 0. The two-, four-, and eight-GPU variants use KIND_MODEL, enable the TensorRT backend multi-device path, and identify the participating ranks.
# Excerpt from the generated CP8 config.pbtxt
name: "cosmos3_cp8"
backend: "tensorrt"
max_batch_size: 0
instance_group [
{ kind: KIND_MODEL count: 1 }
]
parameters [
{ key: "enable_multi_device" value: { string_value: "true" } },
{ key: "multi_device_gpus" value: { string_value: "0,1,2,3,4,5,6,7" } }
]
Distributing Cosmos 3 with Ulysses context parallelism
The fixed Cosmos 3 Nano profile for this example produces 44,160 video tokens. At context-parallel size eight (CP8), each rank processes 5,520 video tokens outside attention. The shorter 2,992-token text path remains replicated. Within each of the 36 transformer layers, Ulysses changes the partitioning axis around attention so that every rank processes the full video sequence for a nonoverlapping subset of heads.
The engine is exported from PyTorch and compiled with Torch-TensorRT. Three local converters lower export-carrier operations to the TensorRT public distributed-collective layer: reduce-scatter, all-to-all, and all-gather. Each accepted context-parallel plan contains two initial reduce-scatters, three all-to-alls in each of 36 transformer layers, and one final all-gather. The resulting topology is two reduce-scatters plus 108 all-to-alls plus one all-gather.
Benchmarking end-to-end generation latency
All four variants ran on the same healthy eight-GPU NVIDIA system. The single-device baseline used one GPU; CP2, CP4, and CP8 used two, four, and eight ranks. Every run used 1280×720 output, 189 frames at 24 FPS, and 35 denoising steps.
Each result includes one warm-up followed by five measured complete generations. Timing covers prompt work, the 70 Dynamo-Triton calls, CFG and scheduler updates, VAE decode, and frame postprocessing. Note that model loading and mp4 encoding were excluded.
Table 1 compares SD, CP2, CP4, and CP8 Cosmos 3 runs. End-to-end latency drops from 156.595 seconds on one GPU to 34.183 seconds on eight GPUs, while transformer RPC speedup increases to 6.09 times.
| Variant | GPUs | E2E mean | E2E speedup | RPC mean | RPC speedup | RPC share |
|---|---|---|---|---|---|---|
| SD | 1 | 156.595 | 1.00x | 146.192 | 1.00x | 93.4% |
| CP2 | 2 | 87.999 | 1.78x | 77.548 | 1.89x | 88.1% |
| CP4 | 4 | 53.093 | 2.95x | 42.661 | 3.43x | 80.4% |
| CP8 | 8 | 34.183 | 4.58x | 23.993 | 6.09x | 70.2% |
On one GPU, transformer RPCs account for 93.4% of generation time. At CP8, that share falls to 70.2%. Time outside the measured RPC path remains between 10.2 and 10.5 seconds across configurations, so prompt work, scheduler updates, VAE decode, postprocessing, and other client overhead become a larger fraction of the total.
Validating generated output before claiming performance
Every variant used the same seed and generation profile. Validation sampled frames 0, 47, 94, 141, and 188, checked format and temporal variation, and compared each context-parallel output with the single-device result. CP2, CP4, and CP8 passed the configured thresholds of mean absolute error (MAE) ≤ 25 and peak signal-to-noise ratio (PSNR) ≥ 18 dB.
The outputs are not claimed to be pixel-identical. CP2 and CP4 measured MAE 12.759 and PSNR 21.111 dB. CP8 measured MAE 16.316 and PSNR 19.400 dB. The contact sheet also shows the same coherent action across the clip: a robot arm cleaning a plate.
Get started simplifying multi-GPU model serving
For product teams, these results demonstrate a practical option when response time carries more business value than minimizing the GPUs assigned to one request. A complete Cosmos 3 generation that previously took more than two and a half minutes completes in about 34 seconds, while the application continues to use a conventional model-serving interface.
Teams must still decide on the best approach based on a resource-for-latency trade-off. This benchmark does not measure concurrent request throughput, cost per generated video, or total cost of ownership (TCO). Teams should evaluate these metrics against their own SLOs and deployment economics.
To reproduce the results featured in this post in your own environment, download NVIDIA Dynamo-Triton 26.07 from NGC. Then use the TensorRT, Torch-TensorRT, Diffusers, and Cosmos resources linked.
To learn more, check out these related resources:
Tags
About the Authors
Daisy Chu is a senior systems software engineer on the NVIDIA TensorRT team, specializing in multi-device architectures. Her work centers on building production-grade inference systems, with an emphasis on performance optimization, correctness validation, and scalable execution across single- and multi-GPU environments. Daisy is instrumental in enabling efficient multi-GPU inference for large language and multimodal models, ensuring high scalability and robustness. She holds a master’s degree in Computer Science from the University of Illinois Urbana-Champaign.
Peter Kisfaludi is a senior software engineer working in the TensorRT Multi-Device team. In this role, he focuses on developing scalable runtime architectures and optimizing communication overhead to deliver low-latency execution for multi-GPU model serving. Before joining NVIDIA in 2022, Peter was an independent consultant designing low-latency, mission critical software for real-time embedded systems.
Zhaoyuan He is a senior deep learning software engineer on the NVIDIA TensorRT team, specializing in efficient GPU inference for large language models. His technical interests span the performance optimization techniques that power modern inference frameworks, including kernel development, graph optimization, runtime execution, quantization, and distributed inference with collective communication optimizations. He works on advancing these techniques to deliver higher throughput and lower latency for end-to-end LLM serving on NVIDIA platforms. Zhaoyuan holds a Ph.D. in computer science from The University of Texas at Austin and an M.S. in electrical and computer engineering from the University of California, San Diego.
Joseph Loftin is a deep learning software inference engineer on the NVIDIA TensorRT team. His work focuses on enabling and optimizing multi-device inference through graph parallelism implementations, compiler enhancements, distributed collective development, and specialized kernels. He holds a master’s degree in computer science from Georgia Institute of Technology and a bachelor’s degree in electrical engineering from the University of Louisiana at Lafayette.
Byungsoo Jeon is a senior system software engineer on the NVIDIA TensorRT compiler backend team, specializing in high-performance distributed ML systems for LLMs. His expertise spans ML compiler optimization, multi-GPU parallelism, operator fusion, and custom GPU kernel development across both training and inference. Byungsoo holds a Ph.D. in Computer Science from Carnegie Mellon University, where his dissertation focused on automated and portable machine learning systems.
Comments
More from NVIDIA Developer Blog
-
What’s New for Game Developers: DLSS 5 with 3D-Guided Neural Rendering, NVIDIA ACE Updates, and New RTX Kit Capabilities
Sep 22
-
Accelerating a ROS 2 Node with an AI Agent and NVIDIA Isaac ROS
Sep 22
-
How to Evaluate AI Agents From Tool Calls to Task Completion
Sep 21
-
Turn Your Latest Observations Into Timely Weather Decisions With NVIDIA Earth-2
Sep 21
Discussion (0)
Sign in to join the discussion. Free account, 30 seconds — email code or GitHub.
Sign in →No comments yet. Sign in and be the first to say something.