Project

General

Profile

Fosphor » History » Version 48

sylvain, 02/19/2016 10:50 PM

1 1 sylvain
= gr-fosphor
2 1 sylvain
3 1 sylvain
GNU Radio block for RTSA-like spectrum visualization using GPU
4 1 sylvain
5 1 sylvain
http://git.osmocom.org/gr-fosphor/
6 2 sylvain
7 21 horiz0n
== Building
8 21 horiz0n
9 40 sylvain
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.
10 40 sylvain
11 21 horiz0n
=== GLFW3
12 21 horiz0n
13 21 horiz0n
Install dependencies
14 21 horiz0n
15 21 horiz0n
{{{
16 24 horiz0n
sudo apt-get install cmake xorg-dev libglu1-mesa-dev
17 24 horiz0n
}}}
18 24 horiz0n
19 21 horiz0n
Build GLFW
20 21 horiz0n
21 21 horiz0n
{{{
22 21 horiz0n
git clone https://github.com/glfw/glfw
23 21 horiz0n
cd glfw
24 21 horiz0n
mkdir build
25 21 horiz0n
cd build
26 21 horiz0n
cmake ../ -DBUILD_SHARED_LIBS=true
27 21 horiz0n
make
28 1 sylvain
sudo make install
29 1 sylvain
sudo ldconfig
30 21 horiz0n
}}}
31 1 sylvain
32 1 sylvain
=== gr-fosphor
33 1 sylvain
34 25 horiz0n
Install dependencies
35 25 horiz0n
36 26 horiz0n
==== For NVidia
37 25 horiz0n
38 25 horiz0n
 * install [http://www.nvidia.com/object/unix.html NVidia drivers]
39 1 sylvain
40 25 horiz0n
{{{
41 25 horiz0n
sudo apt-get install nvidia-opencl-dev opencl-headers
42 25 horiz0n
}}}
43 25 horiz0n
44 26 horiz0n
==== For AMD
45 25 horiz0n
46 45 horiz0n
 * 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)
47 25 horiz0n
 * install [http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/ AMD APP SDK]
48 25 horiz0n
49 33 horiz0n
==== For Intel
50 33 horiz0n
51 47 horiz0n
 * No OpenCL support on Linux for HD and Iris Graphics (Wake up, Intel!).
52 47 horiz0n
 * Fosphor has been confirmed to work with Iris graphics on OSX.
53 33 horiz0n
54 25 horiz0n
Build gr-fosphor
55 25 horiz0n
56 25 horiz0n
{{{
57 21 horiz0n
git clone git://git.osmocom.org/gr-fosphor
58 21 horiz0n
cd gr-fosphor
59 21 horiz0n
mkdir build
60 21 horiz0n
cd build
61 37 sylvain
cmake ..
62 21 horiz0n
make
63 21 horiz0n
sudo make install
64 21 horiz0n
sudo ldconfig
65 21 horiz0n
}}}
66 21 horiz0n
67 1 sylvain
Build benchmark tool
68 1 sylvain
69 21 horiz0n
{{{
70 21 horiz0n
cd gr-fosphor/lib/fosphor
71 21 horiz0n
make
72 21 horiz0n
}}}
73 25 horiz0n
74 25 horiz0n
Fosphor is known to build successfully on Linux, OSX and Windows.
75 21 horiz0n
76 46 sylvain
==== Known issues
77 46 sylvain
78 1 sylvain
 * 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}}} )
79 47 horiz0n
 * 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.
