Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多gpu cuda:在一台设备上运行内核,在另一台设备上修改元素?_Cuda_Gpu - Fatal编程技术网

多gpu cuda:在一台设备上运行内核,在另一台设备上修改元素?

多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缓冲区 简短回答:是的,你可以 链接的演示文稿提供了全部

假设我在一台机器中有多个GPU,并且我有一个运行在GPU0上的内核

有了CUDA 4.0的UVA和P2P功能,当内核在GPU0上运行时,我可以修改另一台设备(比如GPU1)上的数组内容吗

CUDA 4.0 SDK中的simpleP2P示例没有演示这一点

它只表明:

  • 点对点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上的全局内存?