Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crypto/aes: improve performance on ppc64le for aes #18076

Closed
pfsmorigo opened this issue Nov 28, 2016 · 6 comments
Closed

crypto/aes: improve performance on ppc64le for aes #18076

pfsmorigo opened this issue Nov 28, 2016 · 6 comments

Comments

@pfsmorigo
Copy link

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?

Using upstream.

What operating system and processor architecture are you using (go env)?

GOARCH="ppc64le"
GOBIN=""
GOEXE=""
GOHOSTARCH="ppc64le"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go-1.6"
GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_ppc64le"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

What did you do?

Add asm implementation for AES in order to make use of VMX cryptographic acceleration instructions for POWER8. There is a speed boost of over 11 times for AES using ppc64el.

@dr2chase
Copy link
Contributor

There is a CL for this, or coming soon?

@laboger

@laboger
Copy link
Contributor

laboger commented Nov 28, 2016

My understanding is that a performance change like this could not go into Go 1.8 but would have to wait for Go 1.9. Is that correct?

@pfsmorigo
Copy link
Author

Assembly implementation uploaded to:
https://go-review.googlesource.com/#/c/32579

@gopherbot
Copy link

CL https://golang.org/cl/33587 mentions this issue.

@bradfitz bradfitz added this to the Go1.9 milestone Nov 28, 2016
@bradfitz
Copy link
Contributor

Yes, Go 1.8 is frozen for everything but critical bugs and maybe docs.

@gopherbot
Copy link

CL https://golang.org/cl/36549 mentions this issue.

ceseo pushed a commit to powertechpreview/go that referenced this issue May 17, 2017
Add asm implementation for AES in order to make use of VMX cryptographic
acceleration instructions for POWER8. There is a speed boost of over 10
times using those instructions:

Fixes golang#18076

                        old ns/op  new ns/op  delta
BenchmarkEncrypt-20     337        30.3       -91.00%
BenchmarkDecrypt-20     347        30.5a      -91.21%
BenchmarkExpand-20      1180       130        -88.98%

                        old MB/s   new MB/s   speedup
BenchmarkEncrypt-20     47.38      527.68     11.13x
BenchmarkDecrypt-20     46.05      524.45     11.38x

Change-Id: Ifa4d1b508f4803cc72dcaad97acc8495d651b019
Reviewed-on: https://go-review.googlesource.com/33587
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
@golang golang locked and limited conversation to collaborators Feb 9, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants