[Speex-dev] TI 6xxx platform performance

Jean-Marc Valin jean-marc.valin at usherbrooke.ca
Wed Jan 18 23:00:07 PST 2006

> 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

> 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

> Has anyone posted DM642, C64xx or C67xx benchmarks?

I'm not aware of any.


More information about the Speex-dev mailing list