80 46 sylvain
81 2 sylvain
== Screenshots
82 2 sylvain
83 15 sylvain
=== Short video examples
84 15 sylvain
85 15 sylvain
http://www.youtube.com/watch?v=mjD-l3GAghU
86 15 sylvain
87 15 sylvain
{{{
88 15 sylvain
#!html
89 15 sylvain
<iframe width="960" height="720" src="http://www.youtube.com/embed/mjD-l3GAghU" frameborder="0" allowfullscreen></iframe>
90 15 sylvain
}}}
91 15 sylvain
92 15 sylvain
93 2 sylvain
=== osmocom_fft in fosphor mode
94 2 sylvain
[[Image(GrOsmoSDR:fosphor.png)]]
95 2 sylvain
96 2 sylvain
[[Image(GrOsmoSDR:fosphor2.png)]]
97 3 horiz0n
98 3 horiz0n
== Bandwidth figures
99 3 horiz0n
100 3 horiz0n
There's a benchmark program available which allows to estimate the maximal bandwidth that can be processed with a specific GPU.
101 3 horiz0n
102 3 horiz0n
To build it:
103 3 horiz0n
104 3 horiz0n
{{{
105 3 horiz0n
cd gr-fosphor/lib/fosphor
106 3 horiz0n
make
107 3 horiz0n
}}}
108 3 horiz0n
109 3 horiz0n
Then execute it by providing a prerecorded complex float file (a couple of 100MB should be fine) in gnuradio format.
110 3 horiz0n
111 3 horiz0n
{{{
112 3 horiz0n
./main some.cfile
113 3 horiz0n
}}}
114 3 horiz0n
115 14 horiz0n
Try to leave the window to its default size if possible and watch out for the Msps numbers printed out to the console.
116 14 horiz0n
117 14 horiz0n
Submit your numbers & help us to create a GPU survey. We are especially interested in the top end and mobile graphics figures.
118 3 horiz0n
119 8 sylvain
||'''CPU'''||'''GPU'''||'''Msps'''||
120 31 horiz0n
||?||AMD R290(X)||WANTED||
121 8 sylvain
||?||NVidia Titan||WANTED||
122 42 horiz0n
||i7-4770K 3.5 GHz||NVidia !GeForce GTX 760||~228||
123 1 sylvain
||?||AMD Radeon HD 7970 (Tahiti)||~220||
124 41 horiz0n
||i5-3570K 3.4 GHz||AMD Radeon HD 7870 (Tahiti)||~220||
125 40 sylvain
||i7-3770K 3.4 GHz||Nvidia GTX 660||~202||
126 40 sylvain
||i7-3770K 3.4 Ghz||Nvidia GTX 760||~191||
127 39 ttsou
||i7-4770K 3.5 GHz||Nvidia GTX 650 Ti Boost||~188||
128 48 sylvain
||i5-2500 3.3 GHz||NVidia ~GeForce GTX 460 SE||~129||
129 28 horiz0n
||i5-3570K 3.4GHz||AMD Radeon HD 7870 (Pitcairn)||~112||
130 29 horiz0n
||i5-2500 3.3GHz||NVidia GTX 550 Ti||~110||
131 28 horiz0n
||i5-2500k 3.8GHz||AMD Radeon HD 6850||~100||
132 1 sylvain
||?||NVidia GTX 550 Ti||~97||
133 28 horiz0n
||QC Xeon 2 GHz||Nvidia !GeForce 560 Ti||~73||
134 42 horiz0n
||C2D 2.66 GHz||NVidia !GeForce GT 640 (GK107)||~67||
135 44 sylvain
||i5 2.4 GHz||Intel Iris Pro 5100||~65||
136 48 sylvain
||i7-3610QM||NVidia !GeForce GT 640M LE||~63||
137 42 horiz0n
||i7-950 3.06 GHz||NVidia GT9800||~61||
138 42 horiz0n
||i5-2500K 4.2 GHz||AMD Radeon HD 6570||~58||
139 30 horiz0n
||C2D 3.00GHz||NVidia !GeForce 9800 GT||~47||
140 43 sylvain
||i5-2520M 2.5 GHz||NVidia GF119M||~46||
141 28 horiz0n
||C2D 2.4GHz||NVidia 9600M GT||~31||
142 28 horiz0n
||?||NVidia GT330M||~22||
143 28 horiz0n
||?||NVidia 8600GT||~15||
144 28 horiz0n
||C2D 2.2GHz||NVidia NVS 140M||~14||
145 1 sylvain
||AMD E350 Fusion APU||AMD Radeon 6310||~12||
146 37 sylvain
||C2Q Q9650 3.00GHz||!GeForce 9300 GE||~11||
147 28 horiz0n
||Atom 330||NVidia ION||~10||
Add picture from clipboard (Maximum size: 48.8 MB)