On Tue, Sep 30, 2008 at 1:48 PM, Eric Blossom <[EMAIL PROTECTED]> wrote: > On Mon, Sep 29, 2008 at 03:13:09PM -0700, Inderaj Bains wrote: >> Thanks Eric, >> Yes I want to use SIMD. Since I want to spend most time improving >> performance, it would be nice if I can start off from something functioning >> or put together something quickly. >> How much effort would it be to get a GSM (other?) all software system >> together (except A/D I guess). Maybe I could use pre-generated streams on >> both ends in software. >> >> Thanks >> Inderaj > > This is great. What we've been thinking about is building a library > of SIMD accelerated primitives, along the lines of Intel's Integrated > Performance Primitives. The crucial differences would be: free > software (GPLv3); support for SSE, SSE2, SSE3, Altivec and Cell SPE > instruction sets.
Do you mind adding NEON to this list? NEON is a SIMD unit on ARM Cortex-A8 processors. Information on NEON instructions is at http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204h/Bcfjicfj.html. Sorry it si the superseded link, I'm too lazy to find the current one :) > Our working title for this is the "Generic Performance Primtives" (GPP). > > One unresolved issue is what code to start with. We need a framework > that provides for reference implementations, QA, testing all argument > alignments, correctness, performance, etc; runtime dispatch based on > the equivalent of cpuid; can be built as both shared and static > libraries (need static on the SPE). > > The basic idea (for the user visible routines) would be to start with > the well thought out API described in Volume 1 (Signal Processing) of > the IPP docs, peforming a s/ipp/gpp/g. > > > http://softwarecommunity.intel.com/isn/downloads/softwareproducts/pdfs/346499.pdf > > > http://softwarecommunity.intel.com/isn/downloads/softwareproducts/pdfs/346532_userguide_win_ia32.pdf > > > Two possible starting points are: > > liboil http://liboil.sourceforge.net (currently x86, x86-64 and PPC) liboil is used by a number of desktop programs, spending time on this would be a win for me :) Philip > Framewave http://framewave.sourceforge.net (x86 and x86-64 only) > > (Framewave is built on top of SSEPlus, a thin wrapper on top of the SSE > C/C++ intrinsics. http://sseplus.sourceforge.net > Mostly it appears that they provide emulations for instructions that > are missing at a particular level. E.g., your code could target SSE3, > and they'd emulate the missing addsub instruction in terms of SSE.) > > > For starters, it would be great if you could look at these two options > (and any others that you come across) and let us know how you think > these would work out as starting points, given the requirements above. > > If this seems like more than you want to bite off, I can provide a > list of high-priority functions and you could start implementing the > reference version and any of the SSE*, Altivec or SPE versions that > grab your attention. We're big on complex arithmetic :-) > > Please let me know how this sounds and if you've got any comments or > questions. > > Thanks! > Eric > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio