Fosphor » History » Version 47

Version 46 (sylvain, 02/19/2016 10:50 PM) → Version 47/62 (horiz0n, 02/19/2016 10:50 PM)

= gr-fosphor

GNU Radio block for RTSA-like spectrum visualization using GPU

== Building

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.

=== GLFW3

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

* install [ NVidia drivers]

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

==== For AMD

* install [ AMD drivers] (13.4, 13.11 beta6 and 13.12 drivers are known to work on linux)
* install [ AMD APP SDK]

==== 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.

||?||AMD R290(X)||WANTED||
||?||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-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-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)