Boost logo

Boost :

Subject: Re: [boost] SIMD libraries
From: Simonson, Lucanus J (lucanus.j.simonson_at_[hidden])
Date: 2010-06-14 13:23:50


joel falcou wrote:
>> There is a big difference between using SSE instructions and getting
>> the most out of them. Well , you can look here:
>
> for some performances. We are basically at 80-90% of maximumtheoric
> speed-up for single operations. The DSL nature of the whole thing
> make composition as fast.

There are people who make their livelyhood getting that 10-20% and look down on us who accept less than 100. For my part I'd rather write 10X more code that runs at 90% maximum-theoretic so I'm still on board.

> In the proto grammar of our register_<T,N> class, we have a
> customization point which is specialized per extension and contain a
> list of such fusing transformation.

Interesting. That's a good use of proto.

>> Please don't misinterpret my skepticism for criticism. I am
>> actually pretty curious to learn more about what you did with SIMD
>> and I'm sorry I missed boostcon this year. Discussions like this
>> work much better in person. I've followed some of your posts in the
>> past about NT2 and uBlas and the recent matrix library submission.
>>
> No problem. If you want more details we can :
> 1/ set up a threa dout of this one ;)
> 2/ give you some extra material about our publications on the matter
>
> We're also currently working hard to get it released in a not too much
> distant future so people cna actualyl play with it ;)

I opt for 1 and 2. I read the EVE publication, which seems to describe only a optimized valarray type interface. Do you have a reference for the generic vector register interface you mentioned?

I made some minor contributions to writing a DSEL for wrapping intrinsics. My main design input was to push for making values be models of our expression concept so that everything composes well. Since we weren't using proto we had to figure out a lot of things for ourselves that proto would have done for us.

Thanks,
Luke


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk