首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >GPU算力爆发下的I/O瓶颈,是怎么一回事

GPU算力爆发下的I/O瓶颈,是怎么一回事

作者头像
ICT系统集成阿祥
发布2025-12-25 11:23:50
发布2025-12-25 11:23:50
1410
举报
文章被收录于专栏:数通数通

为什么需要GDS?

现代AI与数据科学依赖数据驱动。在深度学习训练、科学模拟等高性能计算场景中,GPU需要持续高效地访问存储系统中的海量数据。随着数据集规模增长,GPU与存储设备间的高带宽、低延迟通信成为计算效率的关键。

I/O指数据在计算核心与外部设备间的传输过程。传统I/O架构由CPU主导,但随着计算重心转向GPU,存储I/O性能与GPU算力的差距日益凸显。GPU计算性能每代提升约1.5倍,而存储设备带宽增速明显滞后。高端GPU显存带宽可达3TB/s,顶级企业级NVMe SSD性能仅7GB/s(PCIe 4.0 x4接口理论极限),相差400倍以上。这种“存储墙”效应,导致GPU频繁陷入数据饥饿状态,使I/O成为制约系统性能的主要瓶颈。

图1 GPU、CPU与存储设备的带宽对比

在AI产业化落地的背景下,I/O性能优化已从技术课题转变为商业刚需。行业数据显示,AI训练任务中30%以上时间耗费在数据加载环节。要突破这一瓶颈,需硬件技术(如GDS、CXL等)与软件技术(如智能预取、存算融合等)协同创新。

GDS的核心优势

GDS技术实现存储设备与GPU显存的端到端直连传输,绕过传统I/O路径中CPU管控的数据拷贝和内存缓冲,带来以下优势:

• 更低的延迟:减少数据传输环节,I/O延迟显著降低。

• 更高的带宽利用率:消除传统I/O路径(存储→内存→GPU)的两次数据拷贝,PCIe带宽利用率显著提升。

• 更少的CPU开销:CPU无需参与数据搬运,可专注于计算任务,减轻负担。

GDS如何工作?


GDS的核心目标是绕过CPU与主机内存的中转环节,在存储设备与GPU显存间建立端到端直连通道,消除传统I/O路径中的冗余数据拷贝与CPU性能瓶颈。其实现依赖DMA、PCIe P2P及内存一致性模型等底层技术协同支持。在实践中,GDS通常会与GPUDirect技术栈中的其他技术协同,构建完整的端到端加速框架。

GDS前置技术

DMA直传:硬件卸载数据搬运

DMA技术是构建GDS硬件直传架构的核心基础组件,为设备间直接数据传输提供了底层硬件通道。DMA使外部设备能绕过CPU,直接与内存高效交换数据,减轻CPU负载并提升系统吞吐量。

在无DMA的系统中,数据传输完全由CPU中转调度,形成“CPU中心化”传输模式。一次“设备→内存”的数据传输过程中,CPU需执行4次数据拷贝操作,不仅浪费CPU计算周期(每字节传输都需消耗数十时钟周期),还会因频繁中断处理和上下文切换引入显著延迟。

图2 无DMA参与的数据传输路径

DMA技术的本质是建立“设备与内存”的直接物理通道,通过专用硬件控制器(DMA控制器)卸载CPU的数据搬运职责。设备传输数据时,CPU只需完成内存分配、DMA控制器初始化等调度工作,便可返回其他计算任务。DMA控制器会独立完成“设备→内存”的数据传输,将CPU从繁琐的数据搬运工作中解放。

图3 DMA架构下的数据传输路径

PCIe P2P:设备直连通信

PCIe P2P(Peer-to-Peer)是GDS硬件直传架构的关键组成部分,其核心思路是重构设备互连架构,将存储访问从软件调度的传统模式转变为硬件直连的自主交互模式。PCIe P2P支持两个PCIe设备(如NVMe SSD和GPU)直接进行数据交换,绕过主机内存中转,进一步优化数据传输路径。

在存储设备到GPU显存的数据传输中,若仅依赖DMA技术,数据仍需经历“设备→内存→设备”的2次拷贝过程。GDS通过集成PCIe P2P协议,将DMA的数据传输能力从“设备-内存”扩展至“设备-设备”层级,消除主机内存缓冲带来的性能瓶颈。

PCIe P2P通信通过PCIe Switch实现多个端点设备(EP)间的内部路由。当SSD与GPU等端点设备需要传输数据时,PCIe Switch可建立点对点专属通道,绕过主机内存实现设备级直通传输。

