GPU Direct RDMA 是一种由 NVIDIA 开发的技术,旨在实现 GPU 与第三方设备(如网络接口、视频采集设备、存储适配器)之间的直接数据交换,而无需经过 CPU 的参与。这项技术利用 PCI Express 的标准功能,显著提高了数据传输的带宽和降低了延迟。
今天我们就来记录整理下开启GDR的方法。
1.开启 GDR 前提条件
GPU架构要求:需要Kepler架构及以上,如K80、P100、V100、A100等
系统要求:PCIe 拓扑需支持 GPU 与网卡间的直接通信(建议通过同一条 PCIe 总线或 NUMA 节点)。
网络接口要求:支持 RDMA 和 PeerDirect 技术的设备,如Mellanox网卡或者兼容的 InfiniBand/RoCE 网卡。
GPU和网卡驱动要求:GPU驱动≥ 418.43,Mellanox OFED ≥ 5.0,cuda ≥ 9.0,建议≥ 11.0
系统内核版本要求:内核 ≥ 4.13
上面的具体要求已经整理出来,下面我就来看看具体安装过程。
2.安装 Mellanox OFED 驱动程序
wget https://www.mellanox.com/downloads/ofed/MLNX_OFED-5.8-3.0.7.0/MLNX_OFED_LINUX-5.8-3.0.7.0-ubuntu20.04-x86_64.tgz
tar -xvf MLNX_OFED_LINUX-*.tgz
cd MLNX_OFED_LINUX-*
sudo ./mlnxofedinstall --auto-add-kernel-support --with-gdrcopy --force
sudo /etc/init.d/openibd restart
安装时注意需要添加--with-gdrcopy参数
3.安装 gdrcopy 内存复制库
sudo apt install -y build-essential devscripts check libsubunit-dev
git clone https://github.com/NVIDIA/gdrcopy.git
cd gdrcopy
make
sudo make install
4.加载相关的内核模块
sudo modprobe nvidia_uvm
sudo modprobe nvidia-peermem
5.验证 GPU Direct RDMA 支持
检查 GPU 与网卡是否在同一 IOMMU Group
lspci -tv | grep -E "NVIDIA|Mellanox"
确认 nv_peer_mem 模块加载
lsmod | grep nv_peer_mem
测试 RDMA 访问 GPU 内存
cd gdrcopy/tests
sudo ./gdrcopy_test # 输出 "Test PASSED" 表示成功
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/1094
评论列表