如何测量cudaMalloc执行时间

时间:2019-11-12 03:00:58

标签: c++ cuda

如何使用cuda事件测量cudaMalloc的执行时间? 我可以通过事件来测量内核时间和cudaMemcpy时间,但不适用于cudaMalloc。使用下面的代码,我得到了3.104e-06秒的执行时间(这是错误的)。使用Nvidia Nsight Compute,我得到0.109秒。

cudaEventRecord(startCuda);
cudaMalloc(&devMatrix, allocSize);
cudaEventRecord(stopCuda);
cudaEventSynchronize(stopCuda);
cudaEventElapsedTime(&timeCudaMalloc, startCuda, stopCuda);

1 个答案:

答案 0 :(得分:0)

尝试使用std :: chrono :: high_resolution_clock使用cpu时钟来测量相同的事物:http://www.cplusplus.com/reference/chrono/high_resolution_clock/now/

此外,我对Nvidia Nsight Compute并不熟悉,但这是否可能会增加调试代码的开销?

最后,cudaMalloc的执行时间是高度可变的,因此不要期望结果一致。