使用CUDA或OpenCL在Python中进行多维FFT

4
我一直在浏览关于如何在我的图形卡上编写FFT程序的简单方法(我的显卡是最新支持CUDA 3.x的NVIDIA)。目前我能想到的选择是学习C和CUDA的特殊版本,或者使用一些Python的CUDA函数。但是我不想学习C,因为我只会高级语言。我研究了pyCUDA和其他使用Python来利用显卡的方式,但是我找不到任何可以与Python代码一起使用的FFT库。有一些库/项目似乎可以处理类似的项目(CUDAmat,Theano),但可惜没有FFT库。

是否存在一个函数可以像numpy.fft.fft2()一样使用我的图形卡?

编辑:如果有开源解决方案则加分。

2个回答

4

PyFFT,它是 开源的,并基于苹果公司(有些有限的) 实现。免责声明:我在PyFFT上工作 :)


我一有时间就会去查看! - PhilMacKay
1
您也可以查看reikna,它是一个正在开发中的GPGPU算法集合,包括略微改进的“pyfft”代码以及其他功能。 - fjarri

3

是的,ArrayFire有一个Python的2-D FFT

免责声明:我在ArrayFire工作。


哇!这看起来真的很不错,我肯定会试试。 我在问题中没有提到,但我所看到的这个库唯一的问题就是它不是开源的。我从天体物理特定语言转换到Python的主要原因是因为我可以在离开大学后继续使用它。 我将检查免费许可的限制,但它似乎是我在寻找的东西! - PhilMacKay
免费供单个GPU使用,http://www.accelereyes.com/products/arrayfire_licensing - arrayfire
ArrayFire 不再具有 Python 接口。 - PhilMacKay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接