【发布时间】:2013-06-06 22:12:04
【问题描述】:
有什么方法可以从 PCI 设备写入 CUDA 设备内存。该 PCI 设备正在以非常快的速度记录数据。因此,为了获得最大性能,我想将数据直接复制到 GPU 内存中,以便通过主机传输进行处理。
我在 CUDA 5.0 中了解了 RDMA。我如何使用 RDMA/GPUDirect 将数据从 PCI 传输到 GPU 内存。
请帮助我为此提供一些示例。
我使用的操作系统是 Windows 7 64 位和 CentOS 64 位 CUDA SDK是5.0,GPU是Tesla K20
【问题讨论】:
-
基本上是通过为您使用的任何 PCI 设备编写/修改您自己的设备驱动程序。使用 GPUDirect 所需的代码运行在内核空间,而不是用户空间。
-
但是如果我没有PCI设备驱动的源代码,我该如何实现呢?
-
你不能。您的 PCI-e 设备必须具有使用特定 NVIDIA 内核空间 API 的驱动程序,以便向 GPU 驱动程序注册固定内存并激活 GPUDirect 数据路径。如果您的设备驱动程序是闭源的,那么您需要与供应商讨论添加 GPUdirect 支持。
标签: linux windows cuda gpgpu pci