Which architecture is used for SIMD optimized math blocks of gr-blocks


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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs