MPI计时器和CUDA计时器之间的区别

时间:2013-04-01 01:50:52

标签: timer cuda mpi

我有一个MPI程序,它将调用CUDA函数。我用MPI定时器和CUDA定时器测量CUDA功能的运行时间。但是,MPI定时器的测量值比使用CUDA定时器的测量值大2秒。我想知道为什么会这样。

MPI计划的结构如下:

 int main(){
MPI initiation

Start timing with MPI_Wtime 

Call CUDA function

End timing with MPI_Wtime 

MPI finalization

}

CUDA功能的结构如下:

void CUDA_fun(){

Start CUDA timer event 

Call global function

End CUDA timer event

}

Linux x86_64

GPU C2075

CUDA 4.2

MPICH2 1.4.1p1

1 个答案:

答案 0 :(得分:0)

正如pQB所述,MPI定时器和CUDA定时器之间的测量差异是由启动CUDA事件的开销引起的。我进行了有/无CUDA事件的实验。结果与声明匹配。

更新:正如talonmies所说,额外的时间是CUDA上下文初始化所需的时间。在linux中,通过使用nvidia-smi -pm 1启用持久性模式,可以减少额外的时间。