{"id":4138,"library":"nvidia-cufft-cu11","title":"NVIDIA cuFFT (CUDA 11 variant)","description":"The `nvidia-cufft-cu11` package provides the native runtime libraries for NVIDIA's GPU-accelerated Fast Fourier Transform (FFT) library, specifically compiled for CUDA 11.x environments. It enables high-performance FFT computations directly on NVIDIA GPUs for various scientific and engineering applications, including deep learning, computer vision, and computational physics. This package is a low-level dependency providing the C/C++ binaries, and is typically used in conjunction with Python binding libraries like CuPy or nvmath-python. The current version is 10.9.0.58, with a relatively slow release cadence for this specific CUDA 11 variant, as newer CUDA versions often have their own packages (e.g., `nvidia-cufft-cu12`).","status":"active","version":"10.9.0.58","language":"en","source_language":"en","source_url":"https://developer.nvidia.com/cufft","tags":["CUDA","FFT","GPU","NVIDIA","scientific computing","numerical analysis","deep learning","signal processing"],"install":[{"cmd":"pip install nvidia-cufft-cu11","lang":"bash","label":"Install `nvidia-cufft-cu11`"}],"dependencies":[{"reason":"Provides the necessary CUDA runtime environment and driver compatibility for the native CUFFT libraries. This is an external system-level dependency.","package":"NVIDIA CUDA Toolkit (11.x)","optional":false},{"reason":"Common Python binding library to interact with CUDA and CUFFT functionalities from Python.","package":"CuPy","optional":true},{"reason":"NVIDIA's official Python bindings for CUDA-X math libraries, including cuFFT.","package":"nvmath-python","optional":true}],"imports":[{"note":"This package provides native C/C++ libraries; direct Python imports of `nvidia_cufft_cu11` will not expose CUFFT functionality. Use binding libraries like CuPy or nvmath-python instead.","wrong":"import nvidia_cufft_cu11","symbol":"cuFFT functionality via CuPy","correct":"import cupy as cp\ncp.fft.fft(...)"},{"note":"The `nvidia-cufft-cu11` package does not expose Python modules directly. Python bindings are typically provided by higher-level libraries like `nvmath-python`.","wrong":"from nvidia.cufft import fft","symbol":"cuFFT functionality via nvmath-python","correct":"from nvmath.fft import fft\nfft(...)"}],"quickstart":{"code":"import cupy as cp\nimport numpy as np\n\n# Ensure a CUDA-enabled GPU is available\nif not cp.cuda.is_available():\n    print(\"CUDA is not available. CuPy and cuFFT require a GPU.\")\n    exit()\n\n# Create a CuPy array on the GPU\nn = 1024\nx_gpu = cp.random.rand(n, dtype=cp.float32)\n\n# Perform a 1D FFT using CuPy (which uses cuFFT internally)\ny_gpu = cp.fft.fft(x_gpu)\n\n# Optionally, copy back to host and compare with NumPy\ny_cpu = cp.asnumpy(y_gpu)\nx_cpu = cp.asnumpy(x_gpu)\ny_numpy = np.fft.fft(x_cpu)\n\nprint(f\"Original GPU array type: {type(x_gpu)}\")\nprint(f\"FFT result GPU array type: {type(y_gpu)}\")\nprint(f\"First 5 elements of GPU FFT: {y_gpu[:5]}\")\nprint(f\"First 5 elements of NumPy FFT: {y_numpy[:5]}\")\nprint(f\"Max absolute difference between CuPy FFT and NumPy FFT: {cp.max(cp.abs(y_gpu - cp.asarray(y_numpy))):.6e}\")","lang":"python","description":"This quickstart demonstrates how to perform a 1D Fast Fourier Transform using `CuPy`, which internally leverages the `nvidia-cufft-cu11` native libraries. It creates a random array on the GPU, computes its FFT, and optionally compares the result with a NumPy FFT on the CPU. Ensure `cupy` is installed (`pip install cupy-cuda11x`)."},"warnings":[{"fix":"Ensure your installed NVIDIA CUDA Toolkit version (checked via `nvcc --version`) matches the `cu11` suffix. If using CUDA 12.x, consider installing `nvidia-cufft-cu12` instead. Update GPU drivers to be compatible with your CUDA Toolkit version.","message":"This `nvidia-cufft-cu11` package is specifically built for CUDA 11.x. Using it with an incompatible CUDA Toolkit version (e.g., CUDA 10.x or 12.x) or an older/newer GPU driver may lead to runtime errors or unexpected behavior due to ABI incompatibilities. Always match the `cuXX` suffix to your installed CUDA Toolkit version.","severity":"breaking","affected_versions":"All versions"},{"fix":"Install a Python binding library (e.g., `CuPy` or `nvmath-python`) and use its provided APIs to interact with the underlying cuFFT library.","message":"This package (`nvidia-cufft-cu11`) provides low-level C/C++ native runtime libraries and does not expose a direct Python API for FFT operations. Attempting to `import nvidia_cufft_cu11` or similar will not work. To use cuFFT from Python, you must install and use a Python binding library such as `CuPy` (`pip install cupy-cuda11x`) or `nvmath-python` (`pip install nvmath-python[cu11]`).","severity":"gotcha","affected_versions":"All versions"},{"fix":"Review NVIDIA cuFFT documentation for the latest guidance on callbacks. Consider alternative approaches or migration paths if your application heavily relies on this deprecated callback mechanism. Future versions might have an updated implementation.","message":"Support for cuFFT callback functionality using separately compiled device code was deprecated in CUDA 11.4 and later. While this package is for CUDA 11.x, advanced users relying on custom FFT callbacks might experience performance overheads or functional issues, as the implementation for callbacks was slated for an update to remove these. (CUFFT 10.9.0.58 is released October 3, 2022, after CUDA 11.4 was released, meaning this deprecation applies).","severity":"deprecated","affected_versions":"10.9.0.58 and potentially earlier CUDA 11.x based versions."},{"fix":"Review the NVIDIA Proprietary Software License linked from the PyPI page or NVIDIA developer website to understand its terms and restrictions.","message":"This library is distributed under an NVIDIA Proprietary Software License. Users should be aware of and comply with the terms and conditions of this license, which may differ significantly from open-source licenses.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-11T00:00:00.000Z","next_check":"2026-07-10T00:00:00.000Z"}