Volk update to master/next

Hi everyone,
I just wanted to inform everyone that we made a significant update to
master/next tonight to start using Volk. This merges in my safe_align
branch that I mentioned a couple of weeks ago.

After verifying that it was working on various platforms, including the
E100 (and therefore ARM/NEON systems), we went ahead with the merge
tonight. With luck, the only thing you’ll notice is improved speed of
your
GNU Radio programs.

Please let us know if you experience any trouble from this. We’re hoping
to
cut a 3.5.2 version of GNU Radio this weekend that will incorporate this
change.

Take a look at my “Volk Benchmarking” and “Volk Integration into GNU
Radio”
entries at Blog — Rondeau Research for some more details if you’re
interested
in what all of this means.

Thanks,
Tom

Please let us know if you experience any trouble from this. We’re
hoping to cut a 3.5.2 version of GNU Radio this weekend that
will incorporate this change.

Take a look at my “Volk Benchmarking” and “Volk Integration into GNU
Radio” entries at Blog — Rondeau Research http://www.trondeau.com/blog
for some more details if you’re interested in what all of this means.

Thanks,
Tom

So far, so good. I had to recompile gr-rds.

I’m running two different Gnu Radio apps on my machine right now–one
using USRP the other using the sound subsystem.

My seat-of-the-pants estimate is that overall performance has improved
about 15%.

[ 25%] Building CXX object
gnuradio-core/src/lib/CMakeFiles/gnuradio-core.dir/general/gr_add_ff.cc.o
/home/glneo/gnuradio/gnuradio-core/src/lib/general/gr_add_ff.cc: In member
function ‘virtual int gr_add_ff::work(int, gr_vector_const_void_star&,
gr_vector_void_star&)’:
/home/glneo/gnuradio/gnuradio-core/src/lib/general/gr_add_ff.cc:59: error:
‘volk_32f_x2_add_32f_u’ was not declared in this scope

breaks on this over here in FreeBSD land. In volk.h:

extern VOLK_API p_32f_x2_add_32f_a volk_32f_x2_add_32f_a;
extern VOLK_API void volk_32f_x2_add_32f_a_manual(float* cVector, const float*
aVector, const float* bVector, unsigned int num_points, const char* arch);
extern VOLK_API struct volk_func_desc volk_32f_x2_add_32f_a_get_func_desc(void);

extern VOLK_API p_32f_x2_add_32f_u volk_32f_x2_add_32f_u;
extern VOLK_API void volk_32f_x2_add_32f_u_manual(float* cVector, const float*
aVector, const float* bVector, unsigned int num_points, const char* arch);
extern VOLK_API struct volk_func_desc volk_32f_x2_add_32f_u_get_func_desc(void);

It finds _a but not _u, I’m not really sure whats going on here.

Ok, false alarm with my bug, apparently the compiler checks the old
installed volk directory first, once I cleaned out my system include
dir it compiled fine.

There is a noticeable difference on my old P4 with sse3 in everything
GNU Radio related! This is great stuff!

On Sun, Mar 4, 2012 at 12:30 PM, Andrew D.
[email protected]wrote:

Ok, false alarm with my bug, apparently the compiler checks the old
installed volk directory first, once I cleaned out my system include
dir it compiled fine.

There is a noticeable difference on my old P4 with sse3 in everything
GNU Radio related! This is great stuff!

Andrew,
Glad to hear it’s working well for you! I was going to suggest something
like that, since I had a similar situation on the E100.

Tom