NVIDIA/gdrcopy

A fast GPU memory copy library based on NVIDIA GPUDirect RDMA technology

解决的问题

GDRCopy 是一个低延迟 GPU 内存复制库,旨在减少在 CPU 和 GPU 之间移动数据时产生的开销。它通过允许 CPU 直接驱动复制过程,解决了标准复制操作(如 cudaMemcpy)中常见的高延迟问题(通常会产生 6-7 微秒的开销)。

运作原理

该库利用 NVIDIA GPUDirect RDMA 技术来建立 GPU 内存的用户空间映射。这使得 CPU 可以像操作普通主机内存一样操作 GPU 内存。

它支持两种后端:

  1. gdrdrv:一个用于映射 GPU 内存的专用内核模块。
  2. DMA-BUF mmap:针对未安装内核模块环境的后端,利用 CUDA 驱动程序将 GPU 内存导出为 Linux dma-buf,以便通过 mmap() 进行映射。

性能特点是:由于写入合并(write-combining),主机到设备(H-D)的传输速度很快,但由于 GPU BAR 无法预取,设备到主机(D-H)的传输速度较慢。

适用对象

使用 NVIDIA Data Center 或 RTX GPU,且需要在 CPU 和 GPU 之间进行极低延迟数据传输以满足性能关键型应用需求的开发者。

特点

  • 低开销:与标准 CUDA 内存复制相比,CPU 驱动的复制显著降低了延迟。
  • 灵活映射:提供建立 GPU 内存用户空间映射的基础设施。
  • 多种后端:同时支持自定义内核模块和 DMA-BUF mmap 回退机制。
  • 基准测试工具:包含一套用于健全性检查、带宽计算和往返 ping-pong 延迟测试的工具。

相关

  • 项目
  • 项目
  • 项目
  • 项目