如何测量 cudaMalloc 执行时间

金属鲑鱼

如何使用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 的执行时间变化很大,所以不要期望一致的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章