John Forte
2005-Aug-15 15:05 UTC
[Speex-dev] Updated MIPs and memory requirements for TI c54x or c55 DSPs
Hi, I can see that there has been some effort to compile the SPEEX codec to operate on the TI c54x and c55x DSPs and I am wondering if anyone would be able to update the mailing list with their current MIPs and Memory resource requirements for their c54x and/or c55x compilation? The only estimate I was able to find in the mailing list archive was 42MIPs but I'm not sure if this is an estimate for the c54x or the c55x. If possible, it would also be helpful to see a .map file of a compilation for one of the TI DSPs. Hope you can help me out, John -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20050815/bba1125b/attachment.htm
Jim Crichton
2005-Aug-17 13:43 UTC
[Speex-dev] Updated MIPs and memory requirements for TI c54x or c55DSPs
John,> I can see that there has been some effort to compile the SPEEX codec to operate on the > TI c54x and c55x DSPs and I am wondering if anyone would be able to update the > mailing list with their current MIPs and Memory resource requirements for their c54x > and/or c55x compilation? The only estimate I was able to find in the mailing list archive > was 42MIPs but I'm not sure if this is an estimate for the c54x or the c55x. If possible, > it would also be helpful to see a .map file of a compilation for one of the TI DSPs.The 42 MIP number was from my post of 24 May, and it was for C55x and Speex 1.1.8. I tested 1.1.10 yesterday, and the number went down very slightly; it was just over 41 MIPs peak measured in 20 ms blocks on MALE.WAV, for encoder/decoder loop, 8kbps narrowband with minimum complexity. C54x was just awful in comparison (>200 MIPs, not enough for real time), and I abandoned that family and switched to the C5509A. At least one other user has made some optimizations for C54x and gotten the MIPs down some, but the C55x family seems to like Speex a lot better (32-bit math support is more efficient). I had promised Jean-Marc to make a reference build for others to look at, but I have not got around to that yet. I can send you the .pjt and .cmd files that I used, if you like. Regards, Jim Crichton -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20050817/ddc467a5/attachment.html
Jean-Marc Valin
2005-Aug-17 16:57 UTC
[Speex-dev] Updated MIPs and memory requirements for TI c54x or c55DSPs
Hi, Just a couple tips to reduce complexity. First, I think you'd get a good speedup by enabling the PRECISION16 switch (if it's not done already). This (very) slightly reduces quality, but means you convert a lot of "emulated" 16x32 multiplications into 16x16. There are also several routines that would benefit from platform-specific optimizations. There are already optimizations for ARM (*_arm4.h), Blackfin (*_bfin.h) and SSE (*_sse.h), so you can see what functions are worth optimizing. For a DSP, there are also two specific things I would watch. First, there is at least one CPU-intensive place (inner_prod) where I have to use many shifts in a loop to prevent overflows, but those could be replaced by a single shift at the end when using a 40-bit accumulator (which can also replace the only use I have of spx_word64_t). The second thing is in the filters (*_mem2() functions). The reference implementation assumes that writes are as fast as reads. This is often not true on DSPs (at least on Blackfin), so it is possible to re-write the algorithm to take that into account. There is an example (in C) for filter_mem2() and compute_impulse_response() at the end of filters_bfin.h. Hope this helps. Jean-Marc Le mercredi 17 ao?t 2005 ? 16:41 -0400, Jim Crichton a ?crit :> The 42 MIP number was from my post of 24 May, and it was for C55x and > Speex 1.1.8. I tested 1.1.10 yesterday, and the number went down very > slightly; it was just over 41 MIPs peak measured in 20 ms blocks on > MALE.WAV, for encoder/decoder loop, 8kbps narrowband with minimum > complexity. C54x was just awful in comparison (>200 MIPs, not enough > for real time), and I abandoned that family and switched to the > C5509A. At least one other user has made some optimizations for C54x > and gotten the MIPs down some, but the C55x family seems to like Speex > a lot better (32-bit math support is more efficient). I had promised > Jean-Marc to make a reference build for others to look at, but I have > not got around to that yet. I can send you the .pjt and .cmd files > that I used, if you like.-- Jean-Marc Valin <Jean-Marc.Valin@USherbrooke.ca> Universit? de Sherbrooke
Seemingly Similar Threads
- Updated MIPs and memory requirements for TI c54x or c55DSPs
- Updated MIPs and memory requirements for TI c54x or c55 DSPs
- Patch, related to TI DSP C54x C55x C6x builds
- Re: Patch, related to TI DSP C54x C55x C6x builds
- Fwd: Patch, related to TI DSP C54x C55x C6x builds