I have a question about the overall performance of Speex and what I can do to improve it. I'm running Speex Windows x86, Visual C++ EE compiler. I will say right away that I've only compiled debug so far and used no compiler optimizations at all. I use the uwb-mode, preprocessing, denoising and echo cancellation. I've noticed that speex consumes a lot of cpu resources. When I run this on a Celeron 2,6GHz I have to disable EC in order to not overload the cpu. Am I correct to assume that there are massive floating point calculations happening? I did a quick profile with CodeAnalyst and identified the most expensive functions as (in order): CPU Clocks, Function 4657, kiss_fft_stride 4456, speex_echo_cancellation 2494, split_cb_search_shape_sign 1490, fir_mem16 1419, speex_preprocess_run I'm looking for advise on how to boost the performance with as little code rewrite as possible. The architecture for release build will be SSE/SSE2 capable. 1) Compiler optimizations: Recommended options? 2) SIMD. Is Speex written to take advantage of SIMD architectures? What must I do to take advantage of this? -- Greger Burman -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20090615/b0fbc690/attachment.htm
Are you using an insanely long tail length by any chance (CPU is proportional to that)? Jean-Marc Greger Burman a ?crit :> I have a question about the overall performance of Speex and what I can > do to improve it. I'm running Speex Windows x86, Visual C++ EE compiler. > I will say right away that I've only compiled debug so far and used no > compiler optimizations at all. > I use the uwb-mode, preprocessing, denoising and echo cancellation. > I've noticed that speex consumes a lot of cpu resources. When I run this > on a Celeron 2,6GHz I have to disable EC in order to not overload the > cpu. Am I correct to assume that there are massive floating point > calculations happening? > I did a quick profile with CodeAnalyst and identified the most expensive > functions as (in order): > CPU Clocks, Function > 4657, kiss_fft_stride > 4456, speex_echo_cancellation > 2494, split_cb_search_shape_sign > 1490, fir_mem16 > 1419, speex_preprocess_run > I'm looking for advise on how to boost the performance with as little > code rewrite as possible. The architecture for release build will be > SSE/SSE2 capable. > 1) Compiler optimizations: Recommended options? > 2) SIMD. Is Speex written to take advantage of SIMD architectures? What > must I do to take advantage of this? > -- > Greger Burman > > > ------------------------------------------------------------------------ > > _______________________________________________ > Speex-dev mailing list > Speex-dev at xiph.org > http://lists.xiph.org/mailman/listinfo/speex-dev