discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Re-writing blocks using intel libraries


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] Re-writing blocks using intel libraries
Date: Tue, 11 Dec 2007 14:27:15 -0800
User-agent: Mutt/1.5.17 (2007-11-01)

On Tue, Dec 11, 2007 at 10:13:32AM -0800, Eugene Grayver wrote:
> Hello,
> 
> We are working on some systems that require high sampling rates.  I am 
> already using the Intel C++ compiler at the highest optimization ratio, 
> but a lot of the blocks are very slow still.  It appears that intel C++ 
> does not properly vectorize <complex> data type. 

General curiosity questions:

  Are you using oprofile to measure performance?

  What h/w platform are you running on / tuning for?

  You're not trying to run your app on a cache-crippled machine like a
  Celeron, are you?  ;)

  Which blocks are causing you the biggest problem?

  Are your problems caused primarily by lack of CPU cycles, cache
  misses or mis-predicted branches?

> I have been replacing almost every low level block with a functionally 
> equivalent using the intel performance libraries (IPP).  These libraries 
> are not GPL, but are free for noncommercial use under Linux ($200 
> otherwise).  At some point, I would like to contribute our work back to 
> gnuradio.  Would this fit with the gr philosophy?  How should we structure 
> the code?  (i.e. have a separate set of files, use #defines, or ...)?
> 
> Eugene

We would not accept the changes.  Part of what we're up to is building
an ever expanding universe of free code.  Instead of using the
non-free IPP code, please consider using a free library such as ATLAS,
or help us find and fix performance challenges in a way that doesn't
require non-free code.  Also, are you sure that your performance
issues can't be better addressed with an algorithmic change?  If
you're using a lot of very low-level blocks (e.g., add, multiply,
etc.) you're probably better off writing a block that aggregates some
of the operations into a single block.

Eric




reply via email to

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