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 延遲測試的工具。
相關
- 專案
- 專案
- 專案
- 專案