NVIDIA GPU的快速傅立叶变换
cuFFT库提供GPU加速的FFT实现,其执行速度比仅CPU的替代方案快10倍。cuFFT用于构建跨学科的商业和研究应用程序,例如深度学习,计算机视觉,计算物理,分子动力学,量子化学以及地震和医学成像。使用cuFFT,应用程序会自动受益于常规性能的改进和新的GPU架构。cuFFT库包含在NVIDIA HPC SDK和CUDA Toolkit中。
cuFFT设备扩展
cuFFT设备扩展(cuFFTDx)允许应用程序将FFT内联到用户内核中。与cuFFT主机API相比,这极大地提高了性能,并允许与应用程序操作融合。cuFFTDx当前是CUDA数学库早期访问计划的一部分。
cuFFT性能
cuFFT库针对NVIDIA GPU的性能进行了高度优化。请注意,第二张图表将16个Volta GV100 GPU的性能与8个新的GA100 Ampere Architecture GPU的性能进行了比较。
cuFFT的主要功能
- 复杂和真实数据类型的1D,2D,3D转换
- 支持多达16个GPU系统
- 多GPU C2C,R2C和C2R支持
- 类似于FFTW高级接口的熟悉的API
- 灵活的数据布局允许在单个元素和数组维度之间任意跨越
- 流式异步执行
- 半精度,单精度和双精度转换
- 批量执行
- In-place and out-of-place transforms转换
- 线程安全且可从多个主机线程调用