GPU_FFT available for the Raspberry Pi


Message boards : Unix/Linux : GPU_FFT available for the Raspberry Pi

Message board moderation

To post messages, you must log in.
AuthorMessage
MarkJ
Avatar

Send message
Joined: 27 Jun 12
Posts: 129
Credit: 62,716,206
RAC: 98
Message 2531 - Posted: 16 Feb 2014, 12:53:37 UTC
Not sure if Kyong could get some use out of this or not (depends if the app uses FFT and if its single precision). Anyway thought I'd post about it and maybe Kyong could look into using it.

GPU_FFT is an FFT library for the Raspberry Pi which exploits the BCM2835 SoC V3D hardware to deliver ten times the performance that is possible on the 700 MHz ARM. Kernels are provided for all power-of-2 FFT lengths from 256 to 131,072 points inclusive.

GPU_FFT uses single-precision floating point for data and twiddle factors, so it does not compete on accuracy with double-precision libraries; however, the relative root-mean-square (rms) error for a 2048-point transform is less than one part per million, which is not bad.

The library runs on dedicated 3D hardware in the BCM2835 SoC, and communication between ARM and GPU adds 100µs of latency which is much longer than the shortest transform takes to compute! To overcome this, batches of transforms can be executed with a single call. Typical per-transform runtimes in microseconds are:

Points    batch=1    batch=10    batch=50    FFTW    Speedup 
256 112 22 16 92 5.8x 
512 125 37 26 217 8.3x 
1024 136 54 45 482 10.7x 
2048 180 107 93 952 10.2x 
4096 298 256 240 3002 12.5x 
8192 689 624 608 5082 8.4x 
16384 1274 1167 1131 12005 10.6x 
32768 3397 3225 3196 31211 9.8x 
65536 6978 6703 6674 82769 12.4x 
131072 16734 16110 16171 183731 11.4x 


To get GPU_FFT enter the following at the command prompt:

sudo rpi-update && sudo reboot

Link to article is here and a forum thread here
BOINC blog
ID: 2531 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote

Message boards : Unix/Linux : GPU_FFT available for the Raspberry Pi