python/2_CoreConcepts/fftSignalAnalysis/README.md
Analyze signal frequencies using Fast Fourier Transform (FFT) on the GPU. This sample demonstrates CuPy's cuFFT for GPU-accelerated frequency analysis: generating composite signals, computing magnitude spectrum, detecting dominant frequencies via peak detection, and comparing GPU vs CPU FFT performance.
cp.fft.rfft() for real-to-complex FFT on GPU|FFT(signal)| * 2 / N gives amplitude at each frequencyThis sample demonstrates CuPy integration with cuda.core streams:
# Create stream with cuda.core
stream = device.create_stream()
# Use with CuPy operations
cp.cuda.Stream.from_external(stream).use()
cuda.core:Device - Device management and contextEventOptions - Configure events for GPU timingstream.record() - Record events for timingcp.fft.rfft() - Real-to-complex FFT (GPU-accelerated via cuFFT)cp.fft.rfftfreq() - Generate frequency bins for rfftcp.cuda.Stream.from_external() - Interop with cuda.core streamsnp.fft.rfft() - CPU FFT for comparisonrequirements.txt for Python packagespip install -r requirements.txt
python fftSignalAnalysis.py
============================================================
FFT Signal Analysis
============================================================
Device: <Your GPU>
Compute Capability: sm_XX
Signal Parameters:
Samples: 1,048,576
Sample Rate: 44,100 Hz
...
------------------------------------------------------------
GPU FFT (cuFFT)
------------------------------------------------------------
Time: X.XXX ms
Detected Frequencies:
440.0 Hz (magnitude: X.XXXX)
...
------------------------------------------------------------
CPU FFT (NumPy)
------------------------------------------------------------
Time: XX.XXX ms
------------------------------------------------------------
PERFORMANCE SUMMARY
------------------------------------------------------------
GPU (cuFFT): X.XXX ms
CPU (NumPy): XX.XXX ms
Speedup: XXx
------------------------------------------------------------
VERIFICATION
------------------------------------------------------------
GPU vs CPU FFT magnitude: Test PASSED
Frequency Detection Accuracy:
440 Hz: [OK]
...
Done
Note: Times and speedup vary by hardware.
fftSignalAnalysis.py - Main sample using cuda.core and CuPyREADME.md - This filerequirements.txt - Dependencies