Volk_profile ran to completion. I am using the git source tree updated just before I did the run. I commented out line 38 of volk_profile.cc as you suggested and ran volk_profile under gdb. The output is in the attached text file. I have also attached the generated volk_config from ~/.volk/volk_config.

I noted from running gnuradio-companion version 3.5.1, (which works) that when I use a multiply block, this message from python is generated:

 ./top_block.py
>>> gr_fir_fff: using 3DNow!

but volk_profile does not seem to recognize the 3DNow! processor extensions (produces sse2 and sse3 messages on the Intel Atom 32 bit machine).

Hope this helps! Let me know if you want me to try anything else. I'll let you know how things turn out on the other machine as well.

Cheers,

Fred

On 03/18/2012 04:31 PM, Tom Rondeau wrote:
On Fri, Mar 16, 2012 at 6:11 PM, Frederick Stevens <sk8tesgr...@gmail.com <mailto:sk8tesgr...@gmail.com>> wrote:

    Well, after a few restarts, here is my output.  I did a fresh pull
    from git because I was getting some errors with missing *.h files
    in gruel/src/swig or something like that.  Hope this helps!


    RUN_VOLK_TESTS: volk_32fc_32f_multiply_32fc_a

    Program received signal SIGSEGV, Segmentation fault.
    0xb7edbb74 in volk_32fc_32f_multiply_32fc_a_generic
    (cVector=0xb7448008,
        aVector=0xb7768008, bVector=0xb78f8008, num_points=204600)
        at
    
/home/fred/extras/gnuradio/gnuradio/volk/include/volk/volk_32fc_32f_multiply_32fc_a.h:74
    74          *cPtr++ = (*aPtr++) * (*bPtr++);
    (gdb) bt
    #0  0xb7edbb74 in volk_32fc_32f_multiply_32fc_a_generic
    (cVector=0xb7448008,
        aVector=0xb7768008, bVector=0xb78f8008, num_points=204600)
        at
    
/home/fred/extras/gnuradio/gnuradio/volk/include/volk/volk_32fc_32f_multiply_32fc_a.h:74


Alright, Fred, definitely something strange going on here. My only guess is that for some reason on your architecture/OS/whatever, something is being handled incorrectly and the buffers a, b, and c are not getting generated correctly, maybe something like it's not doubling the number of items for the complex data type (before this function test, there are 16ic, or complex shorts, being tested, but this is the first complex float test).

It's hard to tell if it's something about it being an AMD chip, 32-bit, Slackware version, gcc version, etc. And I don't have an AMD chip to test on, but I could load up a 32-bit Slackware VM at least.

How much work are you willing to put into this to help us nail this down?

If you can follow through the volk_profile test code, we can start outputting more debug info. To start with, I'd suggest going into volk/apps/volk_profile.cc and commenting out line 38, rebuild the application, and run this new volk_profile to see if it fails on any other kernels.

Thanks,
Tom


