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