Re:ARM MacBook vs. Intel MacBook
by jeffbee on Friday December 11, 2020 @10:02PM
(#25394999)
These are my personal observations. You can reproduce, but you'll need to bootstrap the Go toolchain first. For example, in your GOROOT:
For me:
Way, way worse in the 2- and 4-thread cases on the mac. I don't know why, and the performance of the 2- case swings all over the place.
[ Parent
| on HN ]
Re:ARM MacBook vs. Intel MacBook
by bacon_blood on Friday December 11, 2020 @10:48PM
(#25395326)
Go f1980efb92c011eab71aa61b68ccf58d845d1de7 on a Mini on 11.0.1
goos: darwin
goarch: arm64
pkg: sync
BenchmarkCond2 4849542 249.7 ns/op
BenchmarkCond2-2 2639139 531.1 ns/op
BenchmarkCond2-4 3112030 393.1 ns/opInteresting, I can confirm. I wonder if this was the fix.
https://github.com/golang/go/commit/c15593197453b8bf90fc3a90...
I would not use a work in progress port of Go to compare. This would be better in C to rule out Go runtime issues.
It probably is in the Go runtime but I tend to look at things at this level. For example if there's some bug in libc++ that's not something I can overlook when evaluating the M1.
There was another comment here that was deleted that accidentally showed the output of running x86-64 go on the M1. That's another weird risk at the user level, that you may unknowingly run the wrong binary through rosetta2 instead of running the native one.