On Tue, 2011-10-04 at 00:56 +0200, katja wrote:
On Mon, Oct 3, 2011 at 7:08 PM, katja katjavetter@gmail.com wrote:
On Mon, Oct 3, 2011 at 6:21 PM, IOhannes m zmoelnig zmoelnig@iem.at wrote:
apropos performance: on my i5 650 @ 3.2GHz, running debian and trying to osc-delay-perfotest.pd (with only 400 osc-delay abstractions, as 500 would max out the CPU in "new double" mode) i get: original : 28% debian : 31% new single: 64% new double: 86%
Did you build new single / new double without any optimization? Makefile.am/in for Pd-0.43.1-test4 do not specify optimization. I compared using -O2 for all builds, like it is set for Pd-0.43-0.
Katja
Update:
The rewritten code is more sensitive to optimization than the original. On coreduo 1.83 GHz with Debian I could only run 200 osc-delay abstractions in osc-delay-perfotest.pd under worst conditions. Compare these values from command top:
original: 69% with -O0, 47% with -O2 (no SSE) new-single: 83% with -O0, 48% with -O2 (no SSE) new-double: 97% with -O0, 59% with -O2 (no SSE)
On MacBook core2duo 2GHz where I wrote and optimized most, 500 osc-delay abstractions can easily run in osc-delay-perfotest.pd, with these values from top:
original: 60% with -O3 and SSE new-single: 50% with -O3 and SSE new-double: 54% with -O3 and SSE
I knew on beforehand that the code would get tuned (performance-wise) to hardware, instruction set, OS, compiler, compiler options etc. used for development, but it never crossed my mind to check performance with optimization level -O0.
I think this is the right approach to coding this stuff. Both the compilers and the CPUs can do a lot more since that code was originally written.
Debian doesn't compile things at -O0, but it does not allow CPU-specific optimizations (i.e. SSE). I'm sure -O2 is ok for Debian. aI hope that Debian allows SSE on the amd64 arch, since all x86_64 CPUs support SSE. SSE has been in Intel i386 chips since 1999 and I think basically all i386 chips since 2004.
And we have our first Pd-double build! http://autobuild.puredata.info/auto-build/2011-10-03/Pd-0.43.1-double-201110...
rsync -av --delete rsync://128.238.56.50/distros/pd-double/ pd-double/
.hc