如何使用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);发布于 2019-11-12 15:07:11
尝试使用std::chrono::high_resolution_clock使用cpu时钟来测量相同的东西:http://www.cplusplus.com/reference/chrono/high_resolution_clock/now/
此外,我不熟悉Nvidia Nsight Compute,但它会增加调试代码的开销吗?
最后,cudaMalloc的执行时间是高度可变的,所以不要期望得到一致的结果。
https://stackoverflow.com/questions/58811377
复制相似问题