Llama 3.2 Full-Stack Optimizations Unlock High Performance on NVIDIA GPUs
Meta recently released its
Llama 3.2
series of vision language models (VLMs), which come in 11B parameter and 90B parameter variants. These models are multimodal, supporting both text and image inputs. In addition, Meta has launched text-only
small language model (SLM)
variants of Llama 3.2 with 1B and 3B parameters. NVIDIA has optimized the Llama 3.2 collection of models for great performance and cost-efficient serving across millions of GPUs worldwide – from our most powerful data center and cloud GPUs to local
NVIDIA RTX workstations
and even low-power edge devices with
NVIDIA Jetson
.
Llama 3.2 VLMs support long context lengths of up to 128K text tokens as well as a single image input at a resolution of  1120 x 1120 pixels. To enable low latency responses for great user experiences, while also providing high throughput for cost-efficient serving of these models, the NVIDIA platform is optimized at every layer of the technology stack.
Similarly, the Llama 3.2 SLMs have been optimized to run well on the millions of NVIDIA RTX PCs and workstations worldwide. They have also been quantized to allow for local deployment on edge devices with NVIDIA Jetson. For more information, see
Deploying Accelerated Llama 3.2 from the Edge to the Cloud
.
This post describes the full-stack optimizations that enable high throughput and low latency serving of Llama 3.2 models.
Accelerating Llama 3.2 AI inference throughput
The Llama 3.2 11B and Llama 3.2 90B models include a vision encoder with a text decoder. The encoder is optimized for high-performance inference using the
NVIDIA TensorRT
library and the text decoder is optimized using the
NVIDIA TensorRT-LLM
library.
The visual information from the vision encoder is fused into the Llama text decoder with a cross-attention mechanism that is supported in TensorRT-LLM. This enables the Llama 3.2 VLMs to efficiently generate text by taking into account visual reasoning and understanding in context with the text input.
TensorRT supports the vision encoder in the BF16 data format. TensorRT-LLM supports the text decoder in both FP16 and BF16 formats. The official recipe released by Meta uses a BF16 text decoder. This is also used for our baseline performance measurements. To boost performance further, NVIDIA developed a custom FP8
post-training quantization (PTQ)
recipe, leveraging the fourth-generation FP8 Tensor Cores that are part of the
NVIDIA Hopper architecture
.
This recipe, available through the
TensorRT Model Optimizer library
, enables higher Llama 3.2 throughput and lower latency while delivering the same accuracy across numerous benchmarks including
ScienceQA
,
OCRBench
,
TextVQA
, and
MMMU
. This means that developers can now run the model more cost-effectively.
Optimizations from TensorRT, TensorRT-LLM, and TensorRT Model Optimizer libraries are combined and available through production-ready deployments using
NVIDIA NIM
microservices.
Delivering high throughput and low latency
Table 1 shows maximum throughput performance, representing offline use cases, across a range of input and output sequence lengths and single input image with maximum supported resolution of 1120 x 1120 pixels. Using a system based on the NVIDIA HGX H200 platform, we run the Llama 3.2 90B model on eight
NVIDIA H200 Tensor Core GPUs
, each with 141 GB of fast HBM3e memory, connected through NVLink and
NVLink Switch
, providing 900 GB/s of GPU-to-GPU bandwidth between the GPUs.
Maximum Throughput Performance –
Output Tokens/Second
Eight NVIDIA H200 Tensor Core GPUs
Input | Output Sequence Lengths | Image Size
8,000 | 2,000 | 1120×1120
20,000 | 2,000 | 1120×1120
60,000 | 2,000 | 1120×1120
BF16 Encoder with FP8 Decoder
2,646
1,417
480
Table 1. Maximum throughput performance with NVIDIA internal measurements
TensorRT optimized NIM for VLMs version 1.1.0 recipe. NIM server restarted between each ISL/OSL configuration to set an optimal KV cache split. Data measured on 11/14/2024. Output tokens/second is inclusive of time to generate the first token – tok/s =total generated tokens  / total latency. DGX H200, normalized to 8 GPUs (by taking the TP profile maximizing throughput per GPU, and multiplying that value by 8 to simulate a replica-parallel setup), batch size tuned for maximum node throughput, TensorRT Model Optimizer version 0.21 (pre-release), TensorRT-LLM version 0.16.0.dev, TensorRT version 10.4.0​.
Table 2 shows minimum latency performance using the same input and output sequence lengths and input image size.
Minimum Latency Performance – Output Tokens/Second
Eight NVIDIA H200 Tensor Core GPUs
Input | Output Sequence Lengths | Image Size
8,000 | 2,000 | 1120×1120
20,000 | 2,000 | 1120×1120
60,000 | 2,000 | 1120×1120
BF16 Encoder with FP8 Decoder
64
63
55
Table 2. Minimum latency performance with NVIDIA internal measurements
TensorRT optimized NIM for VLMs version 1.1.0 recipe. Data measured on 11/4/2024.  Output tokens/second is inclusive of time to generate the first token – tok/s = total generated tokens  / total latency. DGX H200, TP8, batch size = 1, TensorRT Model Optimizer version 0.21 (prerelease), TensorRT-LLM version 0.16.0.dev, TensorRT version 10.4.0​.
As these results show, NVIDIA H200 GPUs with
TensorRT-optimized
software delivers exceptional performance on Llama 3.2 90B VLM, in both latency-optimized and throughput-optimized scenarios.
Throughput performance of GeForce RTX 4090 with ONNX Runtime on NVIDIA RTX
For Windows deployments, NVIDIA has optimized Llama 3.2 SLMs to work efficiently using the
ONNX Runtime Generative API
, with a
DirectML
backend. Performance measurements are made using the
model checkpoint
available on the NGC catalog. The checkpoint is a quantized version of Llama 3.2 3B Instruct model and is quantized to
AWQ INT4
using
AutoAWQ
and converted to
ONNX
using ONNX Runtime Generative API.
Maximum Throughput Performance – Output Tokens/Second
NVIDIA GeForce RTX 4090 GPUs
Input | Output Sequence Lengths
100 | 100
2,000 | 100
4,000 | 100
Onnx-GenAI Runtime with DirectML, BS=1
253
203
165
Onnx-GenAI Runtime with DirectML, BS=4
615
374
251
Table 3. Maximum throughput performance with NVIDIA internal measurements
ONNX Runtime Generative API with DirectML data measured on 10/07/2024. Output tokens/second is inclusive of time to generate the first token – tok/s =total generated tokens  / total latency. GeForce RTX 4090 GPU.
Better performance on Llama 3.2 across platforms
With the NVIDIA accelerated computing platform, you can build models and supercharge your applications with the most performant Llama 3.2 models on any platform—from the data center and cloud to local workstations. Enterprises seeking the fastest time to value can use
NVIDIA NIM
, part of the
NVIDIA AI Enterprise
software platform, which offers
NVIDIA TensorRT
optimized
inference
on Llama 3.2 and other models from NVIDIA and its partner ecosystem.
Acknowledgments
We would like to thank George Yuan, Alex Settle, and Chenjie Luo for their efforts in supporting this post.
Llama 3.2 全栈优化释放 NVIDIA GPU 的高性能
Meta 最近发布了
Llama 3.2
系列视觉语言模型（VLM），其中包含 11B 参数和 90B 参数变体。这些模型是多模态模型，支持文本和图像输入。此外，Meta 还推出了 Llama 3.2 的纯文本
小语言模型（SLM）
变体，具有 1B 和 3B 参数。NVIDIA 已对 Llama 3.2 模型集合进行优化，以便在全球数百万个 GPU 上提供出色的性能和经济高效的服务 – 从我们功能强大的数据中心和云 GPU 到本地
NVIDIA RTX 工作站
，甚至是使用
NVIDIA Jetson
的低功耗边缘设备。
Llama 3.2 VLM 支持长达 128K 的文本标记，以及分辨率为 1120 x 1120 像素的单张图像输入。为了实现低延迟响应，提供出色的用户体验，同时提供高吞吐量以经济高效地提供这些模型，NVIDIA 平台在技术堆栈的每一层都进行了优化。
同样，Llama 3.2 SLM 已经过优化，可在全球数百万 NVIDIA RTX PC 和工作站上良好运行。它们还经过量化，允许在边缘设备上使用 NVIDIA Jetson 进行本地部署。有关更多信息，请参阅
将加速的 Llama 3.2 从边缘部署到云端
。
本文将介绍如何通过全栈优化实现 Llama 3.2 模型的高吞吐量和低延迟服务。
加速 Llama 3.2 AI 推理吞吐量
Llama 3.2 11B 和 Llama 3.2 90B 模型包括一个带有文本解码器的视觉编码器。编码器使用
NVIDIA TensorRT 库
针对高性能推理进行了优化，文本解码器使用
NVIDIA TensorRT-LLM 库
进行了优化。
通过 TensorRT-LLM 中支持的交叉注意力机制，视觉编码器的视觉信息融合到 Llama 文本解码器中。这使得 Llama 3.2 VLM 能够高效生成文本，在文本输入的上下文中考虑视觉推理和理解。
TensorRT 支持视觉编码器在 BF16 数据格式下运行。TensorRT-LLM 支持文本解码器在 FP16 和 BF16 格式下运行。Meta 发布的官方 recipe 使用了 BF16 文本解码器，这也用于我们的基准性能测量。为了进一步提高性能，NVIDIA 利用 NVIDIA Hopper 架构中的
第四代 FP8 Tensor Core
开发了自定义的 FP8 后训练量化（PTQ）recipe。
此方法通过
TensorRT Model Optimizer 库
提供，可实现更高的 Llama 3.2 吞吐量和更低的延迟，同时在众多基准测试（包括
ScienceQA
、
OCRBench
、
TextVQA
和
MMMU
）中提供相同的准确性。这意味着开发者现在可以更经济高效地运行模型。
TensorRT、TensorRT-LLM 和 TensorRT Model Optimizer 库中的优化经过组合，可通过使用
NVIDIA NIM
微服务的生产就绪型部署获得。
提供高吞吐量和低延迟
表 1 显示了在一系列输入和输出序列长度以及单输入图像 (最大支持分辨率为 1120 x 1120 像素) 中的最大吞吐量性能 (代表离线用例)。我们使用基于 NVIDIA HGX H200 平台的系统，在 8 个
NVIDIA H200 Tensor Core GPU
上运行 Llama 3.2 90B 模型，每个 GPU 均具有 141 GB 的快速 HBM3e 内存，通过
NVLink 和 NVLink Switch
连接，可在 GPU 之间提供 900 GB/s 的 GPU 到 GPU 带宽。
最大吞吐量性能 –
每秒输出令牌数
八个 NVIDIA H200 Tensor Core GPU
输入|输出序列长度|图像大小
8000|2000|1120*1120
20000|2000|1120*1120
60000|2000|1120*1120
带 FP8 解码器的 BF16 编码器
2646
1417
480
表 1. 通过 NVIDIA 内部测量获得的最大吞吐量性能
TensorRT 针对 VLM 版本 1.1.0 recipe 优化的 NIM。在每个 ISL/OSL 配置之间重新启动 NIM 服务器，以设置最佳 KV 缓存分割。数据测量时间：11 月 14 日，2024 年。输出 tokens/second 包含生成第一个 token 的时间 – tok/s = total generated tokens / total latency。DGX H200，标准化为 8 个 GPUs (通过采用 TP 配置文件最大限度地提高每个 GPU 的吞吐量，并将该值乘以 8 以模拟副本并行设置)，针对最大节点吞吐量调整了批量大小，TensorRT Model Optimizer 版本 0.21 (预发布)，TensorRT-LLM 版本 0.16.0.dev，TensorRT 版本 10.4.0。
表 2 显示了使用相同的输入和输出序列长度以及输入图像大小时的最小延迟性能。
最低延迟性能 – 输出令牌/秒
（
八个 NVIDIA H200 Tensor Core GPUs
）
输入|输出序列长度|图像大小
8000|2000|1120*1120
20000|2000|1120*1120
60000|2000|1120*1120
带 FP8 解码器的 BF16 编码器
64
63
55
表 2、NVIDIA 内部测量的最低延迟性能
TensorRT 针对 VLM 版本 1.1.0 recipe 优化的 NIM。数据测量时间：2024 年 11 月 4 日。输出 tokens/second 包含生成第一个 token 的时间 – tok/s = 生成的 tokens 总数/总延迟。DGX H200、TP8，批量大小 = 1，TensorRT Model Optimizer 版本 0.21 (预发布)，TensorRT-LLM 版本 0.16.0.dev，TensorRT 版本 10.4.0 以上。
这些结果表明，
搭载 TensorRT 优化软件的
NVIDIA H200 GPU 可在 Llama 3.2 90B VLM 上提供出色的性能，适用于延迟优化和吞吐量优化的场景。
采用 ONNX Runtime 的 GeForce RTX 4090 在 NVIDIA RTX 上的吞吐量性能
对于 Windows 部署，NVIDIA 已对 Llama 3.2 SLM 进行优化，以便使用带有
DirectML
后端的
ONNX
Runtime Generative API
高效工作。使用 NGC 目录上提供的
模型检查点
进行性能测量。检查点是 Llama 3.2 3B Instruct 模型的量化版本，使用
AutoAWQ
量化为
AWQ INT4
，并使用 ONNX Runtime Generative API 转换为 ONNX。
最大吞吐量性能 – 输出令牌/秒
NVIDIA GeForce RTX 4090 GPU
输入|输出序列长度
100|100
2000|100
4000|100
采用 DirectML 的 Onnx-GenAI 运行时，BS = 1
253
203
165
支持 DirectML 的 Onnx-GenAI 运行时，BS = 4
615
374
251
表 3、通过 NVIDIA 内部测量获得的最大吞吐量性能
使用在 2024 年 10 月 7 日测量的 DirectML 数据的 ONNX Runtime Generative API。输出 token/s 包含生成第一个 token 的时间 – tok/s = 总生成 token 数 / 总延迟。GeForce RTX 4090 GPU。
跨平台在 Llama 3.2 上获得更好的性能
借助 NVIDIA 加速计算平台，您可以在任何平台 (从数据中心、云到本地工作站) 上构建模型并使用性能超强的 Llama 3.2 模型增强您的应用。
NVIDIA NIM
是
NVIDIA AI Enterprise
软件平台的一部分，可为 Llama 3.2 和 NVIDIA 及其合作伙伴生态系统的其他模型提供经
NVIDIA TensorRT
优化的推理。
致谢
我们要感谢 George Yuan、Alex Settle 和 Chenjie Luo 为支持这篇博文而付出的努力。