Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FrequencyDiscriminatorBlock] Block runtime error: ./radio/core/pipe.lua:199: write(): Connection reset by peer #29

Closed
ghost opened this issue Jul 17, 2016 · 15 comments

Comments

@ghost
Copy link

ghost commented Jul 17, 2016

This is probably a basic user error, but I do not know enough to debug this myself (yet):
I installed fftw 3.3.4, the latest liquid-dsp, volk, and luajit from source. The hardware is a Odroid-XU4.

odroid@odroid:~/src/luaradio$ ./luaradio --platform
luajit          LuaJIT 2.0.4
os              Linux
arch            arm
page size       4096
cpu count       8
cpu model       ARMv7 Processor rev 3 (v7l)
features
    fftw3f      true
    volk        true
    liquid      true

odroid@odroid:~/src/luaradio$ ./luaradio examples/rtlsdr_wbfm_mono.lua 91.1e6
Found Rafael Micro R820T tuner
Exact sample rate is: 1102500.002464 Hz
[FrequencyDiscriminatorBlock] Block runtime error: ./radio/core/pipe.lua:199: write(): Connection reset by peer
stack traceback:
        [C]: in function 'error'
        ./radio/core/pipe.lua:199: in function 'platform_write'
        ./radio/core/pipe.lua:306: in function 'write'
        ./radio/core/block.lua:387: in function 'run'
        ./radio/core/composite.lua:554: in function <./radio/core/composite.lua:554>
        [C]: in function 'xpcall'
        ./radio/core/composite.lua:554: in function 'start'
        ./radio/core/composite.lua:451: in function 'run'
        examples/rtlsdr_wbfm_mono.lua:34: in main chunk
        [C]: in function 'dofile'
        ./luaradio:105: in main chunk
        [C]: at 0x00013721
odroid@odroid:~/src/luaradio$
@vsergeev
Copy link
Owner

vsergeev commented Jul 17, 2016

This error means that a downstream block of the FrequencyDiscriminatorBlock abruptly terminated (crashed). I've only seen it outside of development when a gnuplot plotting sink crashes -- which can happen in some setups, see #26.

Are you running this in a graphical environment, or over SSH with X11 forwarding enabled? Could you rerun the example with -v?

@vsergeev
Copy link
Owner

I've created a separate issue (#30) for improving the error message to be more useful.

@ghost
Copy link
Author

ghost commented Jul 18, 2016

I was using ssh with x11 forwarding to Xming, but I've never had a problem with that before, even gr-fosphor works!

But to eliminate that as the source of the problem I connected a screen and keyboard and ran luaradio directly from the an xterm on the Odroid-XU4, and the below is the output (I ran it 2x, the 2nd time I got one less error message) One window does pop up for half a second and vanishes before I can see what it's title is, and it did exactly the same over ssh+x11 forwarding+Xming

