discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] max and argmax blocks with SIMD instructions


From: Pascal Charest
Subject: Re: [Discuss-gnuradio] max and argmax blocks with SIMD instructions
Date: Mon, 23 Apr 2007 10:46:34 -0400

If you don't want to use assembly, you can use MMX and SSE intrisics compiler support. These are C functions/macros to allow the use of SSE instructions directly from C/C++. You can start with this introduction: http://www.codeproject.com/cpp/sseintro.asp . For a reference, you can go on MSDN website and search for intrinsic . Even if it's for Windows, it's still valid for GNU. Have a look at this files on your computer (in your system include dir):
mmintrin.h -> MMX
emmintrin.h -> SSE2
xmmintrin.h -> SSE
pmmintrin.h -> SSE3

If you use it, don't forget to use compilation macros to offer alternative for processor that don't have these assembly instructions.

Pascal

PS From a personnal point of view, I don't know if these instructions are as fast as assembly. But they are quite easy to use, which improve my code writing speed ;-)

On 4/23/07, Trond Danielsen <address@hidden> wrote:
Hi everyone,

I've written a couple of blocks for GNU Radio, but am not satisfied
with the performance. I am therefore thinking of using SIMD
instructions. However, I am not that familiar with x86 assembly
instructions, and finding the reference manual on Intel's website was
not easy. I know that DSPs such as the Blackfin has special vector
instructions that would make this very simple, but I am not sure about
x86.

I am also going to write a general purpose multiply and accumulate
block that would benefit much from SIMD instructions.

Any comments are appreciated.

--
Trond Danielsen

reply via email to

[Prev in Thread] Current Thread [Next in Thread]