当前位置: 首页 > news >正文

GPU拓扑结构

(GPU 拓扑是指 GPU(图形处理单元)及其相关组件在计算机系统中的物理布局和连接关系。)

  1. PCI:

PCI总线是一种由英特尔于1991年推出的局部总线标准,最早提出的PCI总线工作在33MHz频率之下,传输带宽达到133MB/s(33MHz * 32bit/s),后面提出64bit的pci总线,总线频率也提升到66MHz。PCI总线使用并行总线结构,在同一条总线上所有的外部设备共享总线带宽:采用共享总线的机制,会出现不同的设备抢占总线的情况,所有带宽还是有限。PCI后来被PCIe取代,但在编程中两者兼容。

-- PIC基本拓扑结构如下

-- PCI 设备:符合 PCI 总线标准的设备就被称为 PCI 设备,PCI 总线架构中可以包含多个 PCI 设备。PCI 设备同时也分为主设备和目标设备两种,主设备是一次访问操作的发起者,而目标设备则是被访问者。

-- PCI 总线:PCI 总线在系统中可以有多条,类似于树状结构进行扩展,每条 PCI 总线都可以连接多个 PCI 设备/桥。

-- PCI 桥:当一条 PCI 总线的承载量不够时,可以用新的 PCI 总线进行扩展,而 PCI 桥则是连接 PCI 总线之间的纽带。

北桥一般用来连接processor处理器,图像接口,存储接口和PCI总线。南桥用来连接PCI总线和外围设备,同时南桥也通常给PCI总线提供系统复位信号,时钟信号和错误报告信号。这个是PIC桥一般的设计,图中分在上下所以叫南北桥。

  1. PCIe(Peripheral Component Interconnect Express)

PCIe,英文缩写为PCIe或者PCI Express,一般用于CPU与外部设备进行高速连接(GPU,声卡)。PCIe是点对点,全双工的差分传输信号总线,基于数据包协议传输。点对点互连表示链路上的电气负载有限,从而使发送和接收频率可扩展到更高。PCIe目前成熟的版本有GEN1,GEN2,GEN3,GEN4和GEN5,每一代相较上一代传输速率和传输带宽都有了很大幅度的提升。

(点对点通信的含义:

直接通信:在点对点架构中,每个设备(如 CPU 和 PCIe 设备)之间通过专用的通道进行通信,而不是通过共享总线。

专有带宽:每个连接都有自己的专用带宽,不会与其他设备共享,从而减少了数据传输冲突和瓶颈。)

-- 点对点传输 :每一个设备是对于一条完整的总线, 在 PCIe 架构中,根复合体(Root Complex,通常集成在 CPU 或芯片组中)直接与 PCIe 设备(如 GPU、网络卡、存储控制器等)进行通信。

-- 差分传输: 每个信号由一对差分信号压差来表示:D+和D-之间电压差为正表示1,D+和D-之间的电压差为负表示0。

-- 通信协议帧传输:分为三层协议–事务层、数据链路层、物理层

-- 链路(Links):PCIe设备之间的信号传输路径称作链路(Links),一个Links由一个或多个收发通道(Lanes)组成

-- 收发通道(Lanes):一个通道内由一对差分信号组成,lanes的连接可以不用端口对应方便布局布线,会在软件端做处理

GT/S:Giga transaition per second,即每一秒内传输的次数

带宽(吞吐量)=(传输速率×lane数量×编码效率)/8 (结果单位是GB/S)

举个例子,PCIE1.0x4,带宽=(2.5GT/s ×4×0.8)/8=1GB/s

  1. PCIe基本拓扑机构

PCIe采用的是树形拓扑结构, 一般由根组件(Root Complex),交换设备(Switch),终端设备(Endpoint)等类型的PCIe设备组成

-- Root Complex: 根桥设备,是PCIe最重要的一个组成部件; Root Complex主要负责PCIe报文的解析和生成。RC接受来自CPU的IO指令,生成对应的PCIe报文,或者接受来自设备的PCIe TLP报文,解析数据传输给CPU或者内存。

-- Switch: PCIe的转接器设备,目的是扩展PCIe总线。和PCI并行总线不同,PCIe的总线采用了高速差分总线,并采用端到端的连接方式, 因此在每一条PCIe链路中两端只能各连接一个设备, 如果需要挂载更多的PCIe设备,那就需要用到switch转接器。

-- switch在linux下不可见,软件层面可以看到的是switch的上行口(upstream port, 靠近RC的那一侧) 和下行口(downstream port)。

一般而言,一个switch 只有一个upstream port, 可以有多个downstream port

-- PCIe endponit: PCIe终端设备,是PCIe树形结构的叶子节点。比如网卡,NVME卡,显卡都是PCIe ep设备。

  1. PCIe Switch

多个GPU通过PCIe Switch直接与CPU相连。其工作原理是,GPU 发出的信号首先传输至 PCIe Switch,随后由交换机将数据分发至对应的 CPU 进行调度处理。他们之间的pcie 3.0*16有接近32GB/s的双向带宽,现代GPU的内存带宽远高于此,当训练数据不停增长的时候,这个互联方案本身却成为了致命的系统瓶颈,限制了数据传输速度。如果不改进这个互联带宽,那么新时代GPU带来的额外性能就没法发挥出来,从而无法满足现实需求负载的增长。

在PCIe直连拓扑中,PCIe lane的数量显然存在一定的局限性。为了解决这一问题,新的PCIe标准中引入了PCIe Switch模块。PCIe Switch模块在主板上与2个CPU Socket一一对应,采用2个PCIe Switch芯片来进行信号扩展。这种设计巧妙地利用了信号放大的原理,使得每个扩展芯片能够额外扩展出5个x16的插槽,从而显著增加了可用的PCIe插槽数量。通过这种方式,PCIe Switch有效地缓解了CPU直连时PCIe lane数量不足的问题,为系统提供了更灵活的扩展能力和更强大的连接性能。

通过 PCIe Switch,服务器可以实现 CPU-GPU、GPU-GPU 之间的连接,同时也出现了 3 种连接模式,即:balance、common、cascade 拓扑。

在PCIe Switch 互联拓扑里,GPU 间通信链路可能为 GPU0→Switch0→CPU0→CPU1→Switch1→GPU7,这种链路通信会存在延迟,更适合对信号效率要求不高、注重性价比的场景,比如推理、云计算等。

  1. NVLink

为了解决这个问题,nvidia开发了一个全新的互联构架nvlink。目的是突破 PCIe 互联在带宽性能上的限制,让 GPU 芯片间能实现高带宽、低延迟的数据传输。NVLink 互联方式是让 GPU 通过 NVLink 直接连通,无需借助 PCIe Switch。是点对点的高速互连技术,单条 NVLink 是全双工双路信道,可直连 2 个 GPU,且每个 GPU 能凭借多条 NVLink 接口连接多个 GPU。

下图所示,单条nvlink是一种双工双路信道,其通过组合32条配线,从而在每个方向上可以产生8对不同的配对(2bi*8pair*2wire=32wire),第一版的实现被称为nvlink 1.0,与P100 GPU一同发布。一块P100上,集成了4条nvlink。每条link具备双路共40GB/s的带宽,整个芯片具备整整160GB/s的带宽,这种设计使得 NVLINK 在进行大量数据传输时能保持较低的延迟。

(NVLink提供比PCIe更高的带宽和更低的延迟。支持GPU之间的高速数据传输,适用于需要大量GPU通信的应用场景,NVLink主要应用于需要大规模并行计算的高性能场景中,如深度学习、AI推理、科学模拟和金融分析等。特别是在深度学习领域,NVLink允许多个GPU之间实现高速数据传输,从而大幅加速了模型训练的速度。)

-- HBM2(High Bandwidth Memory 2):一种高性能内存技术,直接集成在GPU旁边,提供高带宽的内存访问。

-- Tx(Transmit)和Rx(Receive):分别表示数据传输的发送和接收通道。这些通道通过NVLink连接在一起,形成一个数据传输网络。

NVLINK的工作流程

1. 寻址和初始化

在使用NVLINK 进行通信之前,需要对目标 GPU 进行寻址和初始化。这通常通过设置 GPU 设备的地址和端口号来完成。

2. 数据传输

一旦寻址和初始化完成,就可以开始进行数据传输。NVLINK 支持两种数据传输模式:DMA 和 P2P。