图4 PCIe P2P通信

•PCIe架构相关概念解释:

• RC(Root Complex,根复合体):PCIe体系中的核心控制单元,扮演CPU与PCIe设备之间的总控枢纽角色。它直接集成在CPU或芯片组中,是PCIe拓扑的起点,负责管理所有PCIe域内的设备通信、地址转换和资源分配。

• EP(Endpoint,端点设备):PCIe拓扑中的数据生产者或消费者,作为通信链路的起点或终点,不具备路由转发能力,典型设备如NVMe SSD、GPU加速卡、高速网卡等。

• PCIe Switch:PCIe(Peripheral Component Interconnect Express)架构中的多端口互连设备,功能类似于网络交换机,但专用于高速PCIe设备间的数据路由。它允许单个RC连接多个EP,并支持设备间的P2P通信。PCIe Switch还可实现PCIe通道扩展,实现系统的PCIe资源分配与优化。

内存一致性模型:跨设备数据完整性

内存一致性模型定义了多设备(如GPU、存储设备)协同访问共享数据的规则。在GDS技术中,存储设备直接与GPU显存交互,若缺乏一致性保障,可能引发以下问题:

• 脏读:存储设备向显存写入数据时,若操作被中断,GPU可能读取到新旧混合的“半更新”数据。

• 数据覆盖:多设备并发读写同一显存区域时,部分操作可能被覆盖或丢失。

• 陈旧数据:存储设备的缓存与GPU显存数据不一致,导致计算依赖错误值。

• 同步失效:传统依赖CPU的锁机制无法介入设备间的直接通信,需硬件自主维护一致性。

在GDS的数据传输过程中,内存一致性模型可确保存储设备、GPU显存、CPU内存之间的传输满足原子性(操作不可分割)、可见性(修改及时同步)和有序性(操作顺序全局一致),避免因缓存、PCIe传输延迟或并行操作导致的数据损坏或程序逻辑错误。GDS不依赖传统多核CPU的强一致性模型(如MESI协议),而是通过硬件协议与编程模型的协同设计确保内存一致性:

• 原子性保障:借助硬件支持的原子操作(如固定大小的原子写指令),确保关键数据传输不可分割,避免部分写入。

• 缓存一致性:通过厂商私有协议(如NVIDIA显存控制器与存储控制器的交互机制)实现缓存同步,确保存储设备与显存数据副本一致。特定场景需应用层显式控制(如CUDA流同步)。

• 有序性控制:使用内存屏障指令(如CUDA的“__threadfence()”函数)或硬件定义的顺序规则(如“写后读”语义),约束多设备操作的全局可见顺序。

• 无锁同步:基于硬件原子操作或设备间共享状态标记(如信号量),直接在GPU与存储设备间完成同步,数据传输阶段无需CPU介入。

内存一致性模型是GDS技术中保障数据访问正确性的基础,通过标准化设备间数据交互规则,解决了多设备直连场景下的核心冲突问题,使GDS能够兼顾性能与可靠性。

GDS运行机制


GDS的核心机制是通过DMA引擎和P2P等技术,在存储设备(本地或远程)与GPU显存间建立直连通道,消除传统路径中的冗余数据拷贝,实现存储与GPU间的高效直接读写。

传统I/O传输路径

在未使用GDS技术的传统GPU加速系统中,数据从存储设备到GPU显存的传输必须经过主机内存中转。虽然DMA技术实现了设备到内存的直接传输,但整体架构仍保持“CPU中心化”设计,主机内存中的回弹缓存(Bounce Buffer)作为数据中转站会临时存储待传输数据的副本,该流程包含两次数据拷贝操作:

• DMA传输阶段:存储设备(如NVMe SSD)通过DMA将数据传至主机内存的Bounce Buffer。此阶段CPU需完成内存分配、传输指令初始化等调度工作。

• 内存到GPU传输阶段:数据从Bounce Buffer经PCIe总线传至GPU显存。该阶段仍需CPU参与,通过调用专用API(如cudaMemcpy)管理传输过程,包括触发PCIe总线传输及处理地址转换/TLB维护等操作。

图5 传统I/O传输路径

GDS I/O传输路径

在采用GDS技术的GPU加速系统中,数据从本地存储设备(如NVMe SSD)到GPU显存的传输通过端到端直连架构实现,绕过CPU与内存的干预。其主要过程如下:

• 准备阶段:

