Hi,
Is there any guarantee about alignment of signal vector data?
If not, should there be, in the future?
Or should one conditionally `dsp_add()` their specific-alignment-needing kernels dependent on what the `dsp` method actually gets?
Context:
In some code unrelated to Pd, using GCC vector intrinsics (not CPU-specific) I got a near-2x speed boost by recompiling the same code to target a newer CPU, vs the binary compiled for an older CPU.
The old idea of compiling a machine-specific math~.pd_linux (or whatever) to speed up everything by overwriting internal objects is also on my mind.
Thanks,
Claude
Hi all, back in Pd 0.37 or so, i have made a branch with explicitly aligned DSP vector allocation and respective gcc attributes for aligned pointers and some changes to DSP processing (integer loop counters instead of pointer incrementation), which makes it easier for compilers to generate vectorized code. There was some significant performance increase, but it has not found its way into vanilla pd. I am all for a similar PR these days. best, Thomas
Am 02.07.2018 um 23:04 schrieb Claude Heiland-Allen claude@mathr.co.uk:
Hi,
Is there any guarantee about alignment of signal vector data?
If not, should there be, in the future?
Or should one conditionally `dsp_add()` their specific-alignment-needing kernels dependent on what the `dsp` method actually gets?
Context:
In some code unrelated to Pd, using GCC vector intrinsics (not CPU-specific) I got a near-2x speed boost by recompiling the same code to target a newer CPU, vs the binary compiled for an older CPU.
The old idea of compiling a machine-specific math~.pd_linux (or whatever) to speed up everything by overwriting internal objects is also on my mind.
Thanks,
Claude
Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev
-- Thomas Grill http://grrrr.org
Well, there's currently no way to get signals on a guaranteed boundary, but that's something I want to do in the future. I also want to allow objects to delay creating their input and output vectors (possibly avoiding promoting scalars to vectors for efficiency, and also allowing obejcts to create and/or deal with alternative vector sizes, for instance for multichannel signals).
I've also been looking at your polynomial cos~ approximations - I can't get them to run as efficiently as you seem to be able to, and couldn't immediately figure out if I needed to change compilers, or compile flags, or what. But that also is on the list :)
Miller
on it once and didn't go deeply into all the On Mon, Jul 02, 2018 at 10:04:09PM +0100, Claude Heiland-Allen wrote:
Hi,
Is there any guarantee about alignment of signal vector data?
If not, should there be, in the future?
Or should one conditionally `dsp_add()` their specific-alignment-needing kernels dependent on what the `dsp` method actually gets?
Context:
In some code unrelated to Pd, using GCC vector intrinsics (not CPU-specific) I got a near-2x speed boost by recompiling the same code to target a newer CPU, vs the binary compiled for an older CPU.
The old idea of compiling a machine-specific math~.pd_linux (or whatever) to speed up everything by overwriting internal objects is also on my mind.
Thanks,
Claude
Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev