如何测量cudaMalloc执行时间

How to measure cudaMalloc execution time

本文关键字:cudaMalloc 执行时间 测量 何测量      更新时间:2023-10-16

如何使用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);

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

此外,我不熟悉Nvidia Nsight Compute,但它会增加调试代码的开销吗?

最后,cudaMalloc的执行时间是高度可变的,所以不要期望得到一致的结果。