ο 显存地址映射:GPU驱动程序分配显存空间,并将其物理地址映射到PCIe总线的地址空间(即生成PCIe总线地址,用于设备间寻址)。

ο DMA引擎配置:NVMe驱动访问存储设备的PCIe配置空间,将GPU显存的PCIe总线地址写入存储设备控制器的DMA目标地址寄存器,并设置传输相关参数。DMA引擎的配置目的是授权存储设备能够直接访问GPU显存,建立存储设备到GPU的端到端DMA通道。

相关概念解释:

显存空间:GPU专用的高速内存区域,用于存储图形或计算数据,独立于主机内存。

PCIe总线地址空间:PCIe设备间通信时使用的全局地址空间,用于标识设备在PCIe拓扑中的可访问内存或寄存器位置。

PCIe配置空间:每个PCIe设备内标准化的寄存器区域,用于保存设备的硬件能力描述(如支持的传输模式)、当前运行状态,并允许驱动程序在运行时动态修改设备功能(如启用DMA)。

存储设备控制器:存储设备内部的核心控制芯片或固件模块,负责协议解析、介质管理及DMA引擎控制等。

• P2P数据直传阶段:存储设备控制器通过DMA引擎发起传输,将数据经PCIe P2P链路直接写入GPU显存的PCIe总线地址。数据传输过程由存储设备控制器的DMA单元与GPU显存控制器协同完成,全程无需CPU调度或主机内存缓存,如图6所示。

图6 GDS I/O传输路径

传统I/O路径与GDS I/O路径对比

表1 传统I/O路径与GDS I/O路径对比

对比维度

传统I/O传输路径

GDS I/O传输路径

数据拷贝次数

2次或更多显式拷贝: 第一次:存储设备→主机内存 第二次:主机内存→GPU显存

0次显式拷贝: 存储设备→GPU显存直连,无CPU/内存中转

CPU开销

高:需CPU调度,处理中断和内存拷贝

极低:仅初始化传输配置

延迟

高:需等待内存中转和CPU调度

低:端到端直连

带宽上限

受限于内存带宽或PCIe链路

接近PCIe理论带宽

适用场景

小规模数据、通用计算场景

大规模AI训练、HPC、实时推理等需高吞吐低延迟的场景

硬件兼容性

广泛兼容: 普通NVMe SSD+任意GPU

限制要求: GPU需支持GDS(如NVIDIA Tesla/Ampere架构及以上) 存储设备需支持PCIe P2P

网络传输支持

需通过额外协议栈(如TCP/IP),且无法直连远端GPU显存

可通过GPUDirect RDMA实现跨节点显存直连(需RDMA网卡)

GPUDirect协同加速

GPUDirect是NVIDIA推出的一系列技术,旨在消除或降低GPU与系统组件(如网络设备、存储设备、多GPU集群和视频采集设备等)间的数据传输延迟与带宽瓶颈。除了专注于存储I/O加速的GPUDirect Storage(GDS)技术外,GPUDirect的核心技术还包括:

• GPUDirect RDMA:实现网络设备直通GPU显存

• GPUDirect P2P:实现多GPU显存直通互连

• GPUDirect Video:实现视频流与GPU显存无缝对接

通过GPUDirect系列技术的协同工作,可以充分释放PCIe/NVLink的带宽优势,扩展GPU加速计算的应用范围,形成更加完整的异构计算加速解决方案。

GPUDirect RDMA

RDMA(Remote Direct Memory Access,远程直接内存访问)是一种网络通信协议,支持跨节点的内存直接访问能力,通过将数据传输任务卸载至网卡硬件实现零拷贝和低延迟通信。GPUDirect RDMA基于此协议,使GPU能够通过PCIe/NVLink总线直接与网络设备(如InfiniBand网卡)通信,从而允许RDMA网卡绕过主机内存直接访问GPU显存。

图7 GPUDirect RDMA

GDS可与GPUDirect RDMA协同工作,构建跨节点的高效端到端零拷贝数据通路。GDS负责将存储数据直接加载至GPU显存,GPUDirect RDMA则将计算结果直接从显存传输至网络设备,从而实现“存储→计算→网络”全链路加速,提升AI训练、实时推理等场景的数据吞吐效率。

图8 GPUDirect RDMA与GDS协同工作

GPUDirect P2P

GPUDirect P2P(Peer-to-Peer,点对点)是NVIDIA基于PCIe P2P标准在GPU架构上实现的优化扩展,支持同一主机内的多块GPU通过PCIe/NVLink总线直接读写彼此显存,无需通过主机内存中转,实现多GPU数据分发加速。

