[PD] [OT] SSE/MMX tips?

Charles Henry czhenry at gmail.com
Thu Sep 8 03:32:40 CEST 2011


On Wed, Sep 7, 2011 at 7:59 PM, Mathieu Bouchard <matju at artengine.ca> wrote:
> On Wed, 7 Sep 2011, Mathieu Bouchard wrote:
>
>> On Wed, 7 Sep 2011, Bill Gribble wrote:
>>
>>> So far iteration on plain floats seems to be the best I can come up with,
>>> but HADDPS is tantalizingly close to what I want to do.  Any hints?

Sorry, what's HADDPS?

>>
>> Once I thought that with some commutativity you could speed things up like
>> this :
>>
>> (f0+f1+f2+f3)+(f4+f5+f6+f7)+...
>>
>> can be rearranged as :
>>
>> (f0+f4+...)+(f1+f5+...)+(f2+f6+...)+(f3+f7+...)
>
> But what I said does not apply to your case, because you want a scan,
> whether I didn't really read and assumed a fold.
>
> I don't know how to optimise a scan.

This is really interesting.  Your compiler probably knows how to
optimize this kind of information.  SSE3 is really about memory
allocation.  The instructions pack floats into a bigger section of
memory.  In SSE3, this means 4 floats in a 128-bit single operation.

SSE 4.2 has 256-bit wide (8 flops per clock)--the latest increase in
single-threaded computing power is in favor of single-precision float
(lucky for Pd-ers)



More information about the Pd-list mailing list