On Sun, Jul 8, 2012 at 3:05 AM, Nicolas Trangez nico...@incubaid.com 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
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]
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 written
On Sun, 2012-07-08 at 10:27 +0200, Gábor Lehel wrote:
On Sun, Jul 8, 2012 at 3:05 AM, Nicolas Trangez nico...@incubaid.com 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
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:
-
On Sat, Jul 7, 2012 at 9:13 PM, Nicolas Trangez nico...@incubaid.com 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
On Sat, Jul 7, 2012 at 9:59 PM, Gábor Lehel illiss...@gmail.com 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
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 :)
class
On Sun, Jul 8, 2012 at 12:21 AM, Nicolas Trangez nico...@incubaid.com 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
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 be
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 -
11 matches
Mail list logo