图9 GPUDirect P2P

GPUDirect Video

GPUDirect Video是NVIDIA针对视频流处理优化的硬件直连架构,基于DisplayPort/HDMI协议扩展,支持视频采集设备(如工业相机、视频采集卡)与GPU显存建立直接传输通道。该技术允许视频输入/输出设备绕过主机内存,通过PCIe总线直接读写GPU显存,实现视频流的零拷贝处理。

图10 GPUDirect Video

在视频分析场景中,GPUDirect Video可与GPUDirect RDMA形成处理闭环:视频流通过GPUDirect Video直入显存,经CUDA核处理后,由GPUDirect RDMA直出至网络设备。同时支持与GPUDirect P2P结合,实现多GPU间的视频流帧同步分发。

开发者如何应用GDS技术?


NVIDIA为开发者提供了CUDA和cuFile API两大核心组件,简化了GDS技术的实现与应用。

• CUDA作为通用计算平台,提供完整的GPU计算任务编排能力,开发者可基于其线程模型、内存管理及流式执行机制高效调度计算资源。

• cuFile API专注于实现存储设备与GPU显存的物理层直连.开发者可通过专用接口轻松建立存储设备与GPU显存之间的直接数据传输通道,无需关心底层协议细节。

图11 NVIDIA CUDA与cuFile API

CUDA:GPU并行计算的核心平台

CUDA(Compute Unified Device Architecture)是NVIDIA推出的通用并行计算平台与编程模型,使开发者能够通过C/C++等高级语言高效利用GPU的大规模并行计算能力。CUDA可将复杂计算任务(如矩阵运算)分解为并行子任务,并动态分配给GPU的数千个计算核心执行,显著提升计算性能。同时,CUDA提供了多种现成的加速库(如cuBLAS数学库、cuDNN深度学习库),可大幅降低开发复杂度。在GDS技术架构中,CUDA一方面作为核心计算引擎处理并行计算任务,另一方面其底层驱动接口为cuFile API提供包括显存地址空间管理、DMA传输权限控制等关键支持。

cuFile API:存储直连的编程接口

cuFile API是NVIDIA为GDS设计的用户态编程接口(核心库为libcufile.so)。开发者可利用cuFile API协调GDS驱动程序,触发存储设备绕过CPU和主机内存,直接读写GPU显存。其核心机制为:

• 硬件级传输控制:基于PCIe P2P与DMA技术,通过cuFileRead/cuFileWrite函数直接调度存储设备(如NVMe SSD)与GPU显存间的数据传输,规避传统I/O路径中的内存拷贝,最大化利用PCIe/NVLink带宽。

• 自动化资源管理:自动处理GPU显存物理地址映射、DMA缓冲区注册及NVMe命令队列配置,开发者仅需指定显存虚拟地址(VA)、文件偏移量和传输长度,即可实现存储与显存的端到端精准传输。

GDS有哪些应用价值?


GDS技术的核心价值主要可体现在以下方面:

• 提升数据传输性能与稳定性

ο 存储与GPU之间的数据传输带宽可提高2倍~8倍。

ο 端到端数据传输延迟大幅降低。(在NVIDIA官方的性能展示示例中,端到端延迟降低了3.8倍)

ο 显式直接传输机制规避了传输故障,高GPU并发场景仍能维持稳定的低延迟表现。

ο 配合GPUDirect RDMA技术,可大幅提升远程存储与GPU间的访问性能。

• 优化系统资源利用

ο 充分利用存储端DMA引擎,大幅降低CPU负载,并且不影响GPU负载。

ο 充分发挥GPU在计算和I/O带宽方面的双重优势。

ο 具备多源带宽聚合能力,内存、本地存储和远程存储多源并发传输时,传输带宽可以叠加,逼近GPU总带宽上限。

GDS有哪些典型应用场景?


大规模AI模型训练

千亿级参数模型的训练需持续加载海量分布式数据集,传统数据传输需经过存储、CPU内存、GPU显存的多级中转。由于CPU处理环节存在带宽瓶颈与额外开销,导致GPU计算单元频繁空闲等待,严重影响训练效率。

GDS通过存储到GPU显存的直通传输架构,绕过CPU内存的中转环节,使得训练数据分片能够直接加载至GPU。例如,在视觉模型训练中,分布式存储中的图像数据可通过高速网络协议直传至GPU,显著降低数据加载延迟并提升GPU利用率。

