多gpu cuda:在一台设备上运行内核,在另一台设备上修改元素?
假设我在一台机器中有多个GPU,并且我有一个运行在GPU0上的内核 有了CUDA 4.0的UVA和P2P功能,当内核在GPU0上运行时,我可以修改另一台设备(比如GPU1)上的数组内容吗 CUDA 4.0 SDK中的simpleP2P示例没有演示这一点 它只表明:多gpu cuda:在一台设备上运行内核,在另一台设备上修改元素?,cuda,gpu,Cuda,Gpu,假设我在一台机器中有多个GPU,并且我有一个运行在GPU0上的内核 有了CUDA 4.0的UVA和P2P功能,当内核在GPU0上运行时,我可以修改另一台设备(比如GPU1)上的数组内容吗 CUDA 4.0 SDK中的simpleP2P示例没有演示这一点 它只表明: 点对点memcopies 在GPU0上运行的内核,从GPU1缓冲区读取输入,并将输出写入GPU0缓冲区 在GPU1上运行的内核,从GPU0缓冲区读取输入,并将输出写入GPU1缓冲区 简短回答:是的,你可以 链接的演示文稿提供了全部
- 点对点memcopies
- 在GPU0上运行的内核,从GPU1缓冲区读取输入,并将输出写入GPU0缓冲区
- 在GPU1上运行的内核,从GPU0缓冲区读取输入,并将输出写入GPU1缓冲区
- 必须在64位操作系统(Linux或带有特斯拉计算群集驱动程序的Windows)上
- GPU必须具有2.0(sm_20)或更高的计算能力
- 目前,GPU必须连接到同一设备
- 简短回答:是的,你可以
链接的演示文稿提供了全部细节,但以下是要求:
您可以使用
cudaDeviceCanAccessPeer()
查询是否可以直接进行P2P访问。简短回答:可以
链接的演示文稿提供了全部细节,但以下是要求:
- 必须在64位操作系统(Linux或带有特斯拉计算群集驱动程序的Windows)上
- GPU必须具有2.0(sm_20)或更高的计算能力
- 目前,GPU必须连接到同一设备
您可以使用
cudaDeviceCanAccessPeer()
查询是否可以直接进行P2P访问。您是否试图询问一个GPU上的内核是否可以通过UVA和P2P写入物理上位于不同GPU上的全局内存?您是否试图询问一个GPU上的内核是否可以通过UVA和P2P写入物理上位于不同GPU上的全局内存?