DMA 模式:在 DMA 模式下,CPU 可以通过 NVLink 桥接器直接将数据传输到目标 GPU 的显存中。这个过程不需要目标 GPU 的参与,因此可以有效地提高数据传输效率。

P2P 模式:在 P2P 模式下,两个 GPU 之间可以直接进行数据传输。这种模式通常用于在 GPU 之间共享数据或进行并行计算任务。

3. 数据接收和处理

目标 GPU 在接收到数据后,会对其进行处理或存储。在这个过程中,GPU 可以使用 CUDA 核心直接访问显存,以实现高效的数据处理。

--查看 NVLink 拓扑信息

运行以下命令:nvidia-smi topo -m

(“CPU Affinity” 指的是 CPU 亲和性,它描述了特定的硬件资源(如 GPU)与 CPU 核心之间的关联关系。在表格中,GPU0 和 GPU1 对应的 CPU Affinity 是 0 - 11,这意味着 GPU0 和 GPU1 与 CPU 的 0 - 11 号核心有较高的亲和性,如果使用多个 GPU,根据 CPU Affinity 将不同的 GPU 分配给对应的 CPU 核心组来处理相关任务,更好地利用 CPU 资源,减少资源竞争,可以加快训练速度。)

--查看 NVLink 带宽

运行以下命令:nvidia-smi nvlink --status

这将显示 NVLink 的状态和带宽信息,包括每个通道的带宽是否已启用。

其他命令自行deepseek

  1. DGX-1

第一种nvidia专门为AI加速订制的机器叫做dgx1,它集成了八块p100与两块志强e5 2698v4(英特尔(Intel)至强(Xeon)系列的处理器),但是因为每块GPU只有4路nvlink,这些GPU构成了一种混合的cube-mesh网络拓扑结构,GPU被4块4块分为两组,然后在互相连接。也叫做cube-mesh拓扑结构,由多个GPU组成,这些GPU通过NVLink等高速互连技术相连,形成一个立方体或多维网格状的网络架构。

同时,因为GPU需要的pcie通道数量超过了芯片组所能提供的数量,所以每一对GPU将连接到一组pcie switch上与志强相连,然后两块志强再通过qpi总线连接。

8块P100,每块16GB HBM2显存,总计128GB显存和512GB DDR4-2133系统内存。

  1. nvlink 2.0

nvlink 2.0提升了信号的传输率,从20Gb/s到了25Gb/s,双信道总计50GB/s,pre nvlink。同时进一步提升了nvlink数到6路。这些举措让v100的总带宽从p100的160GB/s提升到了300GB/s。

  1. NVSwitch

NVLink 技术无法使单服务器中 8 个 GPU 达到全连接,为解决该问题,NVIDIA 在 2018 年发布了 NVSwitch,实现了 NVLink 的全连接。

NVIDIA NVSwitch 是首款节点交换架构,可支持单个服务器节点中 16 个全互联的 GPU,并可使全部 8 个 GPU 对分别达到 300GB/s 的速度同时进行通信,提供一致的高带宽连接。

(NVIDIA的GB200服务器通过NVSwitch连接32个GPU,实现高达14.4 TB/s的带宽。)

-- NVSwitch的简单理解

如上图所示,在没有 NVSwitch 的配置中,GPU 之间的连接通常是通过将 NVLinks 聚合成多个组(Gang)来实现的。这意味着多个 GPU 通过共享的 NVLink 链路进行通信。然而,这种方法的一个限制是任意两个 GPU 之间的最大带宽受限于它们所在 Gang 的 NVLink 数量和带宽。

右图引入 NVSwitch 后,VSwitch 作为一个高速交换机,允许所有链路上的数据进行交互。

在 NVSwitch 架构中,任意一对 GPU 都可以直接互联,且只要不超过六个 NVLink 的总带宽,单个 GPU 的流量就可以实现非阻塞传输。这也就意味着,NVSwitch 支持的全互联架构意味着系统可以轻松扩展,以支持更多的 GPU,而不会牺牲性能。每个 GPU 都能利用 NVLink 提供的高带宽,实现快速的数据交换,0、1两张卡正在通信,其他卡间也可以全速通信,互不影响。

NVSwitch 技术通过提供高带宽、低延迟的多 GPU 互联,解决了大规模并行计算中的通信瓶颈问题。

  1. RDMA(Remote Direct Memory Access)

