版本发布说明¶
本节包含重大变更、新增功能、性能改进以及各类问题。除非特别说明,所列问题不应影响功能。若确实影响功能,我们将提供规避该问题的临时解决方案(如有)。
1.2.1¶
MathDx 24.08版本的小幅更新。
所有设备扩展库都打包在一个名为nvidia-mathdx-24.08.0.tar.gz的单一软件包中。
cuFFTDx现在对CUTLASS库存在间接依赖。更多信息请参阅安装指南。
1.2.0¶
cuFFTDx 更新扩展了 R2C/C2R 功能。
新功能¶
新增了RealFFTOptions Operator,包含两个调节选项:
complex_layout允许为实数到复数以及复数到实数的变换更改复数数值布局。real_mode引入了优化模式,为实数到复数和复数到实数的变换提供高达2倍的性能提升,并允许处理两倍长度的序列。
针对每种精度和架构扩展了两倍的线程范围(例如,SM<900>现在可以执行最多64点线程FFT,而非之前的32点)。
为
make_workspace函数添加了一个可选的stream参数,该参数接收一个CUDA流。新增了输入/输出特性(例如 输入长度特性)
在新线程中,
input_type和output_type特性已重新定义用途。详情请参阅Traits。
示例 更新
更新了所有输入/输出以遵循新的基于特征的简化惯用法。
更新了实转复和复转实的示例,以利用新的RealFFTOptions Operator。
引入了
convolution_padded和mixed_precision示例。
文档改进:
添加了关于共享内存对齐要求的缺失信息。
更新文档以遵循新的基于特性的输入/输出惯用法。
新增了本版本引入功能的描述:RealFFTOptions Operator、新的
make_workspace重载方法、新增支持的尺寸范围。在示例章节中新增了填充卷积与cuFFT以及非填充cuFFTDx的性能对比。
已解决的问题¶
为线程本地数组中的输入数据添加了缺失的复数到实数块FFT获取同步。
1.1.1¶
cuFFTDx补丁更新以适配cuBLASDx EA 0.1.0版本发布。
新功能¶
新增了2D和3D FFT示例。
cuFFTDx 现在依赖于 commonDx 头文件。commonDx 包含所有 Dx 库使用的私有工具和类型。
已解决的问题¶
默认情况下,在
execute()方法中禁用了运行时CUDA块维度断言(使用assert())。 在之前的版本中,仅当定义了NDEBUG(由CMake在Release模式下定义) 或CUFFTDX_DISABLE_RUNTIME_ASSERTS,或者通过NVRTC进行编译时才会禁用断言。 保留断言可能会导致性能下降。 现在,用户需要定义CUFFTDX_ENABLE_RUNTIME_ASSERTS来启用它们。
1.1.0¶
cuFFTDx库的首个版本发布,支持Hopper和Ada架构。
新功能¶
初步支持Orin架构(SM87)。
初步支持Ada架构(SM89)。
初步支持Hopper架构(SM90)。
添加了对MSVC的初步支持。
文档改进:
示例章节,
快速安装指南章节,
关于cuFFTDx中共享内存使用的信息,以及
更新介绍章节:使用cuFFTDx实现首个FFT 和 您的下一个自定义FFT内核。
已知问题¶
使用MSVC作为CUDA主机编译器进行编译时,需要启用
__cplusplus(/Zc:__cplusplus)。 为此,请将-Xcompiler "/Zc:__cplusplus"作为选项传递给NVCC (NVCC: Options for Passing Specific Phase Options)。使用MSVC作为CUDA主机编译器进行编译时,请注意对修饰名称长度的限制以及其他编译器限制,在极端情况下可能导致调用涉及cuFFTDx的内核模板的错误实例。
1.0.0¶
cuFFTDx库的首个正式发布(GA)版本。
新功能¶
新增了用于块FFT执行的共享API,参见块执行方法。
新增并记录了FFT::stride。
针对SM80(面向A100)和SM70(面向V100)优化了默认的ElementsPerThread和FFTsPerBlock值。
恢复了cuFFTDx中2的幂次方内核的完整性能。
已解决的问题¶
ptxas警告program uses 32-bit address on line XXX which is conflicting with .address_size 64不应该再出现了。