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.
All Device Extensions libraries are bundled together in a single package named nvidia-mathdx-24.08.0.tar.gz.
cuFFTDx now has an indirect dependency on CUTLASS library. See Installation Guide for more information.
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 tomake_workspace
functions taking a CUDA stream.Added new input/output traits (e.g. Input Length Trait)
Among new threads the
input_type
andoutput_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
andmixed_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()
) inexecute()
methods by default. In previous versions they are disabled only whenNDEBUG
(defined by CMake inRelease
mode) orCUFFTDX_DISABLE_RUNTIME_ASSERTS
are defined, or when compilation is done by NVRTC. Keeping assertions could result in performance penalty. Now, user has to defineCUFFTDX_ENABLE_RUNTIME_ASSERTS
to enable them.
1.1.0¶
The first release of cuFFTDx library with support for Hopper and Ada architectures.
New Features¶
Initial support for Orin architecture (SM87).
Initial support for Ada architecture (SM89).
Initial support for Hopper architecture (SM90).
Added cufftdx::is_supported.
Added preliminary support for MSVC.
Improvements to the documentation:
Examples chapter,
Quick Installation Guide chapter,
information about shared memory usage in cuFFTDx, and
updated introduction chapters: First FFT Using cuFFTDx and Your Next Custom FFT Kernels.
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¶
Added new shared API for block FFT execution, see block execution methods.
Added and documented FFT::stride.
Optimized default ElementsPerThread and FFTsPerBlock values for SM80 (targeting A100) and SM70 (targeting V100).
Restored full performance of powers-of-two kernels in cuFFTDx.
Resolved Issues¶
ptxas
warningprogram 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.