Re: [music-dsp] recursive SIMD?

2015-04-14 Thread Eric Christiansen
No one is able to confirm that a SIMD operation can't use its own output, or provide any insight on how it might be accomplished? On Sat, Apr 11, 2015 at 10:13 AM, Eric Christiansen eric8939...@gmail.com wrote: Hi there. (Long time reader, first time poster. Yay!) I haven't done much with

Re: [music-dsp] recursive SIMD?

2015-04-14 Thread Ethan Duni
Your intuition is correct that SIMD can't use the output of one sub-operation as an input to another in the same vector. This poses a problem for stuff like recursive filters particularly. For FIR filters it is not as much of an obstacle, since the output at any particular time is only a function

Re: [music-dsp] recursive SIMD?

2015-04-14 Thread Tom Duffy
Following the SIMD instruction with a NOP, or interleaving with other bits of unrelated code is a common DSP trick for dealing with this problem. You'd have to look up the documentation for how many NOPs are needed before the SIMD result is available back in the register, and that may vary

Re: [music-dsp] recursive SIMD?

2015-04-14 Thread Alan Wolfe
Right, with SIMD you buy in bulk so naive implementations of work where each sample needs processing before the next sample is problematic. Intuitively it seems like if you get creative, work out some math, and do some overlapping SIMD math, you might be able to do a factory line type of setup,

Re: [music-dsp] recursive SIMD?

2015-04-14 Thread Didier Dambrin
operations is common, I never heard of using NOPs in this case - what would it do? -Message d'origine- From: Tom Duffy Sent: Tuesday, April 14, 2015 7:35 PM To: music-dsp@music.columbia.edu Subject: Re: [music-dsp] recursive SIMD? Following the SIMD instruction with a NOP

[music-dsp] recursive SIMD?

2015-04-11 Thread Eric Christiansen
Hi there. (Long time reader, first time poster. Yay!) I haven't done much with SIMD in the past, so my experience is pretty low, but my understanding is that each data piece must be defined prior to the operation, correct? Meaning that you can't use result of the operation of one piece of data as