快速安装指南

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_DIRS

cuFFTDx 包含目录。

mathdx_INCLUDE_DIRS

MathDx 包含目录。

mathdx_cutlass_INCLUDE_DIR

CUTLASS包含目录。

mathdx_VERSION

MathDx包的版本号,格式为X.Y.Z

cuFFTDx_VERSION

cuFFTDx版本号,格式为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