如何用 CUDA 计算大矩阵的二维 FFT?
Posted
技术标签:
【中文标题】如何用 CUDA 计算大矩阵的二维 FFT?【英文标题】:How to calculate a two-dimensional FFT of a large matrix with CUDA? 【发布时间】:2021-04-12 20:05:45 【问题描述】:现在我有一个16K*16K的大矩阵,全局内存不够用,怎么计算矩阵的二维FFT?
【问题讨论】:
很可能你不能。有核外fft算法。我不知道有任何 GPU 实现。当然没有袖口 您应该能够在 3GB GPU(使用 CUFFT)上执行该大小的float
R2C 或 C2R 就地转换。 Here 是框架。我可以在 2GB GPU 上进行 15Kx15K 的转换。
【参考方案1】:
也许使用统一内存的超额订阅适用于 cuFFT?
https://developer.nvidia.com/blog/unified-memory-cuda-beginners/
您还可以分别对行和列进行 FFT,并在主机内存之间移动数据。
您需要完整的结果矩阵吗?你在 CPU 和 GPU 上有多少内存?输入/输出是复数值吗?您需要什么精度(16 位是否足够)?计算时间紧迫吗?您还想处理更大的矩阵吗?
【讨论】:
以上是关于如何用 CUDA 计算大矩阵的二维 FFT?的主要内容,如果未能解决你的问题,请参考以下文章