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 内存。
它支持两种后端:
- gdrdrv:一个用于映射 GPU 内存的专用内核模块。
- 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 延迟测试的工具。
相关
- 项目
- 项目
- 项目
- 项目