在我工作期间,我发现了一个小问题。现在我使用MVAPICH-GDR-2.05和Open MPI 1.7.4和CUDA 6.0。
我正在努力在GPU之间交换不连续的元素(比如矩阵的列),我正在尝试运行两个内核(一个用于分散,一个用于收集)和一个与{{1的通信同时在两个GPU之间。
我已经使用CUDA探查器(nvprof)来查看我的程序正在做什么,而且我看到了奇怪的事情:
MPI_Sendrecv
并不与它们同时发生。你知道为什么MVAPICH中的MPI_Sendrecv
会这样做吗?
这是我的伪代码:
MPI_Sendrecv
这是两个分析器的屏幕截图: