大型语言模型(LLM)越来越大,增加了处理推理请求所需的计算量。为了满足服务当今LLM的实时延迟要求,并为尽可能多的用户提供服务,多GPU计算是必不可少的。这不仅能够降低延迟,提高用户体验,还能够提高吞吐量,降低服务成本。两者同时重要。
即使大型模型可以装入单个state-of-the-art GPU的内存中,该GPU生成令牌的速率也取决于可用于处理请求的总计算量。通过结合多个state-of-the-art GPU的计算能力,可以实现最新模型的实时用户体验。
为了解对每秒高令牌的需求,以下 GIF 展示了两种情况:
- 5 个令牌/秒:低于正常的人类阅读速度,而非实时。
- 50 个令牌/秒:出色的用户体验。
通过使用多个 GPU 的组合计算性能和张量并行 (TP) 等技术来运行大型模型,可以快速处理推理请求,从而实现实时响应。通过精心选择用于运行模型的 GPU 数量,云推理服务还可以同时优化用户体验和成本。
有关用于平衡用户体验的并行技术的更多信息,请参阅Demystifying AI Inference Deployments for Trillion Parameter Large Language Models。
多 GPU 推理是通信密集型推理
多 GPU TP 推理的工作原理是将每个模型层的计算拆分为服务器中的两个、四个甚至八个 GPU。理论上,两个 GPU 可以将模型的运行速度提升 2 倍,四个 GPU 可以提升 4 倍,八个 GPU 可以提升 8 倍。
但是,每个 GPU 无法独立完成其工作。在每个 GPU 完成模型层各自部分的执行后,每个 GPU 必须将计算结果发送到每个其他 GPU,执行 all-to-all reduction。只有这样,推理执行才能继续到下一个模型层。
尽可能缩短 GPU 之间的结果通信时间至关重要,因为在此通信期间,Tensor Core 通常保持空闲状态,等待数据继续处理。
在此通信步骤中,必须传输大量数据。对 Llama 3.1 70B(8K 输入令牌和 256 个输出令牌)的单个查询需要从每个 GPU 传输多达 20GB 的 TP 同步数据。由于多个查询通过批处理并行处理,以提高推理吞吐量,因此传输的数据量增加了倍数。
因此,高带宽 GPU 到 GPU 互连对于多 GPU 推理至关重要。
NVSwitch 对于快速的多 GPU LLM 推理至关重要
为了实现良好的多 GPU 扩展,AI 服务器首先需要每个 GPU 具有出色的互连带宽。它还必须提供快速连接,以使所有 GPU 能够尽快与所有其他 GPU 交换数据。
NVIDIA Hopper 架构 GPU 可以使用第四代 NVLink 以 900 GB/s 的速度进行通信。借助 NVSwitch,服务器中的每个 NVIDIA Hopper GPU 都可以与任何其他 NVIDIA Hopper GPU 同时以 900 GB/s 的速度进行通信。
峰值速率并不取决于通信的 GPU 数量。这意味着,NVSwitch 是无阻塞的。每个配备 8 个 GPU 的 NVIDIA HGX H100 和 NVIDIA HGX H200 系统都配备 4 个第三代 NVSwitch 芯片。每个 NVSwitch 芯片的总双向带宽高达 25.6 Tb/s,令人惊叹。
为便于比较,假设一台服务器配备 8 个 H200 GPU,但没有使用 NVSwitch,而是使用服务器主板上的点对点连接(图 4)。
在点对点设计中,尽管没有四个高速交换机可以降低系统成本,但每个 GPU 都必须将相同的 900 GB/s 连接拆分为七个专用的 128 GB/s 点对点连接,每个连接都连接到系统中的另一个 GPU。这意味着 GPU 之间的通信速度取决于正在通信的 GPU 数量。
GPU 数量 | 点到点带宽 | NVSwitch 带宽 |
2 | 128 GB/秒 | 900 GB/s |
4 | 3 x 128 GB/s | 900 GB/s |
8 | 7 x 128 GB/秒 | 900 GB/s |
表 1 显示了通过点对点互连连接的 GPU 与通过 NVSwitch 连接的 GPU 之间的 GPU 到 GPU 带宽比较。
对于只需要两个 GPU 以实现用户体验和成本最佳平衡的模型(例如 Llama 3.1 70B),点对点架构仅提供 128 GB/s 的带宽。20 GB 的数据将消耗 150 毫秒,仅执行众多多对多减少中的一个。由于通信用度高,Amdahl 定律限制了每增加一个 GPU 可能实现的加速。
与此同时,使用 NVSwitch 的系统将提供完整的 900 GB/s 带宽,仅需 22 毫秒传输 20 GB,从而大幅减少 GPU 之间通信所花费的时间。这对整体推理吞吐量和用户体验产生了重大的影响。
云服务通常为模型服务设置固定的响应时间预算,以提供良好的最终用户体验。这通常意味着能够以快于人类阅读速度的速度生成令牌。为了最大限度地提高吞吐量并降低服务成本,我们会在保持响应时间的同时对请求进行尽可能高的批量处理,以充分发挥云服务的优势。
表 2 显示了在每秒 30-50 个令牌/用户的不同实时响应时间预算下测量的 Llama 3.1 70亿吞吐量。
实时响应预算 tok/s/用户 |
吞吐量tok/s/GPU (批量大小) | NVSwitch 交换机 优势 | ||
单个 GPU TP = 1 | 点到点 TP = 2 | NVSwitch 交换机 TP = 2 | ||
30 | 67 (2) | 80 (6) | 115 (9) | 1.4 倍 |
35 | 不符合 | 74 (5) | 104 (7) | 1.4 倍 |
40 | 不符合 | 67 (4) | 87 (5) | 1.3 倍 |
45 | 不符合 | 56 (3) | 76 (4) | 1.4 倍 |
50 | 不符合 | 43 (2) | 63 (3) | 1.5 倍 |
使用内部测量对吞吐量建模。H200 GPU,ISL/OSL = 8k/256、
如表 2 所示,单个 GPU 配置 (TP=1) 在实现实时性能方面面临挑战。使用跨两个 GPU 的张量并行分割模型可结合两个 GPU 的计算资源,在各种实时体验预算中实现高吞吐量。使用 TP=2 和 NVSwitch 的 NVIDIA H200 GPU 的实时推理吞吐量比不使用 NVSwitch 的同类 GPU 高 1.5 倍。
为了展示 NVSwitch 如何受益于增加 GPU 到 GPU 通信流量的场景,表 3 显示了在固定批量大小下的整体服务器吞吐量。更大的批量大小意味着来自越来越多的用户的请求可以一次性处理,从而提高整体服务器利用率并降低每次推理的成本。
批量大小 |
吞吐量 tok/s/GPU | NVSwitch 交换机优势 |
|
点到点 | NVSwitch 交换机 | ||
1 | 25 | 26 | 1.0 倍 |
2 | 44 | 47 | 1.1 倍 |
4 | 66 | 76 | 1.2 倍 |
8 | 87 | 110 | 1.3 倍 |
16 | 103 | 142 | 1.4 倍 |
32 | 112 | 168 | 1.5 倍 |
使用内部测量对吞吐量建模。H200 GPU,TP = 2,ISL/OSL = 8K/256、
随着批量大小的增加,GPU 到 GPU 的流量也会增加,与点到点拓扑相比,NVSwitch 提供的优势也会增加。但是,即使批量大小相对较小,收益也会明显增加。
针对万亿参数模型推理持续进行 NVLink 创新
NVLink 和 NVSwitch 基于 NVIDIA Hopper 架构在 GPU 之间提供高带宽的通信,并为当今经济高效的实时大型模型推理提供明显优势。
随着模型规模的不断增长,NVIDIA 通过 NVLink 和 NVSwitch 不断创新,为更大的 NVLink 领域突破实时推理性能的极限。
NVIDIA Blackwell 架构采用第五代 NVLink,将每个 GPU 的 NVLink 速度提高一倍,达到 1800 GB/s。对于 Blackwell,还推出了新的 NVSwitch 芯片和 NVLink 交换机托盘,以支持更大的 NVLink 域大小。
NVIDIA GB200 NVL72 系统采用机架级设计,可连接 36 个 NVIDIA Grace CPU 和 72 个 NVIDIA Blackwell GPU,并借助第五代 NVLink,使所有 72 个 GPU 能够作为单个 GPU 发挥作用,与上一代产品相比,实时万亿参数推理的速度提高了 30 倍。