Project

General

Profile

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

http://git.osmocom.org/gr-fosphor/

== 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 https://github.com/glfw/glfw
cd glfw
mkdir build
cd build
cmake ../ -DBUILD_SHARED_LIBS=true
make
sudo make install
sudo ldconfig
}}}

=== gr-fosphor

Install dependencies

==== For NVidia

* install [http://www.nvidia.com/object/unix.html NVidia drivers]

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

==== For AMD

* install [http://support.amd.com/en-us/download AMD drivers] (13.4, 13.11 beta6 and 13.12 drivers are known to work on linux)
* install [http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/ 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://git.osmocom.org/gr-fosphor
cd gr-fosphor
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig
}}}

Build benchmark tool

{{{
cd gr-fosphor/lib/fosphor
make
}}}

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/libOpenCL.so}}} )
* 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/libamdocl64.so osmocom_fft -F}}} (path may vary). C++ flowgraphs are not affected.


== Screenshots

=== Short video examples

http://www.youtube.com/watch?v=mjD-l3GAghU

{{{
#!html
<iframe width="960" height="720" src="http://www.youtube.com/embed/mjD-l3GAghU" frameborder="0" allowfullscreen></iframe>
}}}

=== osmocom_fft in fosphor mode
[[Image(GrOsmoSDR:fosphor.png)]]

[[Image(GrOsmoSDR:fosphor2.png)]]

== 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
make
}}}

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'''||
||?||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)