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/nilhvnqbsgqhxdshp...@forum.dlang.org
[2]: https://github.com/D-Programming-Language/phobos/pull/2862
[3]: https://github.com/Iakh/simd