cudaDeviceSynchronize非常慢

时间:2014-07-31 08:13:22

标签: visual-studio-2012 cuda

我必须在后续CPU主机代码中使用CUDA内核函数的结果,所以在内核函数下面,我正在调用cudaDeviceSynchronize()。然后执行变得非常慢,因此使用内核函数节省的时间已经消失。

最初使用CUDA内核将执行时间减少到100ms以下,但cudaDeviceSynchronize()需要150ms。这让我想知道在这种情况下使用CUDA是否合理。请澄清我是否错了。

1 个答案:

答案 0 :(得分:3)

cudaDeviceSynchronize()将一直等到内核完成,因此内核的性能更可能很慢,而同步只是等待内核完成。您应该使用Visual Profiler对代码进行概要分析,以确定它是否真的是您的内核需要花费时间。分析器还应该帮助您理解为什么内核速度慢并进行优化。