【问题标题】:Why cufftPlanMany() takes too long?为什么 cufftPlanMany() 需要太长时间?
【发布时间】:2015-12-16 03:50:44
【问题描述】:

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

【问题讨论】:

  • cufft 库有一个与之关联的初始化时间。这就是你正在经历的。 this answer 可能感兴趣。我认为你无法避免它。
  • 你是对的。我在询问避免这种初始化惩罚的任何方法。我尝试在开始时使用小参数对 cufftPlanMany() 进行虚拟调用。它没有帮助!!!。
  • 或者是否有任何库不受这种初始化损失的影响,并提供良好的处理性能?

标签: cuda gpu cufft


【解决方案1】:

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

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

【讨论】:

  • 非常感谢您的回答。实际上,与非 GPU 实现相比,我想实现更大的加速。这种初始化开销显着降低了我获得的整体加速。
  • 谢谢你们。如果您知道,能否提供您期望的 FFT 初始化性能改进的版本?
  • 我需要准确检查哪些版本有问题。 r8.0 在 0.25 秒内为我初始化,你也看到了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
  • 2011-04-22
  • 1970-01-01
  • 2012-08-31
相关资源
最近更新 更多