NVIDIA cuFFTDx文档笔记
https://docs.nvidia.com/cuda/cufftdx/
cuFFTDx 库能够在 CUDA 内核中执行快速傅里叶变换 (FFT) 计算。将 FFT 与其他运算融合可以降低延迟并提升应用程序的性能。
cuFFTDx是 MathDx 包的一部分,其中还包括 cuBLASDx库提供选定的线性代数函数,如通用矩阵乘法 (GEMM)。
cuFFTDx 库提供:
- 快速傅里叶变换 (FFT) CUDA 函数可嵌入到 CUDA 内核中。
- 高性能,无需从全局内存移动数据。
- 可定制性,可根据不同需求(大小、精度、批次数等)调整 FFT 例程的选择。
- 能够将 FFT 内核与其他操作融合,以节省全局内存行程。
- 与 CUDA 工具包未来版本的兼容性。
要求:
- CUDA 工具包 11.0 或更高版本
- 支持的 CUDA 编译器
- 支持的主机编译器(需要 C++17)
- (可选)CMake(3.26 或更高版本)
- CPU 架构 :x86_64 或 aarch64。
- 支持的 NVIDIA GPU 架构 :SM70(Volta)至 SM90(Hopper),但目前已弃用的 SM72 除外。
创建块描述符(block descriptors),用于在单个 CUDA 块中运行集体 FFT 运算(由一个或多个线程协作计算一个或多个 FFT)。
创建线程描述符(thread descriptors),每个线程运行单个 FFT 运算。此函数可能需要更多 cuFFTDx 专业知识才能获得更高性能的正确结果。
双向信息流,从用户通过操作符到描述符,再从描述符通过特征到用户。
使用 SM 运算符针对特定的 GPU 架构。这使用户能够使用建议的参数配置描述符,以实现目标性能。