On Apr 19, 2007, at 10:18 AM, Tim Blechmann wrote:
hi miller,
On Wed, 2007-04-18 at 18:13 -0700, Miller Puckette wrote:
Well, I measured the difference and didn't see significant speedup (on an imac recently)... eventually it might make a difference, of course. But certain bit-bashing code (the square root thing, but more importantly phasor~ and osc~) runs half again faster than any version I've been able to write with strict aliasing.
i did some benchmarks of pd's phasor~ code against a straight-forward implementation on my pentium-m, when implementing the objects for nova. the straight-forward implementation ran about 20 to 30 % faster than the pd-style implementation.
Do you still have the code from the straight forward implementation?
code like sqare root or inverse square root can be coded by just utilizing the rsqrtps and sqrtps opcodes, with a 14 bit precision, when working on the sse unit ...
14bit precision would leave a lot to be desired in Pd. Are there high precision operators?
An alternative would be to special-case the offending code somehow. This could be part of a larger effort to make the DSP code modular so that SSE instructions and whatnot could also be "plugged in". Worth thinking about...
according to the gcc manual, simple vectorizable operactions, that's used for audio processing, can be autovectorized, if (and only if) the programmer takes care of both alignment and aliasing issues ...
Is complying with -fstrict-aliasing enough to take care of the aliasing issues?
Do you have any examples of handling alignment issues?
.hc
tim
-- tim@klingt.org ICQ: 96771783 http://tim.klingt.org
Life is really simple, but we insist on making it complicated. Confucius
------------------------------------------------------------------------ ----
There is no way to peace, peace is the way. -A.J. Muste