我想改进 MPI-CPU 节点和单个 GPU 之间的“数据传输”算法。
对于 NUMPROCS 节点,每个 MPI 节点都有一个 Ntot/NUMPROCESS float4 的一维数组。
我的算法很简单:
1) 将一维数组 (MPI_GATHER) 聚集在主节点上的一个大数组 (大小 Ntot) 中。
2) 使用主节点,通过 cudaMemcpy 函数将大数组发送到 GPU。CUDA 内核与主节点一起启动。
是否可以避免第一步?我的意思是,每个 MPI 节点通过 cudaMemcpy 发送其数组,并且连接直接在 GPU 的内存上完成。