Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
I see that there are some work on the SIMD optimized math blocks in
gr-blocks. I am wondering what kind of computer is used for your test
regarding this SIMD optimization.
Code has been re-based and moved to this branch, BTW:
http://gnuradio.org/cgit/jblum.git/log/?h=new_blocks
The for the floating point version of the multiplier, and adder blocks,
and decimating FIR filter: the work function calls into a libvolk math
kernel. Therefore, the new blocks are not architecture specific.
Libvolk handles architecture selection and architecture-specific
dispatching. In other words, libvolk is responsible for calling into a
vectorized SIMD implementation that will operate on your architecture.
For a given kernel, there is a generic implementation, and optionally,
orc, sse*, neon, etc… To see if an optimized kernel is supported on
you architecture, see the kernel’s header in volk/include/volk/*.h
If you have an x86 machine, most likely, there is already an sse*
implementation of a particular kernel.
-Josh
Thanks josh,
Do you notice that the http://www.joshknows.com cannot be accessed
today? I
am within US.
B.R.
Changchun (Alex) Zhang
-----ʼԭ-----
: Josh B. [mailto:[email protected]]
ʱ: Friday, January 27, 2012 12:56 PM
ռ: Alex
: [email protected]
: Re: [Discuss-gnuradio]which architecture is used for SIMD optimized
math blocks of gr-blocks
I see that there are some work on the SIMD optimized math blocks in
gr-blocks. I am wondering what kind of computer is used for your test
regarding this SIMD optimization.
Code has been re-based and moved to this branch, BTW:
http://gnuradio.org/cgit/jblum.git/log/?h=new_blocks
The for the floating point version of the multiplier, and adder blocks,
and
decimating FIR filter: the work function calls into a libvolk math
kernel.
Therefore, the new blocks are not architecture specific.
Libvolk handles architecture selection and architecture-specific
dispatching. In other words, libvolk is responsible for calling into a
vectorized SIMD implementation that will operate on your architecture.
For a given kernel, there is a generic implementation, and optionally,
orc,
sse*, neon, etc… To see if an optimized kernel is supported on you
architecture, see the kernel’s header in volk/include/volk/*.h
If you have an x86 machine, most likely, there is already an sse*
implementation of a particular kernel.
-Josh