【发布时间】:2015-06-12 15:44:18
【问题描述】:
我目前正在编写一个 CUDA 应用程序,但遇到了一些 IO 问题“喂养野兽”。
我想知道是否有任何方法可以直接从 RAID 控制器或 NIC 读取数据并将该数据直接发送到 GPU。我想要完成的内容直接显示在以下演示文稿的第 3 张幻灯片上:http://developer.download.nvidia.com/devzone/devcenter/cuda/docs/GPUDirect_Technology_Overview.pdf。
话虽如此,显然这已经在这里得到了回答:Is it possible to access hard disk directly from gpu?,但是我附上的演示文稿让我相信我所需要的只是在 Linux 中设置一个环境变量(但它没有提供任何有用的代码 sn-ps/示例)。
因此,我想知道是否可以将数据直接从 NIC/RAID 控制器读取到 GPU 中,这样做需要什么?我需要为硬件编写自己的驱动程序吗?有没有避免某些副本的例子?
提前感谢您的帮助。
【问题讨论】:
-
据我了解,您需要一个支持 GPUdirect 的 RDMA 功能的 NIC、RAID 控制器或 SSD 驱动程序。自己滚动可能非常简单。作为第一步,您可能需要联系您的 NIC、RAID 控制器或 SSD 的供应商,询问他们是否提供或计划为其产品提供支持 GPUdirect 的驱动程序。除非您的 NIC、RAID 控制器或 SSD 具有非常高的吞吐量,或者您有严格的延迟要求,否则直接从/向 GPU 移动数据不太可能购买大量性能; I/O 本身将成为限制因素。