ROCmSoftwarePlatform / Rocfft

Licence: mit
Next generation FFT implementation for ROCm

Labels

Projects that are alternatives of or similar to Rocfft

Audio Spectrum Analyzer In Python
A series of Jupyter notebooks and python files which stream audio from a microphone using pyaudio, then processes it.
Stars: ✭ 273 (+264%)
Mutual labels:  fft
Surge
A Swift library that uses the Accelerate framework to provide high-performance functions for matrix math, digital signal processing, and image manipulation.
Stars: ✭ 4,945 (+6493.33%)
Mutual labels:  fft
Fpga Fft
A highly optimized streaming FFT core based on Bailey's 4-step large FFT algorithm
Stars: ✭ 45 (-40%)
Mutual labels:  fft
Sleef
SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT
Stars: ✭ 353 (+370.67%)
Mutual labels:  fft
Realtime pyaudio fft
Realtime audio analysis in Python, using PyAudio and Numpy to extract and visualize FFT features from streaming audio.
Stars: ✭ 515 (+586.67%)
Mutual labels:  fft
Qspectrumanalyzer
Spectrum analyzer for multiple SDR platforms (PyQtGraph based GUI for soapy_power, hackrf_sweep, rtl_power, rx_power and other backends)
Stars: ✭ 677 (+802.67%)
Mutual labels:  fft
intfftk
Fully pipelined Integer Scaled / Unscaled Radix-2 Forward/Inverse Fast Fourier Transform (FFT) IP-core for newest Xilinx FPGAs (Source language - VHDL / Verilog). GNU GPL 3.0.
Stars: ✭ 43 (-42.67%)
Mutual labels:  fft
Fountain Of Colors
Music visualizer for Rainmeter
Stars: ✭ 65 (-13.33%)
Mutual labels:  fft
Ffsubsync
Automagically synchronize subtitles with video.
Stars: ✭ 5,167 (+6789.33%)
Mutual labels:  fft
Kfr
Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Stars: ✭ 985 (+1213.33%)
Mutual labels:  fft
Competitive Programming Repository
Competitive Programming templates that I used during the past few years.
Stars: ✭ 367 (+389.33%)
Mutual labels:  fft
Dsp Theory
Theory of digital signal processing (DSP): signals, filtration (IIR, FIR, CIC, MAF), transforms (FFT, DFT, Hilbert, Z-transform) etc.
Stars: ✭ 437 (+482.67%)
Mutual labels:  fft
Ffmpeg
Mirror of https://git.ffmpeg.org/ffmpeg.git
Stars: ✭ 27,382 (+36409.33%)
Mutual labels:  fft
Pitch Detection
collection of O(NlogN) pitch detection implementations
Stars: ✭ 335 (+346.67%)
Mutual labels:  fft
Eulerian Remote Heartrate Detection
Remote heart rate detection through Eulerian magnification of face videos
Stars: ✭ 48 (-36%)
Mutual labels:  fft
GooseFFT
Micro mechanical computations with an FFT-based method
Stars: ✭ 21 (-72%)
Mutual labels:  fft
Vkfft
Vulkan Fast Fourier Transform library
Stars: ✭ 594 (+692%)
Mutual labels:  fft
Awesome Web Audio
A list of resources and projects to help learn about audio
Stars: ✭ 73 (-2.67%)
Mutual labels:  fft
Low Latency Android Ios Linux Windows Tvos Macos Interactive Audio Platform
🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers.
Stars: ✭ 1,121 (+1394.67%)
Mutual labels:  fft
Kiss Fft
A compact FFT library in C with an Android JNI wrapper
Stars: ✭ 27 (-64%)
Mutual labels:  fft

rocFFT

rocFFT is a software library for computing Fast Fourier Transforms (FFT) written in HIP. It is part of AMD's software ecosystem based on ROCm. In addition to AMD GPU devices, the library can also be compiled with the CUDA compiler using HIP tools for running on Nvidia GPU devices.

Installing pre-built packages

Download pre-built packages either from ROCm's package servers or by clicking the github releases tab and downloading the source, which could be more recent than the pre-build packages. Release notes are available for each release on the releases tab.

  • sudo apt update && sudo apt install rocfft

Building from source

rocFFT is compiled with hipcc and uses cmake. There are a number of options that can be provided to cmake to customize the build, but the following commands will build a shared library for supported AMD GPUs:

mkdir build && cd build
cmake -DCMAKE_CXX_COMPILER=hipcc .. 
make -j

A static library can be compiled by using the option -DBUILD_SHARED_LIBS=off

To use the hip-clang compiler, one must specify -DUSE_HIP_CLANG=ON -DHIP_COMPILER=clang to cmake.

One can use nvcc as a backend compiler by passing the option -DUSE_CUDA=yes and setting HIP_PLATFORM=nvcc in your environment.

There are several clients included with rocFFT:

  1. rocfft-rider runs general transforms and is useful for performance analysis;
  2. rocfft-test runs various regression tests;
  3. rocfft-selftest runs various unit tests; and
  4. various small samples are included.

Clients are not built by default. To build them:

Client CMake option Dependencies
rocfft-rider -DBUILD_CLIENTS_RIDER=on Boost program options
rocfft-test -DBUILD_CLIENTS_TESTS=on Boost program options, FFTW, Google Test
rocfft-selftest -DBUILD_CLIENTS_SELFTEST=on Google Test
samples -DBUILD_CLIENTS_SAMPLES=on Boost program options, FFTW

To build all of the above clients, use -DBUILD_CLIENTS_ALL=on.

To install the client depencencies on Ubuntu, run sudo apt install libgtest-dev libfftw3-dev libboost-program-options-dev. We use version 1.10 of Google Test (gtest).

install.sh is a bash script that will install dependencies on certain Linux distributions, such as Ubuntu, CentOS, RHEL, Fedora, and SLES and invoke cmake. However, the preferred method for compiling rocFFT is to call cmake directly.

Library and API Documentation

Please refer to the library documentation for current documentation.

Examples

Examples may be found in the clients/samples subdirectory.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].