SIMD benchmark

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Jan 16 08:17:44 PST 2012


On 1/15/12 12:56 AM, Walter Bright wrote:
> I get a 2 to 2.5 speedup with the vector instructions on 64 bit Linux.
> Anyhow, it's good enough now to play around with. Consider it alpha
> quality. Expect bugs - but make bug reports, as there's a serious lack
> of source code to test it with.
> -----------------------
> import core.simd;
>
> void test1a(float[4] a) { }
>
> void test1()
> {
> float[4] a = 1.2;
> a[] = a[] * 3 + 7;
> test1a(a);
> }
>
> void test2a(float4 a) { }
>
> void test2()
> {
> float4 a = 1.2;
> a = a * 3 + 7;
> test2a(a);
> }

These two functions should have the same speed. The function that ought 
to be slower is:

void test1()
{
     float[5] a = 1.2;
     float[] b = a[1 .. $];
     b[] = b[] * 3 + 7;
     test1a(a);
}


Andrei


More information about the Digitalmars-d mailing list