Release Notes

This section includes significant changes, new features, performance improvements, and various issues. Unless noted, listed issues should not impact functionality. When functionality is impacted, we offer a work-around to avoid the issue (if available).

1.2.1

Minor update for MathDx 24.08 release.

1.2.0

cuFFTDx update extending R2C/C2R capabilities.

New Features

  • Added RealFFTOptions Operator with two knobs:

    • complex_layout allows for changing complex value layouts for both real-to-complex and complex-to-real transforms.

    • real_mode introduces optimized mode, providing up to 2x performance boosts for real-to-complex and complex-to-real transforms and allowing for twice as long sequences.

  • Extended thread range twofold for each precision and architecture (e.g. SM<900> can now execute up to 64-point thread FFTs instead of 32-point).

  • Added an optional stream parameter to make_workspace functions taking a CUDA stream.

  • Added new input/output traits (e.g. Input Length Trait)

    • Among new threads the input_type and output_type traits have been repurposed from previous use. Please refer to Traits for further detail.

  • Examples updates

    • Updated all input/output to follow the new simplified trait-based idiom.

    • Updated real-to-complex and complex-to-real examples to utilize the new RealFFTOptions Operator.

    • Introduced convolution_padded and mixed_precision examples.

  • Improvements to the documentation:

    • Added missing information regarding memory alignment requirements for shared memory.

    • Updated the documentation to follow the new trait-based input/output idiom.

    • Added description of features introduced in this release: RealFFTOptions Operator, new make_workspace overloads, new supported size ranges.

    • Added padded convolution performance comparison with cuFFT and non-padded cuFFTDx to the examples chapter.

Resolved Issues

  • Added missing acquire synchronization for complex-to-real block FFTs when input data is in thread local arrays.

1.1.1

cuFFTDx patch update to accommodate cuBLASDx EA 0.1.0 release.

New Features

  • Added 2D and 3D FFT examples.

  • cuFFTDx now depends on commonDx headers. commonDx includes private tools and types that all Dx libraries use.

Resolved Issues

  • Disabled runtime CUDA block dimensions assertions (using assert()) in execute() methods by default. In previous versions they are disabled only when NDEBUG (defined by CMake in Release mode) or CUFFTDX_DISABLE_RUNTIME_ASSERTS are defined, or when compilation is done by NVRTC. Keeping assertions could result in performance penalty. Now, user has to define CUFFTDX_ENABLE_RUNTIME_ASSERTS to enable them.

1.1.0

The first release of cuFFTDx library with support for Hopper and Ada architectures.

New Features

Known Issues

  • Compiling using MSVC as CUDA host compiler requires enabling __cplusplus (/Zc:__cplusplus). In order to do so, pass -Xcompiler "/Zc:__cplusplus" as an option to NVCC (NVCC: Options for Passing Specific Phase Options).

  • When compiling using MSVC as CUDA host compiler please be aware of the limit on the length of mangled names and other compiler limits which in extreme cases can result in calling incorrect instances of kernel templates involving cuFFTDx.

1.0.0

The first general availability (GA) release of cuFFTDx library.

New Features

Resolved Issues

  • ptxas warning program uses 32-bit address on line XXX which is conflicting with .address_size 64 shouldn’t appear anymore.

0.3.1

The last early access (EA) release of cuFFTDx library.

Known Issues

  • ptxas warning about pointer size conflict:

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

    This warning may appear when compiling, but it does not impact functionality or performance.