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+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 24 of 27 | next ›
Discussion Overview
groupgolang-nuts @
postedJun 14, '16 at 12:31p
activeJun 18, '16 at 10:54a



site design / logo © 2021 Grokbase