Taking pipeline processing to the next level
Wyatt via Digitalmars-d
digitalmars-d at puremagic.com
Wed Sep 7 07:24:43 PDT 2016
On Wednesday, 7 September 2016 at 00:18:59 UTC, Manu wrote:
> On 7 September 2016 at 01:54, Wyatt via Digitalmars-d
> <digitalmars-d at puremagic.com> wrote:
>
> Thanks, that's really interesting, I'll check it out.
Here's some work on static rank polymorphism that might also be
applicable?:
http://www.ccs.neu.edu/home/pete/pub/esop-2014.pdf
And in the Related Work, I just noticed Halide, which sounds like
it's right up your alley:
http://halide-lang.org/
>> Of course, this comes with the caveat that this is (still!)
>> some relatively heavily-academic stuff. And I'm not sure to
>> what extent that can help mitigate the problem of relaxing
>> type requirements such that you can e.g. efficiently ,/⍉ your
>> 4 2⍴"LR" vector for SIMD on modern processors.
>
> That's not what I want though.
> I intend to hand-write that function (I was just giving
> examples of
> how auto-vectorisation almost always fails), the question here
> is, how
> to work that new array function into our pipelines
> transparently...
Ah, I misunderstood. Sorry. I had the impression that you
wanted to be able to simply write:
data.map!(x => transform(x)).copy(output);
...for any data[] and have it lift the transformation to the
whole vector. If you're doing the work, I'm curious what you're
hoping the end result to look like in terms of the code you want
to be able to write. Just a doodle is fine, it doesn't have to
stand up to scrutiny.
-Wyatt
More information about the Digitalmars-d
mailing list