0
votes

Is there is any way to write to CUDA Device memory from a PCI device. This PCI device is logging data a very fast rate. So attaining the maximum performance, i want to copy the data directly to GPU memory for processing with a host transfer.

I read about RDMA in the CUDA 5.0. How i can transfer the data from PCI to GPU memory using RDMA/GPUDirect.

Please help me in providing some samples for this.

OS I am using are Windows 7 64 bit and CentOS 64 bit CUDA SDK is 5.0 and GPU is Tesla K20

1
Basically by writing/modifying your own device driver for whatever PCI device you are using. The code required to use GPUDirect runs in kernel space, not user space. - talonmies
But if i doesn't have the source code of PCI device driver, how can i achieve this.? - Sijo
You can't. Your PCI-e device must have a driver which uses specific NVIDIA kernel space APIs in order to register pinned memory with the GPU driver and activate the GPUDirect data path. If your device drvier is closed source, then you need to speak to the vendor about adding GPUdirect support. - talonmies

1 Answers

2
votes

RDMA for GPUDirect is a feature introduced in Kepler-class GPUs and CUDA 5.0 that enables a direct path for communication between the GPU and a peer device using standard features of PCI Express.
The devices must share the same upstream root complex.
A few straightforward changes must be made to device drivers to enable this functionality.

Please see the NVIDIA Documentation regarding RDMA for GPUDirect for details.