[Mono-list] SSE - more specifically fast vector support
J Decker
d3ck0r at gmail.com
Tue Oct 13 11:12:59 UTC 2015
without mono actually emitting SSE for me; I can't tell if there would
really be a difference... BUT... in the meantime
--------
Hmm... mono is faster in the operator case... where MS is faster using
an out parameter instead.... was going to make a suggestion for the
vector library but... it doesn't help always....
-----------
I do know that there is a large difference in performance between
[Acceleration (AccelMode.SSE1)]
public static Vector4f operator * (Vector4f v, float scalar)
{
return new Vector4f (scalar * v.x, scalar * v.y, scalar * v.z,
scalar * v.w);
}
[Acceleration (AccelMode.SSE1)]
public void Mult ( float scalar, out Vector4f r )
{
/* actually this method was slower under mono; this is also fast under MS */
r.x = scalar * x; r.y = scalar * y; r.z = scalar * z; r.w = scalar * w;
}
...
Vector4f v;
v = v * 3.0f; /* 1000000 iterations in 17357 uS */
v.Mult( 3.0f, out v ); /* 1000000 iterations in 10850uS */
---------
VS timings same program ( MS emits SSE for these also... )(1000000 iterations )
operator mult = 10974
out mult = 6886
del = 62.7%
---------
mono.exe program.exe timings (1000000 iterations )
operator mult = 43062
out mult = 61723
del = 143.3%
More information about the Mono-list
mailing list