$ cat console.script.output
$ ./luaradio -v examples/rtlsdr_wbfm_mono.lua 91.1e6
[CompositeBlock] Connected output FrequencyTranslatorBlock.out to input LowpassFilterBlock.in
[CompositeBlock] Connected output LowpassFilterBlock.out to input DownsamplerBlock.in
[CompositeBlock] Aliased input TunerBlock.in to input FrequencyTranslatorBlock.in
[CompositeBlock] Aliased output TunerBlock.out to output DownsamplerBlock.out
[CompositeBlock] Connected output RtlSdrSource.out to input TunerBlock.in
[CompositeBlock] Connected output TunerBlock.out to input FrequencyDiscriminatorBlock.in
[CompositeBlock] Connected output FrequencyDiscriminatorBlock.out to input LowpassFilterBlock.in
[CompositeBlock] Connected output LowpassFilterBlock.out to input FMDeemphasisFilterBlock.in
[CompositeBlock] Connected output FMDeemphasisFilterBlock.out to input DownsamplerBlock.in
[CompositeBlock] Connected output DownsamplerBlock.out to input PulseAudioSink.in
[CompositeBlock] Connected output FrequencyDiscriminatorBlock.out to input GnuplotSpectrumSink.in
[CompositeBlock] Connected output FMDeemphasisFilterBlock.out to input GnuplotSpectrumSink.in
[CompositeBlock] Dependency order:
[CompositeBlock]        RtlSdrSource
[CompositeBlock]            .out   -> {FrequencyTranslatorBlock.in}
[CompositeBlock]        FrequencyTranslatorBlock
[CompositeBlock]            .in    <- {RtlSdrSource.out}
[CompositeBlock]            .out   -> {LowpassFilterBlock.in}
[CompositeBlock]        LowpassFilterBlock
[CompositeBlock]            .in    <- {FrequencyTranslatorBlock.out}
[CompositeBlock]            .out   -> {DownsamplerBlock.in}
[CompositeBlock]        DownsamplerBlock
[CompositeBlock]            .in    <- {LowpassFilterBlock.out}
[CompositeBlock]            .out   -> {FrequencyDiscriminatorBlock.in}
[CompositeBlock]        FrequencyDiscriminatorBlock
[CompositeBlock]            .in    <- {DownsamplerBlock.out}
[CompositeBlock]            .out   -> {LowpassFilterBlock.in, GnuplotSpectrumSink.in}
[CompositeBlock]        LowpassFilterBlock
[CompositeBlock]            .in    <- {FrequencyDiscriminatorBlock.out}
[CompositeBlock]            .out   -> {FMDeemphasisFilterBlock.in}
[CompositeBlock]        FMDeemphasisFilterBlock
[CompositeBlock]            .in    <- {LowpassFilterBlock.out}
[CompositeBlock]            .out   -> {DownsamplerBlock.in, GnuplotSpectrumSink.in}
[CompositeBlock]        GnuplotSpectrumSink
[CompositeBlock]            .in    <- {FrequencyDiscriminatorBlock.out}
[CompositeBlock]        DownsamplerBlock
[CompositeBlock]            .in    <- {FMDeemphasisFilterBlock.out}
[CompositeBlock]            .out   -> {PulseAudioSink.in}
[CompositeBlock]        PulseAudioSink
[CompositeBlock]            .in    <- {DownsamplerBlock.out}
[CompositeBlock]        GnuplotSpectrumSink
[CompositeBlock]            .in    <- {FMDeemphasisFilterBlock.out}
[CompositeBlock] Parent pid 26368
[CompositeBlock] Block RtlSdrSource pid 26373
[CompositeBlock] Block FrequencyTranslatorBlock pid 26374
[CompositeBlock] Block LowpassFilterBlock pid 26375
[CompositeBlock] Block FrequencyDiscriminatorBlock pid 26378
[CompositeBlock] Block DownsamplerBlock pid 26376
[CompositeBlock] Block LowpassFilterBlock pid 26379
[CompositeBlock] Block FMDeemphasisFilterBlock pid 26380
[CompositeBlock] Block GnuplotSpectrumSink pid 26381
[CompositeBlock] Block DownsamplerBlock pid 26382
[CompositeBlock] Block PulseAudioSink pid 26383
[CompositeBlock] Block GnuplotSpectrumSink pid 26384
Found Rafael Micro R820T tuner
[RtlSdrSource] Frequency: 88250000 Hz, Sample rate: 1102500 Hz
Exact sample rate is: 1102500.002464 Hz
[FrequencyDiscriminatorBlock] Block runtime error: ./radio/core/pipe.lua:199: write(): Connection reset by peer
stack traceback:
        [C]: in function 'error'
        ./radio/core/pipe.lua:199: in function 'platform_write'
        ./radio/core/pipe.lua:306: in function 'write'
        ./radio/core/block.lua:387: in function 'run'
        ./radio/core/composite.lua:554: in function <./radio/core/composite.lua:554>
        [C]: in function 'xpcall'
        ./radio/core/composite.lua:554: in function 'start'
        ./radio/core/composite.lua:451: in function 'run'
        examples/rtlsdr_wbfm_mono.lua:34: in main chunk
        [C]: in function 'dofile'
        ./luaradio:105: in main chunk
        [C]: at 0x0000bfb9
[CompositeBlock] Child exited. Shutting down...
[DownsamplerBlock] Block runtime error: ./radio/core/pipe.lua:199: write(): Connection reset by peer
stack traceback:
        [C]: in function 'error'
        ./radio/core/pipe.lua:199: in function 'platform_write'
        ./radio/core/pipe.lua:306: in function 'write'
        ./radio/core/block.lua:387: in function 'run'
        ./radio/core/composite.lua:554: in function <./radio/core/composite.lua:554>
        [C]: in function 'xpcall'
        ./radio/core/composite.lua:554: in function 'start'
        ./radio/core/composite.lua:451: in function 'run'
        examples/rtlsdr_wbfm_mono.lua:34: in main chunk
        [C]: in function 'dofile'
        ./luaradio:105: in main chunk
        [C]: at 0x0000bfb9
