没有GPUDirect的cuda-mpi编程模型

时间:2013-09-20 17:46:50

标签: cuda mpi gpu gpgpu gpudirect

我正在使用没有GPUDirect支持的GPU群集。从此briefing开始,在跨节点传输GPU数据时完成以下操作:

  1. GPU写入固定的sysmem1
  2. CPU从sysmem1复制到sysmem2
  3. 来自sysmem2的Infiniband驱动程序副本
  4. 现在,当我使用MPI在Infiniband上传输sysmem1时,我不确定第二步是否是隐式步骤。假设这一点,我目前的编程模型是这样的:

    1. cudaMemcpy(hostmem,devicemem,size,cudaMemcpyDeviceToHost)。
    2. MPI_SEND(hostmem,...)
    3. 我的上述假设是否正确,我的编程模型是否会在不引起通信问题的情况下工作?

1 个答案:

答案 0 :(得分:3)

是的,您可以单独使用CUDA和MPI(即没有GPUDirect),就像您描述的那样。

  1. 将数据从设备移至主机
  2. 使用MPI
  3. 按照惯例传输数据

    您可能对this presentation感兴趣,它解释了CUDA感知的MPI,并在非​​cuda MPI和CUDA-MPI的幻灯片11上并排示例