Cuda 为什么cufftPlanMany()花费的时间太长?

Cuda 为什么cufftPlanMany()花费的时间太长?,cuda,gpu,cufft,Cuda,Gpu,Cufft,第一次调用cufftPlanMany()时,大约需要0.7秒,但接下来的所有调用都很快。 知道如何加速第一次调用cufftPlanMany()吗?第一次调用cufftPlanMany会导致libcufft.so被加载。这反过来初始化cuda上下文(如果需要),并加载所有内核。根据库的大小,它总是需要一些时间。0.7秒有点过多,在下一版本的cuFFT中会减少。我们还减少了每个后续cufftPlan*函数的时间 为什么需要较短的初始化时间?cufft库有一个与之相关的初始化时间。这就是你正在经历的。

第一次调用cufftPlanMany()时,大约需要0.7秒,但接下来的所有调用都很快。
知道如何加速第一次调用cufftPlanMany()吗?

第一次调用cufftPlanMany会导致libcufft.so被加载。这反过来初始化cuda上下文(如果需要),并加载所有内核。根据库的大小,它总是需要一些时间。0.7秒有点过多,在下一版本的cuFFT中会减少。我们还减少了每个后续cufftPlan*函数的时间


为什么需要较短的初始化时间?

cufft库有一个与之相关的初始化时间。这就是你正在经历的。可能有兴趣。我认为你无法避免,你是对的。我在问有没有什么办法可以避免这样的惩罚。我尝试在开始时使用小参数进行一个伪调用,以cufftPlanMany()。没用!!!。或者有没有任何库不会受到这样的初始化惩罚,并提供良好的处理性能?非常感谢您的回答。实际上,与非GPU实现相比,我希望实现更大的加速。这个初始化开销大大降低了我得到的整体加速。谢谢你。如果你知道,你能提供你期望FFT初始化性能提高的版本吗?我需要准确地检查哪些版本有颠簸。r8.0在0.25秒内为我初始化,这也是您看到的吗?