$ ./luaradio -v examples/rtlsdr_wbfm_mono.lua 91.1e6
[CompositeBlock] Connected output FrequencyTranslatorBlock.out to input LowpassFilterBlock.in
[CompositeBlock] Connected output LowpassFilterBlock.out to input DownsamplerBlock.in
[CompositeBlock] Aliased input TunerBlock.in to input FrequencyTranslatorBlock.in
[CompositeBlock] Aliased output TunerBlock.out to output DownsamplerBlock.out
[CompositeBlock] Connected output RtlSdrSource.out to input TunerBlock.in
[CompositeBlock] Connected output TunerBlock.out to input FrequencyDiscriminatorBlock.in
[CompositeBlock] Connected output FrequencyDiscriminatorBlock.out to input LowpassFilterBlock.in
[CompositeBlock] Connected output LowpassFilterBlock.out to input FMDeemphasisFilterBlock.in
[CompositeBlock] Connected output FMDeemphasisFilterBlock.out to input DownsamplerBlock.in
[CompositeBlock] Connected output DownsamplerBlock.out to input PulseAudioSink.in
[CompositeBlock] Connected output FrequencyDiscriminatorBlock.out to input GnuplotSpectrumSink.in
[CompositeBlock] Connected output FMDeemphasisFilterBlock.out to input GnuplotSpectrumSink.in
[CompositeBlock] Dependency order:
[CompositeBlock]        RtlSdrSource
[CompositeBlock]            .out   -> {FrequencyTranslatorBlock.in}
[CompositeBlock]        FrequencyTranslatorBlock
[CompositeBlock]            .in    <- {RtlSdrSource.out}
[CompositeBlock]            .out   -> {LowpassFilterBlock.in}
[CompositeBlock]        LowpassFilterBlock
[CompositeBlock]            .in    <- {FrequencyTranslatorBlock.out}
[CompositeBlock]            .out   -> {DownsamplerBlock.in}
[CompositeBlock]        DownsamplerBlock
[CompositeBlock]            .in    <- {LowpassFilterBlock.out}
[CompositeBlock]            .out   -> {FrequencyDiscriminatorBlock.in}
[CompositeBlock]        FrequencyDiscriminatorBlock
[CompositeBlock]            .in    <- {DownsamplerBlock.out}
[CompositeBlock]            .out   -> {LowpassFilterBlock.in, GnuplotSpectrumSink.in}
[CompositeBlock]        GnuplotSpectrumSink
[CompositeBlock]            .in    <- {FrequencyDiscriminatorBlock.out}
[CompositeBlock]        LowpassFilterBlock
[CompositeBlock]            .in    <- {FrequencyDiscriminatorBlock.out}
[CompositeBlock]            .out   -> {FMDeemphasisFilterBlock.in}
[CompositeBlock]        FMDeemphasisFilterBlock
[CompositeBlock]            .in    <- {LowpassFilterBlock.out}
[CompositeBlock]            .out   -> {DownsamplerBlock.in, GnuplotSpectrumSink.in}
[CompositeBlock]        DownsamplerBlock
[CompositeBlock]            .in    <- {FMDeemphasisFilterBlock.out}
[CompositeBlock]            .out   -> {PulseAudioSink.in}
[CompositeBlock]        GnuplotSpectrumSink
[CompositeBlock]            .in    <- {FMDeemphasisFilterBlock.out}
[CompositeBlock]        PulseAudioSink
[CompositeBlock]            .in    <- {DownsamplerBlock.out}
[CompositeBlock] Parent pid 26391
[CompositeBlock] Block FrequencyTranslatorBlock pid 26397
[CompositeBlock] Block LowpassFilterBlock pid 26398
[CompositeBlock] Block GnuplotSpectrumSink pid 26401
[CompositeBlock] Block LowpassFilterBlock pid 26402
[CompositeBlock] Block GnuplotSpectrumSink pid 26405
[CompositeBlock] Block DownsamplerBlock pid 26399
[CompositeBlock] Block RtlSdrSource pid 26396
[CompositeBlock] Block FrequencyDiscriminatorBlock pid 26400
[CompositeBlock] Block DownsamplerBlock pid 26404
[CompositeBlock] Block FMDeemphasisFilterBlock pid 26403
[CompositeBlock] Block PulseAudioSink pid 26407
Found Rafael Micro R820T tuner
[RtlSdrSource] Frequency: 88250000 Hz, Sample rate: 1102500 Hz
Exact sample rate is: 1102500.002464 Hz
[CompositeBlock] Child exited. Shutting down...
[FrequencyDiscriminatorBlock] Block runtime error: ./radio/core/pipe.lua:199: write(): Connection reset by peer
stack traceback:
        [C]: in function 'error'
        ./radio/core/pipe.lua:199: in function 'platform_write'
        ./radio/core/pipe.lua:306: in function 'write'
        ./radio/core/block.lua:387: in function 'run'
        ./radio/core/composite.lua:554: in function <./radio/core/composite.lua:554>
        [C]: in function 'xpcall'
        ./radio/core/composite.lua:554: in function 'start'
        ./radio/core/composite.lua:451: in function 'run'
        examples/rtlsdr_wbfm_mono.lua:34: in main chunk
        [C]: in function 'dofile'
        ./luaradio:105: in main chunk
        [C]: at 0x0000bfb9
$ exit

@vsergeev
Copy link
Owner

vsergeev commented Jul 18, 2016

Yeah, I think the gnuplot sinks are crashing. They can be finicky -- in my case, I've seen them crash if I have a mouse cursor on the plot window before they've started plotting, but otherwise they work fairly well for me. I'll have to investigate further and see if there is a underlying bug common to all of these immediate gnuplot crashes.

In the short term, I would give the wxt terminal a try, which is what I've been using (see this comment for the configuration line).

