Any usable SIMD implementation?
ZombineDev via Digitalmars-d
digitalmars-d at puremagic.com
Thu Mar 31 01:55:29 PDT 2016
On Thursday, 31 March 2016 at 08:23:45 UTC, Martin Nowak wrote:
> I'm currently working on a templated arrayop implementation
> (using RPN
> to encode ASTs).
> So far things worked out great, but now I got stuck b/c
> apparently none
> of the D compilers has a working SIMD implementation (maybe GDC
> has but
> it's very difficult to work w/ the 2.066 frontend).
>
> https://github.com/MartinNowak/druntime/blob/arrayOps/src/core/internal/arrayop.d https://github.com/MartinNowak/dmd/blob/arrayOps/src/arrayop.d
>
> I don't want to do anything fancy, just unaligned loads,
> stores, and integral mul/div. Is this really the current state
> of SIMD or am I missing sth.?
>
> -Martin
I don't know how far has Ilya's work [1] advanced, but you may
want to join efforts with him. There are also two std.simd
packages [2] [3].
BTW, I looked at your code a couple of days ago and I thought
that it is a really interesting approach to encode operations
like that. I'm just wondering if pursuing this approach is a good
idea in the long run, i.e. is it expressible enough to cover the
use cases of HPC which would also need something similar, but for
custom linear algebra types.
Here's an interesting video about approaches to solving this
problem in C++: https://www.youtube.com/watch?v=hfn0BVOegac
[1]:
http://forum.dlang.org/post/nilhvnqbsgqhxdshpqfl@forum.dlang.org
[2]: https://github.com/D-Programming-Language/phobos/pull/2862
[3]: https://github.com/Iakh/simd
More information about the Digitalmars-d
mailing list