3

如果我正在使用 CUDA 进行开发,那么我有机会使用 UVA(统一虚拟寻址)——所有 GPU 的 CPU-RAM 和 GPU-RAM 的单一地址空间。以前这是不可能的,它只出现在 CUDA 4.0 版本中。据我了解 - 它由 nVidia CUDA 驱动程序提供。 http://docs.nvidia.com/cuda/gpudirect-rdma/index.html#basics-of-uva-cuda-memory-management

但是,如果我想在通过 PCI-Express 2.0 16x 连接的单台计算机上使用 GPU 和 FPGA,并且还要让它们使用单​​个地址空间。FPGA中是否存在类似于nVidia UVA的这种可能性,我需要使用FPGA“UVA”,它们也不会干扰FPGA“UVA”与CUDA UVA?

如何做这样的事情?http://research.microsoft.com/pubs/172730/20120625%20UCAA2012_Bittner_Ruf_Final.pdf

在此处输入图像描述

4

1 回答 1

3

您已经找到了似乎可以回答您问题的 GPUDirect RDMA文档。

GPUDirect 的 RDMA 是 Kepler 级 GPU 和 CUDA 5.0 中引入的一项功能,它支持使用 PCI Express 的标准功能在 GPU 和对等设备之间进行通信的直接路径。

有了这个,主机可以启动 GPU 和对等设备之间的数据移动。UVA 意味着每个设备都有一个唯一的部分虚拟地址空间,但这并不意味着任何设备都可以访问另一个设备的内存,您仍然需要使用相应的 API。

请注意,在最简单的层面上,您所要求的只是一个统一的虚拟地址空间。CPU 和 GPU 已经统一了(UVA就是这样),因此它完全取决于您的 FPGA 的工作方式(包括它的驱动程序)。RDMA 部分是在两者之间移动数据的优化,但该文档通常对 UVA 很有用。

于 2013-09-03T21:16:59.023 回答