版本发布说明

本节包含重大变更、新增功能、性能改进以及各类问题。除非特别说明,所列问题不应影响功能。若确实影响功能,我们将提供规避该问题的临时解决方案(如有)。

1.2.1

MathDx 24.08版本的小幅更新。

1.2.0

cuFFTDx 更新扩展了 R2C/C2R 功能。

新功能

  • 新增了RealFFTOptions Operator,包含两个调节选项:

    • complex_layout 允许为实数到复数以及复数到实数的变换更改复数数值布局。

    • real_mode 引入了优化模式,为实数到复数和复数到实数的变换提供高达2倍的性能提升,并允许处理两倍长度的序列。

  • 针对每种精度和架构扩展了两倍的线程范围(例如,SM<900>现在可以执行最多64点线程FFT,而非之前的32点)。

  • make_workspace函数添加了一个可选的stream参数,该参数接收一个CUDA流。

  • 新增了输入/输出特性(例如 输入长度特性

    • 在新线程中,input_typeoutput_type特性已重新定义用途。详情请参阅Traits

  • 示例 更新

    • 更新了所有输入/输出以遵循新的基于特征的简化惯用法。

    • 更新了实转复和复转实的示例,以利用新的RealFFTOptions Operator

    • 引入了convolution_paddedmixed_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架构。

新功能

已知问题

  • 使用MSVC作为CUDA主机编译器进行编译时,需要启用__cplusplus (/Zc:__cplusplus)。 为此,请将-Xcompiler "/Zc:__cplusplus"作为选项传递给NVCC (NVCC: Options for Passing Specific Phase Options)。

  • 使用MSVC作为CUDA主机编译器进行编译时,请注意对修饰名称长度的限制以及其他编译器限制,在极端情况下可能导致调用涉及cuFFTDx的内核模板的错误实例。

1.0.0

cuFFTDx库的首个正式发布(GA)版本。

新功能

已解决的问题

  • ptxas 警告 program uses 32-bit address on line XXX which is conflicting with .address_size 64 不应该再出现了。

0.3.1

cuFFTDx库的最后一个早期访问(EA)版本。

已知问题

  • ptxas 关于指针大小冲突的警告:

    ptxas warning : Program uses 32-bit address on line 'XXX' which is conflicting with .address_size 64
    

    此警告可能在编译时出现,但不会影响功能或性能。