远程直接内存访问(即RDMA)允许GPU直接访问远程GPU的内存,绕过CPU,减少延迟,提高数据传输效率。它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。是一种为了解决网络传输中服务器端数据处理延迟而产生的技术。

传统的 TCP/IP 软硬件架构及应用存在着网络传输和数据处理的延迟过大、存在多次数据拷贝和中断处理、复杂的 TCP/IP 协议处理等问题。

RDMA 将用户应用中的数据直接传入服务器的存储区,通过网络将数据从一个系统快速传输到远程系统的存储器中,消除了传输过程中多次数据复制和文本交换的操作,降低了 CPU 的负载。RDMA技术的原理及其与TCP/IP架构的对比如下图所示。

(RDMA 技术主要包括:

-- IB(InfiniBand):基于 InfiniBand 架构的 RDMA 技术,由 IBTA(InfiniBand Trade Association)提出。搭建基于 IB 技术的 RDMA 网络需要专用的 IB 网卡和 IB 交换机。

-- iWARP(Internet Wide Area RDMA Protocal):基于 TCP/IP 协议的 RDMA 技术,由 IETF 标 准定义。iWARP 支持在标准以太网基础设施上使用 RDMA 技术,但服务器需要使用支持iWARP 的网卡。

-- RoCE(RDMA over Converged Ethernet):基于以太网的 RDMA 技术,也是由 IBTA 提出。RoCE支持在标准以太网基础设施上使用RDMA技术,但是需要交换机支持无损以太网传输,需要服务器使用 RoCE 网卡。)

http://www.cnnetsun.cn/news/1774737.html

相关文章:

  • 实测效果惊艳:DeepSeek-R1-Distill-Qwen-1.5B推理能力展示
  • Gemma-3-12b-it真实作品集:10组高质量图片问答对话效果分享
  • nli-distilroberta-base在智能客服中的应用:自动判断用户意图与诉求
  • 和AI一起搞事情#:边剥龙虾边做个中医技能来起号缓
  • 英语时态全解析:从“时”与“态”的底层逻辑到实战应用
  • Z-Image-Turbo-辉夜巫女轻量部署:8GB显存GPU稳定运行的LoRA文生图方案
  • 保姆级教程:用PSIM+Simulink搭建一个移相全桥的联合仿真模型(从电路简化到结果分析)
  • One API中转搭建完整教程(2026最新)
  • 告别复杂配置!mPLUG-Owl3-2B一键部署,小白也能玩转AI识图
  • Transformer 架构学习笔记
  • ModelEngine的‘会话式API’和‘知识库溯源’到底香不香?一个全栈开发者的深度拆解与性能实测
  • OpenClaw技能扩展指南:用Qwen3-4B实现公众号自动发布
  • Python爬虫终极提速:异步IO(asyncio+aiohttp)优化,比多线程还快4倍
  • 一文读懂私有化即时通讯,企业数据安全的“专属防线”
  • Moment-DETR: Revolutionizing Video Moment Retrieval with Transformer-Based Set Prediction
  • AI Coding实战!我用 AI 全程编码了一个企业级后台管理框架 Forge Admin
  • Claude Code 权限 / 安全审查调用流程图
  • 人脸识别OOD模型保姆级教程:GPU加速拒识低质量人脸样本
  • 用 C# 写一个完整的 ReAct 智能体:从命令行输入到任务完成的全链路拆解糜
  • 稳卖AI浏览器怎么做选品:这4个维度提升选品成功率
  • OpenClaw+钉钉机器人:Qwen3-14B镜像搭建团队任务调度中心
  • OpenClaw视觉革命:Qwen2.5-VL-7B实现UI设计稿自动检查
  • DeEAR语音情感识别实操手册:导出Gradio界面结果为PNG报告,含三维雷达图与文字解读
  • OpenClaw性能优化:降低Phi-3-vision-128k-instruct长图文任务的Token消耗
  • 六种AI技术支持的文献引用生成策略及其管理优化方案
  • 告别手动重复:用Python脚本+C# WinForm打造你的Abaqus自动化仿真平台(附源码思路)
  • AI:词向量模型详解(Word Embedding)
  • kotlin协程Coroutine
  • 4. 对象新增了哪些扩展?
  • 嵌入式学习笔记——认识STM32的 GPIO口