(gdb) run
Starting program: /opt/gnuradio/bin/volk_profile 
[Thread debugging using libthread_db enabled]
Using Volk machine: generic
RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_real_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_16ic_deinterleave_real_8i_a
generic completed in 35.91s
orc completed in 21.59s
Best arch: orc
RUN_VOLK_TESTS: volk_16ic_deinterleave_16i_x2_a
generic completed in 50.67s
orc completed in 29.56s
Best arch: orc
RUN_VOLK_TESTS: volk_16ic_s32f_deinterleave_32f_x2_a
generic completed in 12s
orc completed in 27.03s
Best arch: generic
RUN_VOLK_TESTS: volk_16ic_deinterleave_real_16i_a
no architectures to test
RUN_VOLK_TESTS: volk_16ic_magnitude_16i_a
no architectures to test
RUN_VOLK_TESTS: volk_16ic_s32f_magnitude_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_16i_s32f_convert_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_16i_s32f_convert_32f_u
no architectures to test
RUN_VOLK_TESTS: volk_16i_convert_8i_a
no architectures to test
RUN_VOLK_TESTS: volk_16i_convert_8i_u
no architectures to test
RUN_VOLK_TESTS: volk_16u_byteswap_a
generic completed in 31.29s
orc completed in 11.26s
Best arch: orc
RUN_VOLK_TESTS: volk_32f_accumulator_s32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_add_32f_a
generic completed in 58.08s
orc completed in 99.56s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_x2_add_32f_u
no architectures to test
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32f_power_32fc_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_calc_spectral_noise_floor_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32f_atan2_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_conjugate_dot_prod_32fc_u
no architectures to test
RUN_VOLK_TESTS: volk_32fc_deinterleave_32f_x2_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_deinterleave_64f_x2_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32f_deinterleave_real_16i_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_deinterleave_imag_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_deinterleave_real_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_deinterleave_real_64f_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_dot_prod_32fc_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_index_max_16u_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32f_magnitude_16i_a
generic completed in 1.8s
orc completed in 4.09s
offset 3 in1: -32768 in2: -31599
offset 17 in1: -32768 in2: -29424
offset 20 in1: -32768 in2: -32472
offset 23 in1: -32768 in2: -32717
offset 26 in1: -32768 in2: -31062
offset 35 in1: -32768 in2: -32157
offset 46 in1: -32768 in2: -29168
offset 51 in1: -32768 in2: -31941
offset 54 in1: -32768 in2: -22599
offset 59 in1: -32768 in2: -27861
volk_32fc_s32f_magnitude_16i_a: fail on arch orc
Best arch: generic
RUN_VOLK_TESTS: volk_32fc_magnitude_32f_a
generic completed in 13.83s
orc completed in 25.87s
Best arch: generic
RUN_VOLK_TESTS: volk_32fc_magnitude_32f_u
no architectures to test
RUN_VOLK_TESTS: volk_32fc_magnitude_squared_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_magnitude_squared_32f_u
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_multiply_32fc_a
generic completed in 17.28s
orc completed in 41.48s
Best arch: generic
RUN_VOLK_TESTS: volk_32fc_x2_multiply_32fc_u
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_multiply_conjugate_32fc_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_multiply_conjugate_32fc_u
no architectures to test
RUN_VOLK_TESTS: volk_32fc_conjugate_32fc_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_conjugate_32fc_u
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_convert_16i_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_convert_16i_u
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_convert_32i_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_convert_32i_u
no architectures to test
RUN_VOLK_TESTS: volk_32f_convert_64f_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_convert_64f_u
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_convert_8i_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_convert_8i_u
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32f_power_spectrum_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_square_dist_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32fc_x2_s32f_square_dist_scalar_mult_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_divide_32f_a
generic completed in 13.1s
orc completed in 22.24s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_x2_dot_prod_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_dot_prod_32f_u
no architectures to test
RUN_VOLK_TESTS: volk_32f_index_max_16u_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_s32f_interleave_16ic_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_interleave_32fc_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_max_32f_a
generic completed in 21.36s
orc completed in 29.76s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_x2_min_32f_a
generic completed in 21.28s
orc completed in 29.74s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_x2_multiply_32f_a
generic completed in 58.35s
orc completed in 101.86s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_x2_multiply_32f_u
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_normalize_a
generic completed in 34.75s
orc completed in 59.61s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_s32f_power_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_sqrt_32f_a
generic completed in 1.69s
orc completed in 2.46s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_s32f_stddev_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_stddev_and_mean_32f_x2_a
no architectures to test
RUN_VOLK_TESTS: volk_32f_x2_subtract_32f_a
generic completed in 29.04s
orc completed in 49.46s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_x3_sum_of_poly_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32i_x2_and_32i_a
generic completed in 56.82s
orc completed in 33.31s
Best arch: orc
RUN_VOLK_TESTS: volk_32i_s32f_convert_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_32i_s32f_convert_32f_u
no architectures to test
RUN_VOLK_TESTS: volk_32i_x2_or_32i_a
generic completed in 57.23s
orc completed in 34.96s
Best arch: orc
RUN_VOLK_TESTS: volk_32u_byteswap_a
no architectures to test
RUN_VOLK_TESTS: volk_64f_convert_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_64f_convert_32f_u
no architectures to test
RUN_VOLK_TESTS: volk_64f_x2_max_64f_a
no architectures to test
RUN_VOLK_TESTS: volk_64f_x2_min_64f_a
no architectures to test
RUN_VOLK_TESTS: volk_64u_byteswap_a
no architectures to test
RUN_VOLK_TESTS: volk_8ic_deinterleave_16i_x2_a
no architectures to test
RUN_VOLK_TESTS: volk_8ic_s32f_deinterleave_32f_x2_a
no architectures to test
RUN_VOLK_TESTS: volk_8ic_deinterleave_real_16i_a
no architectures to test
RUN_VOLK_TESTS: volk_8ic_s32f_deinterleave_real_32f_a
no architectures to test
RUN_VOLK_TESTS: volk_8ic_deinterleave_real_8i_a
no architectures to test
RUN_VOLK_TESTS: volk_8ic_x2_multiply_conjugate_16ic_a
no architectures to test
RUN_VOLK_TESTS: volk_8ic_x2_s32f_multiply_conjugate_32fc_a
no architectures to test
RUN_VOLK_TESTS: volk_8i_convert_16i_a
generic completed in 53.48s
orc completed in 21.88s
Best arch: orc
RUN_VOLK_TESTS: volk_8i_convert_16i_u
no architectures to test
RUN_VOLK_TESTS: volk_8i_s32f_convert_32f_a
generic completed in 7.19s
orc completed in 16.85s
Best arch: generic
RUN_VOLK_TESTS: volk_8i_s32f_convert_32f_u
no architectures to test
RUN_VOLK_TESTS: volk_32fc_s32fc_multiply_32fc_u
no architectures to test
RUN_VOLK_TESTS: volk_32f_s32f_multiply_32f_a
generic completed in 35.4s
orc completed in 59.14s
Best arch: generic
RUN_VOLK_TESTS: volk_32f_s32f_multiply_32f_u
no architectures to test
filename: /home/fred/.volk/volk_config

Program exited normally.
(gdb)
#this file is generated by volk_profile.
#the function name is followed by the preferred architecture.
volk_16ic_deinterleave_real_8i_a orc
volk_16ic_deinterleave_16i_x2_a orc
volk_16ic_s32f_deinterleave_32f_x2_a generic
volk_16u_byteswap_a orc
volk_32f_x2_add_32f_a generic
volk_32fc_s32f_magnitude_16i_a generic
volk_32fc_magnitude_32f_a generic
volk_32fc_x2_multiply_32fc_a generic
volk_32f_x2_divide_32f_a generic
volk_32f_x2_max_32f_a generic
volk_32f_x2_min_32f_a generic
volk_32f_x2_multiply_32f_a generic
volk_32f_s32f_normalize_a generic
volk_32f_sqrt_32f_a generic
volk_32f_x2_subtract_32f_a generic
volk_32i_x2_and_32i_a orc
volk_32i_x2_or_32i_a orc
volk_8i_convert_16i_a orc
volk_8i_s32f_convert_32f_a generic
volk_32f_s32f_multiply_32f_a generic
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to