Matrix mul

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Nov 23 05:33:16 PST 2008


Sergey Gromov wrote:
> Sat, 22 Nov 2008 20:14:37 -0500, bearophile wrote:
> 
>> Can you or someone else run that little D code, so you can tell me if
>> my timings are right?
> 
> Tested your code using DMD 2.019.  You are right.  The #1 is about 30
> times slower than #2: 10s against 0,3s on my laptop.  I've also tried to
> replace CRT malloc with GC malloc in #2 and it ran just a bit slower--I
> would say around 4%--even though I didn't call hasNoPointers() anywhere.
> 
> The really weird part is, if I comment out the "init mats randomly" loop
> in #1, it becomes twice as slow, i.e. 20s against the original 10s.  I
> don't get it.

I think what happens is that the speed of FP arithmetic depends on the 
values of the operands. Whenever a NaN is involved everything gets a lot 
slower (tested that). Also, I believe (without having tested it) that 
multiplying with zero is faster than multiplying nonzero numbers.

Andrei



More information about the Digitalmars-d mailing list