2013-06-24 73 views
7

我在主机代码中使用cuFFT库调用,他们工作正常,但我想从内核调用cuFFT库。早期版本的CUDA没有这种支持,但动态并行是可能的?是否可以在设备函数中调用cufft库调用?

如果有任何关于如何实现这个功能的例子,那将会很棒。

+1

[有没有可以在CUDA内核中运行的FFT方法?](http://stackoverflow.com/questions/ 11587160/is-there-a-method-of-fft-that-run-inside-cuda-kernel) –

+0

@PavanYalamanchili:我问,因为它更多是因为动态并行性现在支持cuda 5(链接你指的是一岁)。无论如何感谢信息。我刚刚注册了nvidia开发人员专区,并有新版本出来cuda 5.5通过发布说明,并找不到与设备可调用库函数有关的任何东西。:( –

回答

6

尽管在开普勒(cc 3.5)卡上引入了动态并行性,cuFFT仍然是一个主机API,目前还没有办法在使用cuFFT的设备代码中创建或执行FFT操作。

+0

感谢您的信息..是否有任何其他第三第三方FFT库移植到CUDA?这允许这? –

0

没有办法从GPU内核调用API。你必须从主持人打电话给他们。如果你想在没有从DEVICE - > HOST - > DEVICE传递的情况下运行FFT来继续你的阐述,唯一的解决方案是编写一个在设备函数中执行FFT的内核。实际上,我这样做是因为我需要并行运行更多的FFT,而不必将数据传递给主机。如果您发现/有其他解决方案,请告诉我。网上有很多关于如何实现这个功能的例子: - https://hackage.haskell.org/package/pure-fft-0.2.0/docs/Numeric-FFT.html

+0

我没有找到任何其他解决方案。我正在实施的算法有一个替代解决问题的方法,所以我们使用它并完全避免了这个设备的FFT问题。已将答案留作问题的评论。 –

相关问题