Alternatively, you can also disable plotting for the examples by unsetting the DISPLAY environment variable (but that's not useful if it's the plots you're after).

LuaRadio could definitely use plotting sinks that use a more stable backend (I don't think gnuplot is really meant for this kind of real-time dynamic plotting, and it's a wonder they work at all). I've put this on the project roadmap.

edited: grammar fixes

@ghost
Copy link
Author

ghost commented Jul 18, 2016

I'm upgrading the OS at the moment from:
Ubuntu 15.04 (Vivid Vervet)
to:
Ubuntu 15.10 (Wily Werewolf)

In case it is an older OS problem, I'll give wxt a spin after the upgrade is finished.

@vsergeev
Copy link
Owner

Sure thing. I'm running gnuplot 5.0 patchlevel 3 (on Arch Linux).

@ghost
Copy link
Author

ghost commented Jul 19, 2016

Still no joy.
$ gnuplot -V
gnuplot 4.6 patchlevel 6
$ sudo apt-get remove gnuplot
$ sudo apt-get install gnuplot5
$ gnuplot -V
gnuplot 5.0 patchlevel 1

Next up I'll do a clean install of Ubuntu 16.04 (Xenial Xerus), and if that still fails then my next step will be Arch Linux.

@vsergeev
Copy link
Owner

Could you try running it with plotting disabled, to confirm it's the plotting sinks that are crashing?

$ unset DISPLAY
$ luaradio examples/rtlsdr_wbfm_mono.lua 91.1e6

@ghost
Copy link
Author

ghost commented Jul 21, 2016

I tried that and I still get the same error. I'm just going to do a clean OS install of 16.04 right now and I'll let you know.

@ghost
Copy link
Author

ghost commented Jul 21, 2016

I did a 100% clean install of Ubuntu Mate 16.04, installed almost everything using apt-get (except for liquid-dsp).
It works perfectly on the console:
http://i.imgur.com/RP1jfXI.png
It hangs when I am stupid and try to run it over X which makes total sense, since there is no way to pipe the audio over X and the Odroid is logged out from X windows (I use HDMI for audio out - and there is no screen physically connected) so there is no way to play back the audio. But with "unset DISPLAY" it generates the wbfm_mono.wav file as expected.

I have not traced back the root cause of the problem, but there is no harm ever in a fresh clean OS install.
FYI:
$ gnuplot -v
gnuplot 5.0 patchlevel 3
$ luajit -v
LuaJIT 2.0.4 -- Copyright (C) 2005-2015 Mike Pall. http://luajit.org/
$ volk-config-info -v
1.2.1

Thanks for the help.

@ghost ghost closed this as completed Jul 21, 2016
@ghost
Copy link
Author

ghost commented Jul 21, 2016

It happened again! But this time I found the cause and a workaround.
I always end up running "volk_profile", eventually, to optimise the selection of the DSP methods on my hardware. For some reason on ARM luaradio does not like this. My quickfix was "rm ~/.volk/volk_config" and suddenly luaradio was back working again.

@vsergeev
Copy link
Owner

vsergeev commented Jul 22, 2016

Interesting. @martinzsmith, could you try running the example with VOLK disabled:

$ LUARADIO_DISABLE_VOLK=1 luaradio examples/rtlsdr_wbfm_mono.lua 91.1e6

and see if the crash comes up again? This way we can isolate it to VOLK acceleration, and perhaps next we can narrow down the crashing block. If we can find a repeatable setup, we could determine if it's an issue with VOLK or LuaRadio interfacing with it.

Also, note that VOLK is at 1.3, so if there is an issue there, it may have been fixed recently.

As for X11 forwarding and audio, the PulseAudio sink should still try to play audio at its host (it won't forward over SSH), but forwarding the real-time plots will probably be prohibitively slow over SSH and slow the flow graph to a crawl...

@ghost
Copy link
Author

ghost commented Jul 25, 2016

That works I just noticed that it was a different warning message:
(with LUARADIO_DISABLE_VOLK=1 it works correctly)

odroid@odroid:~/src/luaradio$ LUARADIO_DISABLE_VOLK=0 ./luaradio -v examples/rtlsdr_wbfm_mono.lua 88.5e6
[CompositeBlock] Connected output FrequencyTranslatorBlock.out to input LowpassFilterBlock.in
[CompositeBlock] Connected output LowpassFilterBlock.out to input DownsamplerBlock.in
[CompositeBlock] Aliased input TunerBlock.in to input FrequencyTranslatorBlock.in
[CompositeBlock] Aliased output TunerBlock.out to output DownsamplerBlock.out
[CompositeBlock] Connected output RtlSdrSource.out to input TunerBlock.in
[CompositeBlock] Connected output TunerBlock.out to input FrequencyDiscriminatorBlock.in
[CompositeBlock] Connected output FrequencyDiscriminatorBlock.out to input LowpassFilterBlock.in
[CompositeBlock] Connected output LowpassFilterBlock.out to input FMDeemphasisFilterBlock.in
[CompositeBlock] Connected output FMDeemphasisFilterBlock.out to input DownsamplerBlock.in
[CompositeBlock] Connected output DownsamplerBlock.out to input PulseAudioSink.in
[CompositeBlock] Connected output FrequencyDiscriminatorBlock.out to input GnuplotSpectrumSink.in
[CompositeBlock] Connected output FMDeemphasisFilterBlock.out to input GnuplotSpectrumSink.in
[CompositeBlock] Dependency order:
[CompositeBlock]        RtlSdrSource
[CompositeBlock]            .out   -> {FrequencyTranslatorBlock.in}
[CompositeBlock]        FrequencyTranslatorBlock
[CompositeBlock]            .in    <- {RtlSdrSource.out}
[CompositeBlock]            .out   -> {LowpassFilterBlock.in}
[CompositeBlock]        LowpassFilterBlock
[CompositeBlock]            .in    <- {FrequencyTranslatorBlock.out}
[CompositeBlock]            .out   -> {DownsamplerBlock.in}
[CompositeBlock]        DownsamplerBlock
[CompositeBlock]            .in    <- {LowpassFilterBlock.out}
[CompositeBlock]            .out   -> {FrequencyDiscriminatorBlock.in}
[CompositeBlock]        FrequencyDiscriminatorBlock
[CompositeBlock]            .in    <- {DownsamplerBlock.out}
[CompositeBlock]            .out   -> {LowpassFilterBlock.in, GnuplotSpectrumSink.in}
[CompositeBlock]        GnuplotSpectrumSink
[CompositeBlock]            .in    <- {FrequencyDiscriminatorBlock.out}
[CompositeBlock]        LowpassFilterBlock
[CompositeBlock]            .in    <- {FrequencyDiscriminatorBlock.out}
[CompositeBlock]            .out   -> {FMDeemphasisFilterBlock.in}
[CompositeBlock]        FMDeemphasisFilterBlock
[CompositeBlock]            .in    <- {LowpassFilterBlock.out}
[CompositeBlock]            .out   -> {DownsamplerBlock.in, GnuplotSpectrumSink.in}
[CompositeBlock]        DownsamplerBlock
[CompositeBlock]            .in    <- {FMDeemphasisFilterBlock.out}
[CompositeBlock]            .out   -> {PulseAudioSink.in}
[CompositeBlock]        PulseAudioSink
[CompositeBlock]            .in    <- {DownsamplerBlock.out}
[CompositeBlock]        GnuplotSpectrumSink
[CompositeBlock]            .in    <- {FMDeemphasisFilterBlock.out}
[CompositeBlock] Parent pid 4738
[CompositeBlock] Block RtlSdrSource pid 4753
[CompositeBlock] Block FrequencyTranslatorBlock pid 4754
[CompositeBlock] Block LowpassFilterBlock pid 4755
[CompositeBlock] Block GnuplotSpectrumSink pid 4759
[CompositeBlock] Block FrequencyDiscriminatorBlock pid 4758
[CompositeBlock] Block FMDeemphasisFilterBlock pid 4761
[CompositeBlock] Block PulseAudioSink pid 4763
[CompositeBlock] Block GnuplotSpectrumSink pid 4764
[CompositeBlock] Block DownsamplerBlock pid 4756
[CompositeBlock] Block LowpassFilterBlock pid 4760
[CompositeBlock] Block DownsamplerBlock pid 4762
Found Rafael Micro R820T tuner
[RtlSdrSource] Frequency: 88250000 Hz, Sample rate: 1102500 Hz
Exact sample rate is: 1102500.002464 Hz
Using Volk machine: neon_hardfp_orc
Using Volk machine: neon_hardfp_orc
Volk warning: no arch found, returning generic impl
Using Volk machine: neon_hardfp_orc
Using Volk machine: neon_hardfp_orc
[CompositeBlock] Child exited. Shutting down...
Using Volk machine: neon_hardfp_orc
odroid@odroid:~/src/luaradio$ LUARADIO_DISABLE_VOLK=1 ./luaradio examples/rtlsdr_wbfm_mono.lua 88.5e6
Found Rafael Micro R820T tuner
Exact sample rate is: 1102500.002464 Hz

odroid@odroid:~/src/luaradio$

@ghost
Copy link
Author

ghost commented Jul 25, 2016

The volk_config file is more sparse than I would have expected it to be. So it looks like this is a new volk problem and not a problem with luaradio. I'll remove the package and install the latest volk from source and let you know:

odroid@odroid:~/src/luaradio$ ls -la /home/odroid/.volk/volk_config
-rw-rw-r-- 1 odroid odroid 2334 Jul 26 00:01 /home/odroid/.volk/volk_config
odroid@odroid:~/src/luaradio$ cat /home/odroid/.volk/volk_config
#this file is generated by volk_profile.
#the function name is followed by the preferred architecture.
volk_64u_popcnt generic generic
volk_16u_byteswap neon_table neon_table
volk_32u_byteswap neon neon

volk_64u_byteswap generic generic




volk_16ic_deinterleave_real_8i neon neon
volk_16ic_deinterleave_16i_x2 u_orc u_orc
volk_16ic_s32f_deinterleave_32f_x2 neon neon



volk_16i_s32f_convert_32f neon neon
volk_16i_convert_8i neon neon
volk_16i_32fc_dot_prod_32fc neon neon

volk_32f_x2_add_32f neonpipeline neonpipeline
volk_32fc_32f_multiply_32fc neon neon
volk_32f_log2_32f neon neon



volk_32f_cos_32f generic generic







volk_32fc_x2_conjugate_dot_prod_32fc neon neon
volk_32fc_deinterleave_32f_x2 neon neon
volk_32fc_deinterleave_64f_x2 a_generic generic

volk_32fc_deinterleave_imag_32f neon neon
volk_32fc_deinterleave_real_32f neon neon

volk_32fc_x2_dot_prod_32fc neon_optfma neon_optfma
volk_32fc_32f_dot_prod_32fc a_neonasmvmla neon_unroll

volk_32fc_s32f_magnitude_16i generic generic
volk_32fc_magnitude_32f neon neon
volk_32fc_magnitude_squared_32f neon neon
volk_32fc_x2_multiply_32fc neonasm neonasm
volk_32fc_x2_multiply_conjugate_32fc neon neon
volk_32fc_conjugate_32fc a_neon generic
volk_32f_s32f_convert_16i generic generic
volk_32f_s32f_convert_32i generic generic
volk_32f_convert_64f generic generic
volk_32f_s32f_convert_8i generic generic

volk_32fc_x2_square_dist_32f neon neon

volk_32f_x2_divide_32f u_orc u_orc
volk_32f_x2_dot_prod_32f neonasm neonasm

volk_32f_x2_interleave_32fc neon neon
volk_32f_x2_max_32f u_orc u_orc
volk_32f_x2_min_32f u_orc u_orc
volk_32f_x2_multiply_32f neon neon
volk_32f_s32f_normalize u_orc u_orc

volk_32f_sqrt_32f neon neon


volk_32f_x2_subtract_32f u_orc u_orc
volk_32f_x3_sum_of_poly_32f neonvert neonvert
volk_32i_x2_and_32i neon neon
volk_32i_s32f_convert_32f a_generic generic
volk_32i_x2_or_32i u_orc u_orc

volk_64f_convert_32f generic generic






volk_8ic_deinterleave_real_8i neon neon


volk_8i_convert_16i neon neon
volk_8i_s32f_convert_32f a_generic generic
volk_32fc_s32fc_multiply_32fc neon neon
volk_32f_s32f_multiply_32f u_orc u_orc
volk_32f_binary_slicer_32i generic_branchless generic_branchless
volk_32f_binary_slicer_8i neon neon
volk_32f_tanh_32f series series


odroid@odroid:~/src/luaradio$ rm ~/.volk/volk_config
odroid@odroid:~/src/luaradio$ volk_profile
Using Volk machine: neon_hardfp_orc
RUN_VOLK_TESTS: volk_64u_popcntpuppet_64u(131071,1987)
generic completed in 647.898ms
neon completed in 1698.83ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_16u_byteswappuppet_16u(131071,1987)
generic completed in 560.498ms
neon completed in 241.432ms
neon_table completed in 221.543ms
Best aligned arch: neon_table
Best unaligned arch: neon_table
RUN_VOLK_TESTS: volk_32u_byteswappuppet_32u(131071,1987)
generic completed in 519.355ms
neon completed in 456.014ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32u_popcntpuppet_32u(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_64u_byteswappuppet_64u(131071,1987)
generic completed in 948.137ms
neon completed in 1084.04ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32fc_s32fc_rotatorpuppet_32fc(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_8u_conv_k7_r2puppet_8u(131071,198)
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_fm_detectpuppet_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_16ic_deinterleave_real_8i(131071,1987)
generic completed in 358.775ms
neon completed in 116.201ms
u_orc completed in 181.331ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_16ic_deinterleave_16i_x2(131071,1987)
generic completed in 510.308ms
u_orc completed in 230.002ms
Best aligned arch: u_orc
Best unaligned arch: u_orc
RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_32f_x2(131071,1987)
generic completed in 1288.82ms
neon completed in 676.882ms
u_orc completed in 1589.96ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_16ic_deinterleave_real_16i(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_16ic_magnitude_16i(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_16ic_s32f_magnitude_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_16i_s32f_convert_32f(131071,1987)
generic completed in 624.154ms
neon completed in 270.31ms
a_generic completed in 606.278ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_16i_convert_8i(131071,1987)
generic completed in 437.672ms
neon completed in 56.42ms
a_generic completed in 428.233ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_16i_32fc_dot_prod_32fc(131071,1987)
generic completed in 984.622ms
neon completed in 714.159ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32f_accumulator_s32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_add_32f(131071,1987)
generic completed in 660.854ms
u_neon completed in 331.912ms
neonasm completed in 235.703ms
neonpipeline completed in 223.902ms
a_generic completed in 616.492ms
u_orc completed in 261.285ms
Best aligned arch: neonpipeline
Best unaligned arch: neonpipeline
RUN_VOLK_TESTS: volk_32fc_32f_multiply_32fc(131071,1987)
generic completed in 1452.04ms
neon completed in 608.699ms
u_orc completed in 834.295ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32f_log2_32f(131071,1987)
generic completed in 11925.3ms
neon completed in 1310.76ms
u_generic completed in 11920.9ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32f_expfast_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_pow_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_sin_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_cos_32f(131071,1987)
generic_fast completed in 24350.5ms
generic completed in 8176.34ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32f_tan_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_atan_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_asin_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_acos_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32f_power_32fc(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_calc_spectral_noise_floor_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32f_atan2_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_conjugate_dot_prod_32fc(131071,1987)
generic completed in 2447.99ms
neon completed in 1307.63ms
a_generic completed in 2605.8ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32fc_deinterleave_32f_x2(131071,1987)
neon completed in 1205.5ms
generic completed in 1317.28ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32fc_deinterleave_64f_x2(131071,1987)
generic completed in 2787.23ms
a_generic completed in 2748.79ms
Best aligned arch: a_generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32fc_s32f_deinterleave_real_16i(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32fc_deinterleave_imag_32f(131071,1987)
neon completed in 234.693ms
generic completed in 584.776ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32fc_deinterleave_real_32f(131071,1987)
generic completed in 420.374ms
neon completed in 303.861ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32fc_deinterleave_real_64f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_dot_prod_32fc(131071,1987)
generic completed in 2247.11ms
a_generic completed in 2439.38ms
neon completed in 1408.55ms
neon_opttests completed in 1494.31ms
neon_optfma completed in 1283.35ms
neon_optfmaunroll completed in 1644.7ms
Best aligned arch: neon_optfma
Best unaligned arch: neon_optfma
RUN_VOLK_TESTS: volk_32fc_32f_dot_prod_32fc(131071,1987)
generic completed in 851.961ms
neon_unroll completed in 789.326ms
a_neon completed in 877.287ms
a_neonasm completed in 856.878ms
a_neonasmvmla completed in 464.442ms
a_neonpipeline completed in 491.516ms
Best aligned arch: a_neonasmvmla
Best unaligned arch: neon_unroll
RUN_VOLK_TESTS: volk_32fc_index_max_16u(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32f_magnitude_16i(131071,1987)
generic completed in 2249.66ms
u_orc completed in 3466.9ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32fc_magnitude_32f(131071,1987)
generic completed in 2002.38ms
a_generic completed in 2028.43ms
neon completed in 534.307ms
neon_fancy_sweet completed in 1256.53ms
u_orc completed in 3076.33ms
offset 1 in1: 0.835986 in2: 0.832031 tolerance was: 0.001
offset 3 in1: 0.704185 in2: 0.703125 tolerance was: 0.001
offset 4 in1: 0.881118 in2: 0.878906 tolerance was: 0.001
offset 6 in1: 0.983412 in2: 0.982422 tolerance was: 0.001
offset 8 in1: 0.941875 in2: 0.939453 tolerance was: 0.001
offset 9 in1: 0.74161 in2: 0.738281 tolerance was: 0.001
offset 10 in1: 0.933585 in2: 0.931641 tolerance was: 0.001
offset 11 in1: 0.733831 in2: 0.732422 tolerance was: 0.001
offset 12 in1: 0.8263 in2: 0.824219 tolerance was: 0.001
offset 14 in1: 1.2557 in2: 1.25391 tolerance was: 0.001
volk_32fc_magnitude_32f: fail on arch neon
offset 0 in1: 0.97876 in2: 0.983118 tolerance was: 0.001
offset 1 in1: 0.835986 in2: 0.843698 tolerance was: 0.001
offset 2 in1: 0.428114 in2: 0.426382 tolerance was: 0.001
offset 3 in1: 0.704185 in2: 0.709063 tolerance was: 0.001
offset 4 in1: 0.881118 in2: 0.882464 tolerance was: 0.001
offset 5 in1: 0.855 in2: 0.862523 tolerance was: 0.001
offset 6 in1: 0.983412 in2: 0.984615 tolerance was: 0.001
offset 7 in1: 0.956614 in2: 0.955417 tolerance was: 0.001
offset 8 in1: 0.941875 in2: 0.94666 tolerance was: 0.001
offset 10 in1: 0.933585 in2: 0.931741 tolerance was: 0.001
volk_32fc_magnitude_32f: fail on arch neon_fancy_sweet
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32fc_magnitude_squared_32f(131071,1987)
generic completed in 808.205ms
neon completed in 404.686ms
a_generic completed in 856.351ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32fc_x2_multiply_32fc(131071,1987)
generic completed in 4426.09ms
a_generic completed in 4214.62ms
neon completed in 2447.73ms
neon_opttests completed in 2293.1ms
neonasm completed in 2230.67ms
u_orc completed in 2760.55ms
Best aligned arch: neonasm
Best unaligned arch: neonasm
RUN_VOLK_TESTS: volk_32fc_x2_multiply_conjugate_32fc(131071,1987)
generic completed in 4390.72ms
neon completed in 2321.15ms
a_generic completed in 4408.36ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32fc_conjugate_32fc(131071,1987)
generic completed in 600.481ms
a_neon completed in 434.976ms
a_generic completed in 595.378ms
Best aligned arch: a_neon
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32f_s32f_convert_16i(131071,1987)
generic completed in 3182.49ms
a_generic completed in 3183.5ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32f_s32f_convert_32i(131071,1987)
generic completed in 1187.62ms
a_generic completed in 1188.69ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32f_convert_64f(131071,1987)
generic completed in 473.793ms
a_generic completed in 478.623ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32f_s32f_convert_8i(131071,1987)
generic completed in 3331.23ms
a_generic completed in 3353.94ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32fc_s32f_power_spectrum_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_square_dist_32f(131071,1987)
neon completed in 607.734ms
generic completed in 1113.15ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32fc_x2_s32f_square_dist_scalar_mult_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_divide_32f(131071,1987)
generic completed in 2128.89ms
u_orc completed in 629.633ms
Best aligned arch: u_orc
Best unaligned arch: u_orc
RUN_VOLK_TESTS: volk_32f_x2_dot_prod_32f(131071,1987)
generic completed in 582.54ms
a_generic completed in 529.409ms
neonopts completed in 213.428ms
neon completed in 253.625ms
neonasm completed in 143.112ms
neonasm_opts completed in 239.848ms
Best aligned arch: neonasm
Best unaligned arch: neonasm
RUN_VOLK_TESTS: volk_32f_x2_s32f_interleave_16ic(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_interleave_32fc(131071,1987)
neon completed in 472.11ms
generic completed in 695.306ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32f_x2_max_32f(131071,1987)
neon completed in 242.653ms
generic completed in 804.519ms
u_orc completed in 219.125ms
Best aligned arch: u_orc
Best unaligned arch: u_orc
RUN_VOLK_TESTS: volk_32f_x2_min_32f(131071,1987)
neon completed in 290.786ms
generic completed in 802.868ms
u_orc completed in 219.381ms
Best aligned arch: u_orc
Best unaligned arch: u_orc
RUN_VOLK_TESTS: volk_32f_x2_multiply_32f(131071,1987)
generic completed in 719.285ms
neon completed in 218.34ms
a_generic completed in 612.231ms
u_orc completed in 308.064ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32f_s32f_normalize(131071,1987)
generic completed in 405.31ms
u_orc completed in 150.634ms
Best aligned arch: u_orc
Best unaligned arch: u_orc
RUN_VOLK_TESTS: volk_32f_s32f_power_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_sqrt_32f(131071,1987)
neon completed in 192.927ms
generic completed in 6476.48ms
u_orc completed in 1253.06ms
offset 0 in1: 0.764865 in2: 0.763672 tolerance was: 0.001
offset 4 in1: 0.932123 in2: 0.929688 tolerance was: 0.001
offset 5 in1: 0.189697 in2: 0.189453 tolerance was: 0.001
offset 6 in1: 0.375947 in2: 0.375 tolerance was: 0.001
offset 7 in1: 0.795531 in2: 0.796875 tolerance was: 0.001
offset 10 in1: 0.549823 in2: 0.548828 tolerance was: 0.001
offset 16 in1: 0.772765 in2: 0.769531 tolerance was: 0.001
offset 17 in1: 0.483785 in2: 0.482422 tolerance was: 0.001
offset 26 in1: 0.937441 in2: 0.935547 tolerance was: 0.001
offset 28 in1: 0.769838 in2: 0.767578 tolerance was: 0.001
volk_32f_sqrt_32f: fail on arch neon
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32f_s32f_stddev_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_stddev_and_mean_32f_x2(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_subtract_32f(131071,1987)
generic completed in 723.196ms
neon completed in 263.873ms
u_orc completed in 230.299ms
Best aligned arch: u_orc
Best unaligned arch: u_orc
RUN_VOLK_TESTS: volk_32f_x3_sum_of_poly_32f(131071,1987)
generic completed in 2420.7ms
a_neon completed in 1611.17ms
neonvert completed in 768.774ms
Best aligned arch: neonvert
Best unaligned arch: neonvert
RUN_VOLK_TESTS: volk_32i_x2_and_32i(131071,1987)
neon completed in 241.082ms
generic completed in 513.785ms
u_orc completed in 288.806ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32i_s32f_convert_32f(131071,1987)
generic completed in 613.257ms
a_generic completed in 611.517ms
Best aligned arch: a_generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32i_x2_or_32i(131071,1987)
neon completed in 293.436ms
generic completed in 497.998ms
u_orc completed in 224.99ms
Best aligned arch: u_orc
Best unaligned arch: u_orc
RUN_VOLK_TESTS: volk_32f_x2_dot_prod_16i(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_64f_convert_32f(131071,1987)
generic completed in 497.669ms
a_generic completed in 541.157ms
Best aligned arch: generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_64f_x2_max_64f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_64f_x2_min_64f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_8ic_deinterleave_16i_x2(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_8ic_s32f_deinterleave_32f_x2(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_8ic_deinterleave_real_16i(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_8ic_s32f_deinterleave_real_32f(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_8ic_deinterleave_real_8i(131071,1987)
generic completed in 310.747ms
neon completed in 55.764ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_8ic_x2_multiply_conjugate_16ic(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_8ic_x2_s32f_multiply_conjugate_32fc(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_8i_convert_16i(131071,1987)
generic completed in 346.228ms
a_generic completed in 352.381ms
neon completed in 86.716ms
u_orc completed in 87.291ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_8i_s32f_convert_32f(131071,1987)
generic completed in 590.804ms
a_generic completed in 585.39ms
u_orc completed in 611.541ms
Best aligned arch: a_generic
Best unaligned arch: generic
RUN_VOLK_TESTS: volk_32fc_s32fc_multiply_32fc(131071,1987)
generic completed in 3222.31ms
neon completed in 651.807ms
a_generic completed in 3325.21ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32f_s32f_multiply_32f(131071,1987)
generic completed in 527.102ms
u_neon completed in 179.792ms
a_generic completed in 468.004ms
u_orc completed in 164.732ms
Best aligned arch: u_orc
Best unaligned arch: u_orc
RUN_VOLK_TESTS: volk_32f_binary_slicer_32i(131071,1987)
generic completed in 1735.16ms
generic_branchless completed in 721.993ms
Best aligned arch: generic_branchless
Best unaligned arch: generic_branchless
RUN_VOLK_TESTS: volk_32f_binary_slicer_8i(131071,1987)
generic completed in 1726.77ms
generic_branchless completed in 658.695ms
neon completed in 260.307ms
Best aligned arch: neon
Best unaligned arch: neon
RUN_VOLK_TESTS: volk_32f_tanh_32f(131071,1987)
generic completed in 19656.8ms
series completed in 2665.53ms
Best aligned arch: series
Best unaligned arch: series
RUN_VOLK_TESTS: volk_8u_x3_encodepolarpuppet_8u(131071,1987)
no architectures to test
RUN_VOLK_TESTS: volk_32f_8u_polarbutterflypuppet_32f(131071,1987)
no architectures to test
Writing "/home/odroid/.volk/volk_config"...
odroid@odroid:~/src/luaradio$

@vsergeev
Copy link
Owner

@martinzsmith, thanks for looking into it. It does seem that VOLK is crashing somewhere internally. It could technically still be LuaRadio's fault, if, for example, it passes unaligned data to a VOLK function expecting aligned data, but as far as I know this shouldn't be happening.

Let me know if VOLK 1.3 fixes the issue.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant