[Mono-list] Mono.Simd - Phylosophical comments

efortin etienne.fortin at sympatico.ca
Fri Nov 14 11:38:10 EST 2008

Hi All,
I just decided to get involved more in Mono and all related tools. Was an
hardcore .NET Framework (Windows) developer but now it seems time to let go
and explore something else. And Mono is just what I need!

Anyway, I was quite pleased to see the Mono.Simd experimental addition. It's
about time someone in the CIL world put efforts in exploiting the power of
the SIMD instruction sets on modern x86 CPU, even more because most of the
processing power increase in these CPU comes from SSE and al.

I have a couple of comments on Mono.Simd:

1) Why calling it something that ties it to the underlying technology used?
Why not calling it Mono.Math.Advanced, or Mono.Math.Vectors, or
Mono.Math.Matrix? It doesn't have a big impact and it's just a question of
taste I guess, but I find that Mono.Simd relates too much to the
implementation technology.

2) Would it be possible to use generic instead of "hardcoding" the types and
sizes of vectors in each class? I don't know if it's possible, but there are
probably ways to pre-instantiate templates like you do in C++, so you have
each supported template specification ready, and/or design the native
underlying module that actually does the transformation to SIMD instructions
do it in hardware only for the supported types. This would make this library
quite flexible I think. 

3) I would add more high level constructs like Matrix that make use of the
SIMD hardware.

4) Maybe classes to help "vectorize" loops and other code construct would be
good, since the runtime is not currently able to vectorize code itself. I
still don't know how this could be done, but something like the "using"
directive in C#, but using method calls and not extension to the language,
could do the trick.

That's it for now. Keep up the good work on Mono, we need it in the
View this message in context: http://www.nabble.com/Mono.Simd---Phylosophical-comments-tp20503986p20503986.html
Sent from the Mono - General mailing list archive at Nabble.com.

More information about the Mono-list mailing list