Re: Low-level array performance

2008-06-18 Thread Daniel Fischer
Am Dienstag, 17. Juni 2008 22:37 schrieb Dan Doel: I'll attach new, hopefully bug-free versions of the benchmark to this message. With -O2 -fvia-C -optc-O3, the difference is small (less than 1%), but today, ByteArr is faster more often. Of course, without the list overhead, the ByteArr

Re: Low-level array performance

2008-06-18 Thread Dan Doel
On Wednesday 18 June 2008, Daniel Fischer wrote: Am Dienstag, 17. Juni 2008 22:37 schrieb Dan Doel: I'll attach new, hopefully bug-free versions of the benchmark to this message. With -O2 -fvia-C -optc-O3, the difference is small (less than 1%), but today, ByteArr is faster more often.

Re: Low-level array performance

2008-06-17 Thread Simon Marlow
Dan Doel wrote: Issue 2: Reading from/writing to a MutableByteArray# is slower than an Addr# This is, I think, the crux of the issue. The main content of the benchmark is reversing/shifting items in an array. To get a somewhat easier look at the core, I boiled things down to a benchmark that

Re: Low-level array performance

2008-06-17 Thread Dan Doel
On Tuesday 17 June 2008, Simon Marlow wrote: So I tried your examples and the Addr# version looks slower than the MBA# version: Hmm... I tried with 6.8.2 and 6.8.3, using -O2 in both cases. I tried the Ptr version with and without -fvia-C -optc-O2, no difference. I had forgotten about the

Re: Low-level array performance

2008-06-17 Thread Daniel Fischer
Am Dienstag, 17. Juni 2008 18:32 schrieb Dan Doel: On Tuesday 17 June 2008, Simon Marlow wrote: So I tried your examples and the Addr# version looks slower than the MBA# version: Hmm... I tried with 6.8.2 and 6.8.3, using -O2 in both cases. I tried the Ptr version with and without

Re: Low-level array performance

2008-06-17 Thread Dan Doel
On Tuesday 17 June 2008, Daniel Fischer wrote: I've experimented a bit and found that Ptr is faster for small arrays (only very slightly so if compiled with -fvia-C -optc-O3), but ByteArr performs much better for larger arrays ... The GC time for the Addr# version is frightening I had an

Re: Low-level array performance

2008-06-17 Thread haskell
I see that Dan Doel's post favoring Ptr/Addr# has the same allocation amounts (from +RTS -sstderr) for Ptr/Addr# and the MutableByteArray# Everyone else sees more allocation for Ptr/Addr# than MBA# and see MBA# as faster in these cases. I myself (on G4) see more allocation [just like Simon

Re: Low-level array performance

2008-06-17 Thread Daniel Fischer
Am Dienstag, 17. Juni 2008 20:35 schrieb Dan Doel: On Tuesday 17 June 2008, Daniel Fischer wrote: I've experimented a bit and found that Ptr is faster for small arrays (only very slightly so if compiled with -fvia-C -optc-O3), but ByteArr performs much better for larger arrays ... The

Re: Low-level array performance

2008-06-17 Thread Dan Doel
On Tuesday 17 June 2008, [EMAIL PROTECTED] wrote: I see that Dan Doel's post favoring Ptr/Addr# has the same allocation amounts (from +RTS -sstderr) for Ptr/Addr# and the MutableByteArray# Everyone else sees more allocation for Ptr/Addr# than MBA# and see MBA# as faster in these cases. I

RE: Low-level array performance

2008-06-16 Thread Simon Peyton-Jones
Dan John Dias is indeed spending 6 months at Microsoft to work on GHC's back end. He's doing a pretty wholesale re-architecting job, so it will be a couple of months before we have the new setup glued together, but once we do I hope that we'll have a much more friendly framework in place for