Fosphor » History » Version 50

« Previous - Version 50/62 (diff) - Next » - Current version
horiz0n, 02/19/2016 10:50 PM

= gr-fosphor

GNU Radio block for RTSA-like spectrum visualization using GPU


Warning: Mixed prefix install is not supported. You need to install gr-fosphor in the same prefix as your GNU Radio install. If you used build-gnuradio this will be /usr/local and this is what's used in the instructions below. If you use a packaged version of GNU Radio, it's most likely /usr and the best way is then to make a package for gr-fosphor for your distribution.


Install dependencies

sudo apt-get install cmake xorg-dev libglu1-mesa-dev

Build GLFW

git clone
cd glfw
mkdir build
cd build
cmake ../ -DBUILD_SHARED_LIBS=true
sudo make install
sudo ldconfig

=== gr-fosphor

Install dependencies

==== For NVidia

sudo apt-get install nvidia-opencl-dev opencl-headers

==== For AMD

==== For Intel

  • No OpenCL support on Linux for HD and Iris Graphics (Wake up, Intel!).
  • Fosphor has been confirmed to work with Iris graphics on OSX.

Build gr-fosphor

git clone git://
cd gr-fosphor
mkdir build
cd build
cmake ..
sudo make install
sudo ldconfig

Build benchmark tool

cd gr-fosphor/lib/fosphor

Fosphor is known to build successfully on Linux, OSX and Windows.

==== Known issues

  • Some version of ubuntu (like 13.10) have screwed up OpenCL dev files setup and it might be required to manually specify a path to the actual OpenCL library during the cmake step ( like {{{-DOPENCL_LIBRARY=/usr/lib/nvidia-304/}}} )
  • When running python flowgraphs on machines with AMD graphics (fglrx driver) and UHD enabled in gr-osmosdr you may experience the following error {{{[!] CL Error (-1001, fosphor/cl.c:268): Unable to fetch platform IDs}}}. This is due to TLS sections in both, AMD OpenCL library and UHD library interfering with each other. A workaround is available through preloading the AMD OpenCL library {{{LD_PRELOAD=/usr/lib/x86_64-linux-gnu/ osmocom_fft -F}}} (path may vary). C++ flowgraphs are not affected.
Screenshots = Short video examples

<iframe width="960" height="720" src="" frameborder="0" allowfullscreen></iframe>

=== osmocom_fft in fosphor mode


== Bandwidth figures

There's a benchmark program available which allows to estimate the maximal bandwidth that can be processed with a specific GPU.

To build it:

cd gr-fosphor/lib/fosphor

Then execute it by providing a prerecorded complex float file (a couple of 100MB should be fine) in gnuradio format.

./main some.cfile

Try to leave the window to its default size if possible and watch out for the Msps numbers printed out to the console.

Submit your numbers & help us to create a GPU survey. We are especially interested in the top end and mobile graphics figures.

'''CPU''' '''GPU''' '''Msps'''
? NVidia Titan WANTED
i7-4770K 3.5 GHz NVidia !GeForce GTX 760 ~228
? AMD Radeon HD 7970 (Tahiti) ~220
i5-3570K 3.4 GHz AMD Radeon HD 7870 (Tahiti) ~220
i7-3770K 3.4 GHz Nvidia GTX 660 ~202
i7-3770K 3.4 Ghz Nvidia GTX 760 ~191
i7-4770K 3.5 GHz Nvidia GTX 650 Ti Boost ~188
i5-2500 3.3 GHz NVidia GTX 460 SE ~129
i5-3570K 3.4GHz AMD Radeon HD 7870 (Pitcairn) ~112
i5-2500 3.3GHz NVidia GTX 550 Ti ~110
i5-2500k 3.8GHz AMD Radeon HD 6850 ~100
? NVidia GTX 550 Ti ~97
QC Xeon 2 GHz Nvidia !GeForce 560 Ti ~73
C2D 2.66 GHz NVidia !GeForce GT 640 (GK107) ~67
i5 2.4 GHz Intel Iris Pro 5100 ~65
i7-3610QM NVidia !GeForce GT 640M LE ~63
i7-950 3.06 GHz NVidia GT9800 ~61
i5-2500K 4.2 GHz AMD Radeon HD 6570 ~58
C2D 3.00GHz NVidia !GeForce 9800 GT ~47
i5-2520M 2.5 GHz NVidia GF119M ~46
C2D 2.4GHz NVidia 9600M GT ~31
? NVidia GT330M ~22
? NVidia 8600GT ~15
C2D 2.2GHz NVidia NVS 140M ~14
AMD E350 Fusion APU AMD Radeon 6310 ~12
C2Q Q9650 3.00GHz !GeForce 9300 GE ~11
Atom 330 NVidia ION ~10
Add picture from clipboard (Maximum size: 48.8 MB)