0

我有一个 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

4

1 回答 1

0

正如 pQB 所述,MPI 定时器和 CUDA 定时器之间的测量差异是由启动 CUDA 事件的开销引起的。我已经进行了有/没有 CUDA 事件的实验。结果与陈述相符。

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

于 2013-04-02T03:15:22.693 回答