Go 1.13 — Performance updates for POWER
Better later than never — Go 1.13 updates. Here are my performance highlights for POWER architecture: Implementation of math/bits RotateLeft{32|64} as intrinsics in SSA reduces execution time by up
News from my bubble
Google stories: reviews, events and tips.
Better later than never — Go 1.13 updates. Here are my performance highlights for POWER architecture: Implementation of math/bits RotateLeft{32|64} as intrinsics in SSA reduces execution time by up
The Go 1.10 source is frozen now and I have some updates on Power architecture support. In addition to the updates I’ve already given here regarding performance and POWER9 support,
I recently pushed two patches upstream related to the enablement of the OpenPOWER ISA 3.0 (POWER9) instructions. The first one, commit 526f342, enables instructions in the assembler. This includes new
Go 1.9 is released and has some new features, including: Type aliases New math/bits package for bit manipulation in unsigned integers New Map type in the sync package For the
I rewrote most of the math/big arithmetic implementations so they perform better on Power. Commit 9459c03, which I already mentioned here before, added new implementations for addVV/subVV with up to ~3x
I just added a simple, but important change for Power. In order to eliminate inefficiencies in the iBuffer, all functions are now aligned to 16 bytes. This opens a new
I added a new implementation for addVV (math/big package) for Power architecture. The new assembly implementation leverages specific Power instructions and provides a speedup of ~3x over the generic implementation in Go.
As I mentioned in my previous post, in Go 1.9, the new minimum processor requirement for ppc64 Big Endian will be POWER8. I started cleaning up old code that was
I added a new implementation for both bytes·IndexByte and strings·IndexByte for Power architecture. The new lazy search-based algorithm gives a speedup of up to 15x over the previous implementation. This
Go 1.8 was released yesterday. This release includes some significant changes, including: SSA backend enabled in all architectures Improvements on garbage collection pause latency HTTP/2 Push support Continued addition of
I added a few more missing instructions from ISA 2.05 to 2.07 to the Go assembler. These will be used in upcoming runtime performance optimizations shortly. In addition, I also
Commit 40aaf28 adds the functionality of querying about a CPU capability (·cpu+facilities_hasFEATURE(SB)) or ISA level (·cpu+facilities_isPOWERx(SB)) at runtime for ppc64x. These variables are set during runtime from the HWCAP/HWCAP2 bits. This