快速安装指南¶
cuFFTDx库作为MathDx软件包的一部分发布。要下载包含cuFFTDx的最新版MathDx软件包,请访问https://developer.nvidia.com/cufftdx-downloads网站。
注意
MathDx 包还包含 cuBLASDx 库,提供选定的线性代数函数,如通用矩阵乘法 (GEMM)。这两个库设计为协同工作。当在单个项目中使用多个设备扩展库时,它们都应来自同一 MathDx 版本。
在您的项目中使用cuFFTDx¶
cuFFTDx是一个仅包含头文件的库,因此用户只需在编译命令中包含cufftdx.hpp和commonDx目录即可使用。所有其他要求都列在Requirements部分中。最简单的方法是使用MathDx包含目录:
nvcc -std=c++17 -arch sm_XY (...) -I<mathdx_include_dir> <your_source_file>.cu -o <your_binary>
当您将MathDx YY.MM软件包解压到<your_directory>目录时,cufftdx.hpp文件将出现在以下位置:
<your_directory>/nvidia/mathdx/yy.mm/include/<your_directory>/nvidia/mathdx/yy.mm/include/cufftdx/include/
commonDx 头文件将在以下位置提供:
<your_directory>/nvidia/mathdx/yy.mm/include/
您可以查看随cuFFTDx示例附带的Makefile,了解它们的编译方式。
注意
自1.2.1版本起,cuFFTDx间接依赖于CUTLASS库。
如果未使用其他Dx库,可以通过定义CUFFTDX_DISABLE_CUTLASS_DEPENDENCY宏来禁用此依赖。
若在使用其他Dx库时定义CUFFTDX_DISABLE_CUTLASS_DEPENDENCY可能导致编译错误。
在您的CMake项目中使用cuFFTDx¶
MathDx包提供了配置文件,可简化在其他CMake项目中使用cuFFTDx的过程。通过find_package找到mathdx后,用户需要将mathdx::cufftdx链接到他们的目标。这会自动传递包含目录cufftdx_INCLUDE_DIRS、依赖项mathdx::commondx以及C++17要求到他们的目标项目中。
find_package(mathdx REQUIRED COMPONENTS cufftdx CONFIG)
target_link_libraries(YourProgram mathdx::cufftdx)
您可以通过PATHS选项指定MathDx包的路径:
find_package(mathdx REQUIRED COMPONENTS cufftdx CONFIG PATHS "<your_directory>/nvidia/mathdx/yy.mm/")
或者,您可以在项目的cmake配置过程中设置mathdx_ROOT:
cmake -Dmathdx_ROOT="<your_directory>/nvidia/mathdx/yy.mm/" (...)
注意
自1.2.1版本起,cuFFTDx间接依赖于CUTLASS库。
如果未使用其他Dx库,可以通过在find_package(...)之前添加set(mathdx_cufftdx_DISABLE_CUTLASS TRUE)来禁用此依赖项。
如果在使用其他Dx库时禁用CUTLASS依赖项,可能会导致编译错误。
已定义的变量¶
mathdx_cufftdx_FOUND,cufftdx_FOUND如果找到cuFFTDx则为True。
cufftdx_INCLUDE_DIRScuFFTDx 包含目录。
mathdx_INCLUDE_DIRSMathDx 包含目录。
mathdx_cutlass_INCLUDE_DIRCUTLASS包含目录。
mathdx_VERSIONMathDx包的版本号,格式为
X.Y.Z。cuFFTDx_VERSIONcuFFTDx版本号,格式为
X.Y.Z。MathDx/cuFFTDx 版本矩阵
MathDx
cuFFTDx
22.02
1.0.0
22.11
1.1.0
24.01
1.1.1
24.04
1.2.0
24.08
1.2.1