Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-08 Thread Nicolas Trangez
On Sun, 2012-07-08 at 10:27 +0200, Gábor Lehel wrote: > On Sun, Jul 8, 2012 at 3:05 AM, Nicolas Trangez wrote: > > I implemented the inductive alignment calculation over One and Twice > > (good idea, and easy to do), but I don't get the thing about > > superclasses. I've been trying several approa

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-08 Thread Nicolas Trangez
On Sun, 2012-07-08 at 20:49 +1000, Reiner Pope wrote: > I've not been following this thread very closely, but it seems like > what you're trying to do may be related to Geoffrey Mainland's work on > SIMD support in GHC. See [1] for his "SIMD-enabled version of the > vector library". He's also writt

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-08 Thread Reiner Pope
I've not been following this thread very closely, but it seems like what you're trying to do may be related to Geoffrey Mainland's work on SIMD support in GHC. See [1] for his "SIMD-enabled version of the vector library". He's also written some blog posts about this [2]. Reiner [1] https://github

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-08 Thread Gábor Lehel
On Sun, Jul 8, 2012 at 3:05 AM, Nicolas Trangez wrote: > On Sun, 2012-07-08 at 01:40 +0200, Gábor Lehel wrote: >> unsafeXorSSE42 :: (Storable a, >> > SV.AlignedToAtLeast SV.A16 o1, SV.Alignment o1, >> > SV.AlignedToAtLeast SV.A16 o2, SV.Alignment o2, >> > SV.AlignedToAtLeast SV.A16 o3

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-07 Thread Nicolas Trangez
On Sun, 2012-07-08 at 01:40 +0200, Gábor Lehel wrote: > unsafeXorSSE42 :: (Storable a, > > SV.AlignedToAtLeast SV.A16 o1, SV.Alignment o1, > > SV.AlignedToAtLeast SV.A16 o2, SV.Alignment o2, > > SV.AlignedToAtLeast SV.A16 o3, SV.Alignment o3) => > > SV.Vector o1 a -> SV.Vector o2 a

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-07 Thread Nicolas Trangez
On Sat, 2012-07-07 at 21:13 +0200, Nicolas Trangez wrote: > As you can see, the zipWith Data.Vector.SIMD implementation is slightly > slower than the Data.Vector.Storable based one. I didn't perform much > profiling yet, but I suspect allocation and ForeignPtr creation is to > blame, this seems to

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-07 Thread Gábor Lehel
On Sun, Jul 8, 2012 at 12:21 AM, Nicolas Trangez wrote: > On Sat, 2012-07-07 at 21:59 +0200, Gábor Lehel wrote: >> An alternative solution is to encode all of the alignments in unary, >> which is more general; if they're all going to be a power of two you >> can "store" just the logarithm: >> >> d

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-07 Thread Nicolas Trangez
On Sat, 2012-07-07 at 21:59 +0200, Gábor Lehel wrote: > An alternative solution is to encode all of the alignments in unary, > which is more general; if they're all going to be a power of two you > can "store" just the logarithm: > > data One > data Twice n -- not practical to call it Double :) >

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-07 Thread Gábor Lehel
On Sat, Jul 7, 2012 at 9:59 PM, Gábor Lehel wrote: > class AlignedToAtLeast n a > instance AlignedToAtLeast A1 A1 > instance AlignedToAtLeast A4 A1 > instance AlignedToAtLeast A4 A4 > instance AlignedToAtLeast A8 A1 > instance AlignedToAtLeast A8 A4 > instance AlignedToAtLeast A8 A8 > instance Ali

Re: [Haskell-cafe] vector-simd: some code available, and some questions

2012-07-07 Thread Gábor Lehel
On Sat, Jul 7, 2012 at 9:13 PM, Nicolas Trangez wrote: > - Currently Alignment phantom types (e.g. A8 and A16) are not related to > each other: a function (like Data.Vector.SIMD.Algorithms.unsafeXorSSE42) > can have this signature: > > unsafeXorSSE42 :: Storable a => SV.Vector SV.A16 a -> SV.Vecto

[Haskell-cafe] vector-simd: some code available, and some questions

2012-07-07 Thread Nicolas Trangez
All, After my message of yesterday [1] I got down to it and implemented something along those lines. I created a playground repository containing the code at [2]. Initial benchmark results at [3]. More about the benchmark at the end of this email. First some questions and requests for help: - I