Hi,
I am trying to transfer VBO data rendered in OpenGL using GPUDirect RDMA with nvidia-peermem driver.
Referring to the simpleGL from CUDA sample here,
when I register the CUDA buffer obtained through OpenGL/CUDA interop(In the sample code, it is dptr pointer) using rdma_reg_read() from librdmacm, I get a ‘Bad address’ error.
I tried another approach…
First, I allocated a region using cudaMalloc(), registered it with rdma_reg_read(), and copied the data of the CUDA buffer obtained through OpenGL/CUDA interop using cudaMemcpy(cudaMemcpyDeviceToDevice). This method succeeds.
My question is whether there are any restrictions or limitations on the CUDA buffer that can be registered with GPUDirect RDMA.
Platform:
# cat /etc/redhat-release
Rocky Linux release 8.6 (Green Obsidian)
# uname -a
Linux tower11 4.18.0-372.32.1.el8_6.x86_64 #1 SMP Thu Oct 27 15:18:36 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
# nvidia-smi
Thu Mar 13 12:40:58 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.05 Driver Version: 560.35.05 CUDA Version: 12.6 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA RTX 4500 Ada Gene... Off | 00000000:47:00.0 Off | Off |
| 30% 31C P8 19W / 210W | 242MiB / 24570MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1982 G /usr/libexec/Xorg 51MiB |
| 0 N/A N/A 2158 G /usr/bin/gnome-shell 3MiB |
| 0 N/A N/A 1004229 G /usr/bin/gnome-shell 167MiB |
+-----------------------------------------------------------------------------------------+
# ofed_info -s
MLNX_OFED_LINUX-24.10-1.1.4.0:
# ibv_devinfo
hca_id: mlx5_0
transport: InfiniBand (0)
fw_ver: 16.35.4030
node_guid: e8eb:d303:00fe:24a0
sys_image_guid: e8eb:d303:00fe:24a0
vendor_id: 0x02c9
vendor_part_id: 4119
hw_ver: 0x0
board_id: MT_0000000011
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 1024 (3)
sm_lid: 0
port_lid: 0
port_lmc: 0x00
link_layer: Ethernet