我有一个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
图形处理器C2075
CUDA 4.2
MPICH2 1.4.1p1
发布于 2013-04-02 11:15:23
正如pQB所说,MPI定时器和CUDA定时器之间的测量差异是由启动CUDA事件的开销引起的。我已经在有/没有CUDA事件的情况下进行了实验。结果与语句匹配。
更新:正如talonmies所说,额外的时间是CUDA上下文初始化所需的时间。在linux中,通过使用nvidia-smi -pm 1启用持久化模式,可以减少额外的时间。
https://stackoverflow.com/questions/15736619
复制相似问题