[Speex-dev] TI 6xxx platform performance

Jerry Trantow jtrantow at ieee.org
Thu Jan 19 07:40:09 PST 2006


I started my project using the CodeComposerStudio speex_C64_test.pjt in
speex 1.1.11.1.  To build using floating point, I created a new project with
the same files and modified ti\config.h to #undef FIXED_POINT.  Is there a
better way to configure a floating point processor?

I have a few TI specific optimizations that could go into the next release.
What's the procedure for submitting code?

I've been working with this code for about a week now. I'm still trying to
understand it all, but I'm particularly impressed by the float vs fixed
flexibility of the code.  

Jerry J. Trantow
Applied Signal Processing, Inc.
jtrantow at ieee.org


-----Original Message-----
From: Jean-Marc Valin [mailto:jean-marc.valin at usherbrooke.ca] 
Sent: Thursday, January 19, 2006 1:00 AM
To: Jerry Trantow
Cc: speex-dev at xiph.org
Subject: Re: [Speex-dev] TI 6xxx platform performance

> To get a feel for the computational load, I am running 1 second (50
frames)
> of voice through the encoder.

You might want to use a bit more just so you don't see the
initialization complexity at all.

> My profile of the 6416 indicates I'm at 27.4M cycles/channel.  I need to
get
> below 720Mhz/32 channels = 22.5M cycles per channel.  I did a little work
on
> inner_prod() and normalize16() and I'm confident I can get 32 channels by
> optimizing 5 or 6 functions.  I expect these numbers to translate over the
> DM642.

have you tried defining PRECISION16? That should reduce the computation
cost. 

> A lower cost option would be to use a floating point 6713.  I thought that
a
> 300Mhz floating point would come out even or ahead in an encoding
> comparison.  Instead of the 300M/32=9.3M cycles per channel that I need, I
> see 71.5M cycles per channel!!!

That's definitely strange. Normally, if your chip takes the same time to
do a float op than it takes to do an int op, then the float version
should be faster. That's because some of the float ops get replaced by
several int ops.

> Does this make sense?  
> I'm generating floating point code, using the optimizer, etc...

Are you sure the compiler isn't using float emulation or something like
that?

> Has anyone posted DM642, C64xx or C67xx benchmarks?

I'm not aware of any.

	Jean-Marc



More information about the Speex-dev mailing list