高精度科学仿真

流体力学、核物理等仿真需处理大规模时空网格数据,传统方法因CPU内存容量限制,需频繁读写存储设备,且CPU到GPU的数据搬运延迟成为性能瓶颈,难以满足实时迭代需求。

GDS支持仿真数据从存储集群直接传输至GPU显存,通过预分配显存资源和异步传输机制,实现数据传输与计算任务的重叠。例如,在瞬态仿真场景中,流场数据通过直通方式加载至GPU,结合多GPU间的直接数据交换能力,减少中间数据回写,显著提升仿真迭代速度与扩展效率。

实时医学影像重建

医学影像设备生成的高速动态数据需实时处理,传统流程因CPU中转和多次内存拷贝导致延迟过高,无法满足手术导航等实时性要求;历史影像调阅时的大规模数据加载也存在响应缓慢问题。

GDS建立医疗设备与GPU显存的直连通道,使原始数据可直接映射到GPU进行实时重建与分析。例如,在影像设备的数据管线中,原始信号通过直通传输进入GPU,结合显存分区管理技术,同时支持实时处理与历史数据的快速加载,显著缩短端到端延迟和三维渲染准备时间。

高频量化交易分析

高频交易需在极短时间内处理TB级行情数据,传统方案依赖CPU聚合数据后再传输至GPU,导致延迟波动和带宽瓶颈,难以支撑实时风险计算与策略更新。

通过直通式数据传输架构,GDS能够同时将来自不同存储层级的金融数据(包括内存中的实时交易数据和存储设备中的历史市场数据)直接并行加载至GPU显存,使得多源异构金融数据能够在GPU计算单元中实现高效融合处理,显著提升了高频交易分析、实时风险建模等复杂金融场景的数据处理效率,同时保证了计算过程的低延迟稳定性。

自动驾驶数据湖处理

自动驾驶产生的多模态传感器数据需高效预处理,传统流程因CPU处理速度不足导致数据准备耗时过长,且多传感器数据同步精度不足影响模型训练效果。

GDS构建从存储到GPU的直通处理流水线,例如将点云、视频流等原始数据直接加载至GPU显存,利用并行计算能力完成解码、滤波等操作。同时通过硬件级时间戳机制实现多传感器数据的纳秒级同步,显著提升处理速度与多模态融合精度,减少训练管线中的资源浪费。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ICT系统集成阿祥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么需要GDS?
  • 现代AI与数据科学依赖数据驱动。在深度学习训练、科学模拟等高性能计算场景中,GPU需要持续高效地访问存储系统中的海量数据。随着数据集规模增长,GPU与存储设备间的高带宽、低延迟通信成为计算效率的关键。
    • GDS的核心优势
  • GDS如何工作?
  • GDS的核心目标是绕过CPU与主机内存的中转环节,在存储设备与GPU显存间建立端到端直连通道,消除传统I/O路径中的冗余数据拷贝与CPU性能瓶颈。其实现依赖DMA、PCIe P2P及内存一致性模型等底层技术协同支持。在实践中,GDS通常会与GPUDirect技术栈中的其他技术协同,构建完整的端到端加速框架。
    • GDS前置技术
      • DMA直传:硬件卸载数据搬运
      • PCIe P2P:设备直连通信
      • 内存一致性模型:跨设备数据完整性
    • GDS运行机制
    • GDS的核心机制是通过DMA引擎和P2P等技术,在存储设备(本地或远程)与GPU显存间建立直连通道,消除传统路径中的冗余数据拷贝,实现存储与GPU间的高效直接读写。
      • 传统I/O传输路径
      • GDS I/O传输路径
      • 传统I/O路径与GDS I/O路径对比
      • 表1 传统I/O路径与GDS I/O路径对比
    • GPUDirect协同加速
      • GPUDirect RDMA
      • GPUDirect P2P
      • GPUDirect Video
    • 开发者如何应用GDS技术?
    • NVIDIA为开发者提供了CUDA和cuFile API两大核心组件,简化了GDS技术的实现与应用。
    • CUDA:GPU并行计算的核心平台
    • cuFile API:存储直连的编程接口
  • GDS有哪些应用价值?
  • GDS技术的核心价值主要可体现在以下方面:
  • GDS有哪些典型应用场景?
  • 大规模AI模型训练
    • 高精度科学仿真
    • 实时医学影像重建
    • 高频量化交易分析
    • 自动驾驶数据湖处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档