Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi All:
I installed UHD 4.0 and GRC 3.9 on a Raspberry Pi 4B following the procedure at:
https://wiki.gnuradio.org/index.php/InstallingGRFromSource_on_Raspberry_Pi
However I did not specify DNEON_SIMD_ENABLE=OFF in the command cmake -DNEON_SIMD_ENABLE=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../
while building UHD.
I also set the CPU Governor and Thread Priority Scheduling according to:
https://kb.ettus.com/USRP_Host_Performance_Tuning_Tips_and_Tricks
Testing USRP Source->Frequency Sink in GRC at 4 MSPS with a B205mini on a headless RPI (X forwarding to
a NUC7i7BNH PC) over USB3 shows an update rate (spectrum refresh rate on the display) of once per second and at 10 MSPS freezes.
Running benchmark_rate at 20 MSPS will cause ERROR_CODE_TIMEOUT messages.
I also overclocked the RPi4B to 2.2 GHz with the same result.
Any suggestions to get higher sampling rates with the RPi4B-B205mini setup?
Thanks.
Arthur
On 09/29/2020 08:00 PM, Arthur Lobo via USRP-users wrote:
Hi All:
I installed UHD 4.0 and GRC 3.9 on a Raspberry Pi 4B following the
procedure at:
https://wiki.gnuradio.org/index.php/InstallingGRFromSource_on_Raspberry_Pi
However I did not specify DNEON_SIMD_ENABLE=OFF in the command cmake
-DNEON_SIMD_ENABLE=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../
while building UHD.
I also set the CPU Governor and Thread Priority Scheduling according to:
https://kb.ettus.com/USRP_Host_Performance_Tuning_Tips_and_Tricks
Testing USRP Source->Frequency Sink in GRC at 4 MSPS with a B205mini
on a headless RPI (X forwarding to
a NUC7i7BNH PC) over USB3 shows an update rate (spectrum refresh rate
on the display) of once per second and at 10 MSPS freezes.
Running benchmark_rate at 20 MSPS will cause ERROR_CODE_TIMEOUT messages.
I also overclocked the RPi4B to 2.2 GHz with the same result.
Any suggestions to get higher sampling rates with the RPi4B-B205mini
setup?
Thanks.
Arthur
You could try adding:
num_recv_frames=128
to your device arguments in the USRP source.
But also, "headless" display over ethernet is often a serious bottleneck.
What happens if you just use "uhd_fft" rather than your own flow-graph?
What does "benchmark_rate" have to say about how fast you can actually
move samples into the RPI4?
Just for comparison, I can easily do 10 Msps with a Beagleboard X-15 and
B210. Also, benchmark_rate works fine at 20 Msps. This is without Thread
Priority Scheduling.
I'm also using X forwarding (with a wired 1 Gbps Ethernet connection).
The GUI Frequency Sink is sending 120 Mbps over the network.
Some items I'm using.
Device Address.
cmake -DCMAKE_CXX_FLAGS:STRING="-march=armv7ve -mfloat-abi=hard
-mfpu=neon-vfpv4 -mtune=cortex-a15 -Wno-psabi"
-DCMAKE_C_FLAGS:STRING="-march=armv7ve -mfloat-abi=hard -mfpu=neon-vfpv4
-mtune=cortex-a15 -Wno-psabi" -DCMAKE_ASM_FLAGS:STRING="-march=armv7ve
-mfloat-abi=hard -mfpu=neon-vfpv4 -mtune=cortex-a15 -g" ../
You could try some other options for the Pi4, especially if you're using
a 64-bit OS.
-march=armv8-a or -march=native
-mtune=cortex-a72
-mfpu=neon-fp-armv8
Unfortunately, I don't have a Pi4 test these options with.
Ron
On 9/29/20 17:00, Arthur Lobo via USRP-users wrote:
Hi All:
I installed UHD 4.0 and GRC 3.9 on a Raspberry Pi 4B following the
procedure at:
https://wiki.gnuradio.org/index.php/InstallingGRFromSource_on_Raspberry_Pi
However I did not specify DNEON_SIMD_ENABLE=OFF in the command cmake
-DNEON_SIMD_ENABLE=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../
while building UHD.
I also set the CPU Governor and Thread Priority Scheduling according to:
https://kb.ettus.com/USRP_Host_Performance_Tuning_Tips_and_Tricks
Testing USRP Source->Frequency Sink in GRC at 4 MSPS with a B205mini
on a headless RPI (X forwarding to
a NUC7i7BNH PC) over USB3 shows an update rate (spectrum refresh rate
on the display) of once per second and at 10 MSPS freezes.
Running benchmark_rate at 20 MSPS will cause ERROR_CODE_TIMEOUT messages.
I also overclocked the RPi4B to 2.2 GHz with the same result.
Any suggestions to get higher sampling rates with the RPi4B-B205mini
setup?
Thanks.
Arthur
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Hi Marcus/Ron:
I built gcc 10.1 from source with the following compiler options in the .cmake file:
set(CMAKE_CXX_FLAGS "-march=armv8-a -mtune=cortex-a72" CACHE STRING "" FORCE)
(Ref "New Major Release of GCC" https://www.raspberrypi.org/forums/viewtopic.php?t=273441)
The other options "-mfpu=neon-fp-armv8 -mfloat-abi=hard" are not taken.
Benchmark_rate now runs at 30 MSPS for 900 sec (output as follows):
[INFO] [UHD] linux; GNU C++ version 10.1.0; Boost_107100; UHD_4.0.0.HEAD-0-g90ce6062
[00:00:00.022222] Creating the usrp device with: ...
[INFO] [B200] Detected Device: B205mini
[INFO] [B200] Operating over USB 3.
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Setting master clock rate selection to 'automatic'.
[INFO] [B200] Asking for clock rate 16.000000 MHz...
[INFO] [B200] Actually got clock rate 16.000000 MHz.
Using Device: Single USRP:
Device: B-Series Device
Mboard 0: B205mini
RX Channel: 0
RX DSP: 0
RX Dboard: A
RX Subdev: FE-RX1
TX Channel: 0
TX DSP: 0
TX Dboard: A
TX Subdev: FE-TX1
[00:00:01.927367201] Setting device timestamp to 0...
[INFO] [B200] Asking for clock rate 30.000000 MHz...
[INFO] [B200] Actually got clock rate 30.000000 MHz.
[00:00:02.244691822] Testing receive rate 30.000000 Msps on 1 channels
[00:15:02.295329970] Benchmark complete.
Benchmark rate summary:
Num received samples: 27001584054
Num dropped samples: 0
Num overruns detected: 0
Num transmitted samples: 0
Num sequence errors (Tx): 0
Num sequence errors (Rx): 0
Num underruns detected: 0
Num late commands: 0
Num timeouts (Tx): 0
Num timeouts (Rx): 0
Done!
real 15m2.837s
user 3m35.016s
sys 10m32.291s
Benchmark_rate at 40 MSPS still causes ERROR_CODE_TIMEOUT messages after ~1 min 15 sec.
With Device Arguments set to "recv_frame_size=16360,num_recv_frames=128" and
Realtime Scheduling turned on in the Options Block, the GRC block approach with
Qt GUI Frequency Sink runs upto 40 MSPS with a 1024-point FFT spectrum display refresh rate of ~1 per sec with wireless X forwarding.
Connecting a monitor instead of X forwarding allows upto 35 MSPS (complex int16) with combined Qt GUI Frequency Sink and waterfall
and an update rate of ~3 per sec.
uhd_fft freezes at 8 MSPS.
Thanks.
Arthur
From: USRP-users usrp-users-bounces@lists.ettus.com on behalf of Ron Economos via USRP-users usrp-users@lists.ettus.com
Sent: Wednesday, September 30, 2020 5:23 AM
To: usrp-users@lists.ettus.com usrp-users@lists.ettus.com
Subject: Re: [USRP-users] Raspberry Pi 4B and B205mini
Just for comparison, I can easily do 10 Msps with a Beagleboard X-15 and B210. Also, benchmark_rate works fine at 20 Msps. This is without Thread Priority Scheduling.
I'm also using X forwarding (with a wired 1 Gbps Ethernet connection). The GUI Frequency Sink is sending 120 Mbps over the network.
Some items I'm using.
Device Address.
cmake -DCMAKE_CXX_FLAGS:STRING="-march=armv7ve -mfloat-abi=hard -mfpu=neon-vfpv4 -mtune=cortex-a15 -Wno-psabi" -DCMAKE_C_FLAGS:STRING="-march=armv7ve -mfloat-abi=hard -mfpu=neon-vfpv4 -mtune=cortex-a15 -Wno-psabi" -DCMAKE_ASM_FLAGS:STRING="-march=armv7ve -mfloat-abi=hard -mfpu=neon-vfpv4 -mtune=cortex-a15 -g" ../
You could try some other options for the Pi4, especially if you're using a 64-bit OS.
-march=armv8-a or -march=native
-mtune=cortex-a72
-mfpu=neon-fp-armv8
Unfortunately, I don't have a Pi4 test these options with.
Ron
On 9/29/20 17:00, Arthur Lobo via USRP-users wrote:
Hi All:
I installed UHD 4.0 and GRC 3.9 on a Raspberry Pi 4B following the procedure at:
https://wiki.gnuradio.org/index.php/InstallingGRFromSource_on_Raspberry_Pi
However I did not specify DNEON_SIMD_ENABLE=OFF in the command cmake -DNEON_SIMD_ENABLE=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../
while building UHD.
I also set the CPU Governor and Thread Priority Scheduling according to:
https://kb.ettus.com/USRP_Host_Performance_Tuning_Tips_and_Tricks
Testing USRP Source->Frequency Sink in GRC at 4 MSPS with a B205mini on a headless RPI (X forwarding to
a NUC7i7BNH PC) over USB3 shows an update rate (spectrum refresh rate on the display) of once per second and at 10 MSPS freezes.
Running benchmark_rate at 20 MSPS will cause ERROR_CODE_TIMEOUT messages.
I also overclocked the RPi4B to 2.2 GHz with the same result.
Any suggestions to get higher sampling rates with the RPi4B-B205mini setup?
Thanks.
Arthur
USRP-users mailing list
USRP-users@lists.ettus.commailto:USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com