bf3:
> Thanks Bulat, but now you scattered my hopes that GHC would magically do all 
> these optimizations for me ;-)
> 
> I must say that although the performance of Haskell is not really a concern 
> to me, I was a bit disappointed that even with all the tricks of the state 
> monad, unboxing, and no-bounds-check, the matrix-vector multiplication was 
> still 7 to 8 times slower than the C version. And at the end of the paper, 
> it's only a factor 4 slower. Okay, going from 300x slower to 4x slower is 
> impressive, but why is it *still* 4x slower? It would be interesting to 
> compare the assembly code generated by the C compiler versus the GHC 
> compiler; after all, we're just talking about a vector/matrix multiplication, 
> which is just a couple of lines of assembly code... And now I'm again talking 
> about  performance, nooo! ;-)
> 
> >http://www.cse.unsw.edu.au/~chak/papers/afp-arrays.ps.gz
> 
> 

Yeah, there's some known low level issues in the code generator
regarding heap and stack checks inside loops, and the use of registers
on x86.

But note this updated paper,
    http://www.cse.unsw.edu.au/~chak/papers/CLPKM07.html

Add another core to your machine and it is no longer 4x slower :)
Add 15 more cores and its really no longer 4x slower :)

-- Don
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to