On Friday, June 17, 2016 at 4:48:06 PM UTC+2, gordo...@gmail.com wrote:
> > I don't see the point to the exercise as far as optimizing golang is 
> > concerned.

> It is a general rule that using more registers results in faster code.

Yes, except when they're wasted as in using the extra register is golang 1.7 
where to save a load immediate $1.
 
> > Your experiment just shows that Your compiler (GCC?)

> My post containing the example mentions that the compiler is clang 3.9.

Yes, sorry, I was tired and forgot that.
 
> > missed an optimization as far as reducing backend latency goes.

> It is significant because it indicates that the clang compiler might be 
> completely missing the general rule which I mentioned above.

It is significant to Clang development, but not to golang developement, which I 
thought was what we were working on in this thread; that's why I said that your 
work, though important, doesn't really apply here as to golang improvements.

> > You may also find that swapping the order of some of the instructions such 
> > as the second and the third in the loop may also reduce backend latency 
> > further.

> Swapping the order of instruction in the example results in the same or lower 
> performance.

I said "may".

> > I am not on a high end Intel CPU now, but when I was I found that with a 
> > buffer size adjusted to the L1 cache size (8192 32-bit words or 32 
> > Kilobytes) that eratspeed ran on an Intel 2700K @ 3.5 GHz at about 3.5 
> > clock cycles per loop (about 405,000,000 loops for this range). 

> > My current AMD Bulldozer CPU has a severe cache bottleneck and can't come 
> > close to this speed by a factor of about two.

> Which Bulldozer version do you have: original Bulldozer, Piledriver, 
> Steamroller/Kaveri or Excavator/Carrizo?

One of the original's, a FX8120 (4 core, 8 processor) @ 3.1 GHz.

by the clock frequency, I assume you were running these tests on a high end 
Intel CPU?

Have you tried compiling eratspeed with a new version of GCC to see how it 
compares to Clang?

I am currently working on a golang version of eratspeed and we'll see how it 
compares; it will be a better comparison that just using my simple PrimesSpeed 
test...

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to