如何使用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);
答案 0 :(得分:0)
尝试使用std :: chrono :: high_resolution_clock使用cpu时钟来测量相同的事物:http://www.cplusplus.com/reference/chrono/high_resolution_clock/now/
此外,我对Nvidia Nsight Compute并不熟悉,但这是否可能会增加调试代码的开销?
最后,cudaMalloc的执行时间是高度可变的,因此不要期望结果一致。